Регрессионная модель: различия между версиями

Материал из Поле цифровой дидактики
Нет описания правки
 
(не показано 17 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Scripting Tutorials
{{Scripting Tutorials
|Description=Регрессионная модель  — это статистический инструмент, который помогает нам  предсказывать  значение одной переменной, исходя из значений других переменных. Это способ найти закономерность в данных и использовать её для предсказания будущих значений.
|Description=Регрессионная модель  — это статистический инструмент, который помогает нам  предсказывать  значение одной переменной, исходя из значений других переменных. Это способ найти закономерность в данных и использовать её для предсказания будущих значений. В статье описано, как построить регрессионную модель и провести регрессионный анализ (на примере Language Change)
|Field_of_knowledge=Статистика, Моделирование
|Field_of_knowledge=Статистика, Моделирование
|Возрастная категория=17
|Возрастная категория=17
|similar_concepts=Регрессия, Переменная, Остаток
|similar_concepts=Регрессия, Переменная, Остаток
|Environment=R, BehaviorSpace, NetLogo
|Environment=R, BehaviorSpace, NetLogo, Language Change, StatKey
}}
}}
Регрессионная модель описывает  связь между переменными  с помощью уравнения. Самая простая форма —  линейная регрессия , которая выглядит вот так:
== Регрессионная модель ==
<math>(Y = \beta_0 + \beta_1 \cdot X + \varepsilon)</math>
Регрессионная модель описывает  связь между переменными  с помощью уравнения. Самая простая форма —  [[линейная регрессия]]:
<math>Y = \beta_0 + \beta_1 \cdot X + \varepsilon</math>


; Где:
; Где:
Строка 15: Строка 16:
*  β₁  (бета один) — коэффициент при X (показывает, насколько Y изменится при увеличении X на единицу)
*  β₁  (бета один) — коэффициент при X (показывает, насколько Y изменится при увеличении X на единицу)
*  ε  (эпсилон) — ошибка модели (то, что модель не может объяснить)
*  ε  (эпсилон) — ошибка модели (то, что модель не может объяснить)
== Как построить регрессионную модель ==
;  На примере данных из [[Language Change]]
: https://raw.githubusercontent.com/patarakin/stat-data/refs/heads/main/datasets/csv/Lang_Change_1440.csv
=== Спроектировать вычислительный [[эксперимент]]  ===
; на примере модели [[Language Change]]
Определить независимые и зависимые переменные
==== Независимые переменные ====
* '''alpha''' (Вероятность адаптации/обучения) Диапазон: 0.025, 0.03, 0.035, 0.04 Смысл: вероятность того, что агент заимствует языковую форму от соседа при контакте. Гипотеза: большее alpha → быстрее распространяется инновация → выше LCI
* '''gamma''' (Вероятность спонтанной инновации/мутации) Диапазон: 0.02, 0.03, 0.04 Смысл: вероятность того, что агент независимо создаст новую языковую форму, не контактируя с соседями. Социально-экономический аналог: экзогенные инновации, креативность, предпринимательские инициативы. Гипотеза: gamma — критический фактор в модели, усиливает распространение инновации
*  '''logistic?''' (Логистический vs экспоненциальный рост) Категория: TRUE / FALSE -  - TRUE → логистический рост - [[Гипотеза]]: при logistic = TRUE инновация распространяется медленнее → ниже LCI
==== Зависимые переменные ====
Первая зависимая переменная: mean_state (LCI) = mean [state] of nodes
<math>LCI = \text{mean}_i [state_i] = \frac{1}{N}\sum_{i=1}^{N} state_i, \quad N=100</math>
* LCI ('''Language Change Index''') — индекс изменения языка — среднее значение языкового состояния по всей популяции агентов
* Смысл: показывает средний уровень распространения языковой инновации в сообществе
* Диапазон: от 0 до 1, где 1 означает полное распространение инновации на всё сообщество, а 0 означает сохранение исходного состояния
* LCI отражает коллективный исход языкового процесса — насколько успешно языковая инновация завладела сообществом. Это макроскопический показатель, который агрегирует микроскопические решения каждого агента о принятии или отклонении инновации.
Вторая зависимая переменная (в модели фиксируется, но не используется в регрессии):
* count nodes with [state > 0.9] / count nodes — доля агентов, полностью принявших инновацию. Это показатель радикального принятия — какая часть сообщества достигла высокого уровня (>0.9) принятия инновации.
<math>Adoption\_Rate = \frac{|\{i: state_i > 0.9\}|}{N} \times 100\%</math>
==== Factorial Design ====
{| class="wikitable" style="border-collapse: collapse; width: 100%; margin: 1em 0;"
|-
! Параметр !! Уровни !! Количество значений !! Всего комбинаций
|-
| percent-grammar-1 || 55, 60, 65 || 3 || 3
|-
| logistic? || TRUE, FALSE || 2 || 2
|-
| alpha || 0.025, 0.03, 0.035, 0.04 || 4 || 4
|-
| gamma || 0.02, 0.03, 0.04 || 3 || 3
|-
| threshold-val || 0 || 1 || 1
|-
| sink-state-1? || TRUE || 1 || 1
|-
| update-algorithm || "reward" || 1 || 1
|-
| num-nodes || 100 || 1 || 1
|-
| colspan="3" | '''ИТОГО экспериментальных сценариев:''' || 3 × 2 × 4 × 3 = '''72'''
|}
=== Вырастить данные в агент-ориентированной модели ===
# Запустить вашу модель [[NetLogo]] с использованием  [[BehaviorSpace]].
# Вырастить данные и записать [[csv]]
# Разместить данные на GitHub и сделать доступными - https://raw.githubusercontent.com/patarakin/stat-data/refs/heads/main/datasets/csv/Lang_Change_1440.csv
Для каждого из 72 сценариев проведено 20 повторений (реплик) с разными случайными сидами → 1440 наблюдений (данные в  [https://raw.githubusercontent.com/patarakin/stat-data/refs/heads/main/datasets/csv/Lang_Change_1440.csv Lang_Change_1440.csv]
=== Провести регрессионный анализ ===
* Какие факторы и как влияют на успешность распространения языковой инновации в агент-ориентированной системе?
<math>LCI = \beta_0 + \beta_1 \cdot \alpha + \beta_2 \cdot \gamma + \beta_3 \cdot IsLogistic + \beta_4 \cdot StartPercent + \epsilon</math>
<syntaxhighlight lang="R" >
data <- read.csv("../DataSets/Lang_Change_1440.csv",
                    header = TRUE,
                    stringsAsFactors = FALSE)
model_1 <- lm(LCI ~ alpha + gamma + IsLogistic + StartPercent, data = data)
summary(model_1)
</syntaxhighlight>
; Результаты
Call:
lm(formula = LCI ~ alpha + gamma + IsLogistic + StartPercent,
    data = data)
Residuals:
      Min        1Q    [[Median]]        3Q      Max
-0.060078 -0.008360  0.000560  0.008557  0.040863
Coefficients:
                Estimate Std. Error t value Pr(>|t|)   
(Intercept)    9.746e-02  5.596e-03  17.42  <2e-16 ***
alpha          6.845e-01  6.146e-02  11.14  <2e-16 ***
gamma          5.253e+00  4.208e-02  124.83  <2e-16 ***
IsLogistictrue -1.947e-02  6.871e-04  -28.34  <2e-16 ***
StartPercent    7.842e-03  8.415e-05  93.19  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01304 on 1435 degrees of freedom
Multiple R-squared:  0.9461, Adjusted R-squared:  0.946
F-statistic:  6299 on 4 and 1435 DF,  [[p-value]]: < 2.2e-16
[[p-value]]: < 2.2e-16 = <math>2 \times 10^{-16}</math>  - (0.0000000000000002). Это значение экстремально мало, гораздо меньше стандартного порога <math>\alpha = 0.05</math> или даже <math>\alpha = 0.001</math>.
==== Результаты анализа ====
{| class="wikitable" style="border-collapse: collapse; width: 100%; margin: 1em 0;"
|-
! Переменная !! Коэффициент !! Std. Error !! t-статистика !! p-значение !! Интерпретация
|-
| (Intercept) || 0.0975 || 0.00560 || 17.42 || <2e-16  || Базовое значение LCI при нулевых параметрах
|-
| alpha || 0.6845 || 0.06146 || 11.14 || <2e-16  || Увеличение alpha на 0.01 → LCI ↑ на 0.0068
|-
| gamma || 5.253 || 0.04208 || 124.83 || <2e-16  || '''ДОМИНИРУЮЩИЙ ФАКТОР:''' увеличение gamma на 0.01 → LCI ↑ на 0.053
|-
| IsLogistic (TRUE) || -0.01947 || 0.0006871 || -28.34 || <2e-16  || Логистический процесс снижает LCI на 0.0195 (консервативный эффект)
|-
| StartPercent || 0.007842 || 0.00008415 || 93.19 || <2e-16  || Увеличение начальной доли на 1% → LCI ↑ на 0.00784
|}
==== Computational Statistics ====
{| class="wikitable" style="border-collapse: collapse; width: 100%; margin: 1em 0;"
|-
! Сфера !! Компонент !! Роль в исследовании
|-
| '''Agent-Based Modeling (ABM)''' || [[Language Change]] || Генерирует микроскопические данные поведения 1440 сценариев
|-
| '''Socio-Economic Statistics''' || Переменные: alpha, gamma, adoption, innovation || Переводит лингвистические процессы в параметры социальных систем
|-
| '''Computational Statistics (R)''' || [[Линейная регрессия]], [[факторный анализ]] || Синтезирует ABM-результаты в аналитическую модель
|}

Текущая версия от 15:26, 17 декабря 2025

Описание Регрессионная модель — это статистический инструмент, который помогает нам предсказывать значение одной переменной, исходя из значений других переменных. Это способ найти закономерность в данных и использовать её для предсказания будущих значений. В статье описано, как построить регрессионную модель и провести регрессионный анализ (на примере Language Change)
Область знаний Статистика, Моделирование
Область использования (ISTE)
Возрастная категория 17


Поясняющее видео
Близкие рецепту понятия Регрессия, Переменная, Остаток
Среды и средства для приготовления рецепта: R, BehaviorSpace, NetLogo, Language Change, StatKey

Регрессионная модель

Регрессионная модель описывает связь между переменными с помощью уравнения. Самая простая форма — линейная регрессия: [math]\displaystyle{ Y = \beta_0 + \beta_1 \cdot X + \varepsilon }[/math]

Где
  • Y — переменная, которую мы хотим предсказать (зависимая переменная)
  • X — переменная, которую мы используем для предсказания (независимая переменная)
  • β₀ (бета ноль) — свободный член (значение Y, когда X = 0)
  • β₁ (бета один) — коэффициент при X (показывает, насколько Y изменится при увеличении X на единицу)
  • ε (эпсилон) — ошибка модели (то, что модель не может объяснить)

Как построить регрессионную модель

На примере данных из Language Change
https://raw.githubusercontent.com/patarakin/stat-data/refs/heads/main/datasets/csv/Lang_Change_1440.csv

Спроектировать вычислительный эксперимент

на примере модели Language Change

Определить независимые и зависимые переменные

Независимые переменные

  • alpha (Вероятность адаптации/обучения) Диапазон: 0.025, 0.03, 0.035, 0.04 Смысл: вероятность того, что агент заимствует языковую форму от соседа при контакте. Гипотеза: большее alpha → быстрее распространяется инновация → выше LCI
  • gamma (Вероятность спонтанной инновации/мутации) Диапазон: 0.02, 0.03, 0.04 Смысл: вероятность того, что агент независимо создаст новую языковую форму, не контактируя с соседями. Социально-экономический аналог: экзогенные инновации, креативность, предпринимательские инициативы. Гипотеза: gamma — критический фактор в модели, усиливает распространение инновации
  • logistic? (Логистический vs экспоненциальный рост) Категория: TRUE / FALSE - - TRUE → логистический рост - Гипотеза: при logistic = TRUE инновация распространяется медленнее → ниже LCI

Зависимые переменные

Первая зависимая переменная: mean_state (LCI) = mean [state] of nodes [math]\displaystyle{ LCI = \text{mean}_i [state_i] = \frac{1}{N}\sum_{i=1}^{N} state_i, \quad N=100 }[/math]

  • LCI (Language Change Index) — индекс изменения языка — среднее значение языкового состояния по всей популяции агентов
  • Смысл: показывает средний уровень распространения языковой инновации в сообществе
  • Диапазон: от 0 до 1, где 1 означает полное распространение инновации на всё сообщество, а 0 означает сохранение исходного состояния
  • LCI отражает коллективный исход языкового процесса — насколько успешно языковая инновация завладела сообществом. Это макроскопический показатель, который агрегирует микроскопические решения каждого агента о принятии или отклонении инновации.

Вторая зависимая переменная (в модели фиксируется, но не используется в регрессии):

  • count nodes with [state > 0.9] / count nodes — доля агентов, полностью принявших инновацию. Это показатель радикального принятия — какая часть сообщества достигла высокого уровня (>0.9) принятия инновации.

[math]\displaystyle{ Adoption\_Rate = \frac{|\{i: state_i \gt 0.9\}|}{N} \times 100\% }[/math]

Factorial Design

Параметр Уровни Количество значений Всего комбинаций
percent-grammar-1 55, 60, 65 3 3
logistic? TRUE, FALSE 2 2
alpha 0.025, 0.03, 0.035, 0.04 4 4
gamma 0.02, 0.03, 0.04 3 3
threshold-val 0 1 1
sink-state-1? TRUE 1 1
update-algorithm "reward" 1 1
num-nodes 100 1 1
ИТОГО экспериментальных сценариев: 3 × 2 × 4 × 3 = 72

Вырастить данные в агент-ориентированной модели

  1. Запустить вашу модель NetLogo с использованием BehaviorSpace.
  2. Вырастить данные и записать csv
  3. Разместить данные на GitHub и сделать доступными - https://raw.githubusercontent.com/patarakin/stat-data/refs/heads/main/datasets/csv/Lang_Change_1440.csv

Для каждого из 72 сценариев проведено 20 повторений (реплик) с разными случайными сидами → 1440 наблюдений (данные в Lang_Change_1440.csv

Провести регрессионный анализ

  • Какие факторы и как влияют на успешность распространения языковой инновации в агент-ориентированной системе?

[math]\displaystyle{ LCI = \beta_0 + \beta_1 \cdot \alpha + \beta_2 \cdot \gamma + \beta_3 \cdot IsLogistic + \beta_4 \cdot StartPercent + \epsilon }[/math]


data <- read.csv("../DataSets/Lang_Change_1440.csv", 
                     header = TRUE, 
                     stringsAsFactors = FALSE)

model_1 <- lm(LCI ~ alpha + gamma + IsLogistic + StartPercent, data = data)
summary(model_1)
Результаты
Call:
lm(formula = LCI ~ alpha + gamma + IsLogistic + StartPercent, 
   data = data)
Residuals:
     Min        1Q    Median        3Q       Max 
-0.060078 -0.008360  0.000560  0.008557  0.040863 
Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)     9.746e-02  5.596e-03   17.42   <2e-16 ***
alpha           6.845e-01  6.146e-02   11.14   <2e-16 ***
gamma           5.253e+00  4.208e-02  124.83   <2e-16 ***
IsLogistictrue -1.947e-02  6.871e-04  -28.34   <2e-16 ***
StartPercent    7.842e-03  8.415e-05   93.19   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01304 on 1435 degrees of freedom
Multiple R-squared:  0.9461,	Adjusted R-squared:  0.946 
F-statistic:  6299 on 4 and 1435 DF,  p-value: < 2.2e-16


p-value: < 2.2e-16 = [math]\displaystyle{ 2 \times 10^{-16} }[/math] - (0.0000000000000002). Это значение экстремально мало, гораздо меньше стандартного порога [math]\displaystyle{ \alpha = 0.05 }[/math] или даже [math]\displaystyle{ \alpha = 0.001 }[/math].

Результаты анализа

Переменная Коэффициент Std. Error t-статистика p-значение Интерпретация
(Intercept) 0.0975 0.00560 17.42 <2e-16 Базовое значение LCI при нулевых параметрах
alpha 0.6845 0.06146 11.14 <2e-16 Увеличение alpha на 0.01 → LCI ↑ на 0.0068
gamma 5.253 0.04208 124.83 <2e-16 ДОМИНИРУЮЩИЙ ФАКТОР: увеличение gamma на 0.01 → LCI ↑ на 0.053
IsLogistic (TRUE) -0.01947 0.0006871 -28.34 <2e-16 Логистический процесс снижает LCI на 0.0195 (консервативный эффект)
StartPercent 0.007842 0.00008415 93.19 <2e-16 Увеличение начальной доли на 1% → LCI ↑ на 0.00784


Computational Statistics

Сфера Компонент Роль в исследовании
Agent-Based Modeling (ABM) Language Change Генерирует микроскопические данные поведения 1440 сценариев
Socio-Economic Statistics Переменные: alpha, gamma, adoption, innovation Переводит лингвистические процессы в параметры социальных систем
Computational Statistics (R) Линейная регрессия, факторный анализ Синтезирует ABM-результаты в аналитическую модель