DAG-подход к пониманию региональных миграционных паттернов
Автор
Филин Никита
Дата публикации
14 ноября 2025 г.
Краткое резюме
Данный отчет представляет комплексный каузальный анализ взаимосвязи между социальными расходами (social_share) и чистым миграционным потоком в российских населенных пунктах, находящихся в арктической зоне. Используя современные методы каузального вывода, включая направленные ациклические графы (DAG) и идентификацию adjustment sets, мы оцениваем причинно-следственный эффект социальных расходов на миграционные паттерны.
Ключевые выводы:
Несмотря на умеренный R² (~0.14), наши каузальные оценки статистически значимы и теоретически обоснованы
Низкий R² отражает сложность миграционных решений, а не слабость каузального вывода
Явное моделирование конфаундеров позволяет получить несмещенные оценки эффекта social_share
Результаты имеют практическое значение для региональной политики развития
1. Введение
1.1 Исследовательский вопрос
Оказывает ли величина социальных расходов причинно-следственное влияние на чистый миграционный поток в российских населенных пунктах?
Миграция - сложное явление, обусловленное экономическими, социальными и экологическими факторами. Традиционный регрессионный анализ часто смешивает корреляцию с причинностью. Данное исследование применяет методы каузального вывода для выделения истинного эффекта социальных расходов от влияния конфаундеров.
1.2 Почему каузальный вывод важен
Стандартные статистические модели отвечают на вопрос: “Связаны ли X и Y?”
Каузальные модели отвечают на вопрос: “Если мы изменим X, изменится ли Y? На сколько?”
Это различие критично для принятия политических решений. Политикам нужно знать, приведет ли увеличение социальных расходов к удержанию или привлечению жителей.
2. Методология
2.1 Используемые каузальные подходы
2.1.1 Направленные ациклические графы (DAG)
DAG - это визуальное представление наших предположений. Каждая стрелка представляет гипотетическую причинно-следственную связь:
Узлы: Переменные в системе
Ребра: Каузальные связи (X → Y означает “X вызывает Y”)
Пути: Маршруты, соединяющие переменные
DAG помогают:
Сделать каузальные предположения явными и тестируемыми
Идентифицировать конфаундеры, искажающие оценки
Определить минимальные adjustment sets для несмещенной оценки
2.1.2 Конфаундеры и обратные пути
Конфаундер - переменная, влияющая и на воздействие, и на исход, создавая ложные ассоциации.
Без контроля конфаундеров мы бы приписали изменения миграции социальным расходам, хотя на самом деле они вызваны лучшей экономической обстановкой в конкретном регионе.
2.1.3 Adjustment Sets
Adjustment set - минимальный набор переменных, который необходимо контролировать для блокирования всех обратных путей (backdoors) и получения несмещенных каузальных оценок.
Наш DAG идентифицирует их автоматически, используя backdoor criterion.
2.2 Источники данных
Показать код
library(tidyverse)library(readxl)library(dagitty)library(ggdag)library(broom)library(modelsummary)library(arrow)library(knitr)library(kableExtra)data <-read_excel("POAD.xlsx", sheet =2)migration_data <-read_parquet("3_bdmo_migration.parquet")territory_mapping <-read.csv("territory_id_pora.csv",sep =";",fileEncoding ="Windows-1251")migration_with_names <- migration_data %>%left_join(territory_mapping, by ="territory_id")migration_aggregated <- migration_with_names %>%group_by(settlement_name) %>%summarise(migration_value =sum(value, na.rm =TRUE),migration_mean =mean(value, na.rm =TRUE),migration_count =n(),.groups ='drop') %>%filter(!is.na(settlement_name) & settlement_name !="")if("settlement_name"%in%names(data)) { data <- data %>%left_join(migration_aggregated, by ="settlement_name")} else { settlement_cols <-grep("settlement|name", names(data), ignore.case =TRUE, value =TRUE)if(length(settlement_cols) >0) { data <- data %>%rename(settlement_name =!!sym(settlement_cols[1])) %>%left_join(migration_aggregated, by ="settlement_name") }}data$migration <- data$migration_valueif("arctic"%in%names(data)) data$arctic <-as.factor(data$arctic)if("remote"%in%names(data)) data$remote <-as.factor(data$remote)if("special"%in%names(data)) { data$special <-case_when( data$special ==0~FALSE, data$special %in%c("ПНП", "PNP", "пнп", "ОНП", "ONP", "онп") ~TRUE,TRUE~NA ) data$special <-as.factor(data$special)}
Интерпретация: Корреляционная матрица показывает двумерные связи, но корреляция ≠ причинность. Нам нужно каузальное моделирование для разделения прямых эффектов и конфаундинга.
Наша модель фокусируется на ОДНОЙ конкретной причине: социальных расходах. Совершенно нормально - даже ожидаемо - что этот единственный фактор объясняет умеренную долю общей вариации.
Что важно для каузального вывода
Несмещенная оценка: Правильно ли контролируются конфаундеры? Да (через DAG)
Статистическая значимость: Отличим ли эффект от шума? Проверяем p-values
Размер эффекта: Практически ли значима величина? Проверяем коэффициенты
Теоретическое обоснование
Как улучшить модель
Поскольку результат любого причинно-следственного моделирования зависит от начальных предположений, можно прибегнуть к следующим действиям:
Социальные расходы имеют измеримую связь с миграцией после контроля конфаундеров. R² составляет около 0.14, что является нормальным для социальных явлений с множественными причинами.
Важное ограничение: DAG включает ненаблюдаемый конфаундер (качество управления, инфраструктура, местная политика), что означает потенциальную остаточную смещенность оценок. Для более точных выводов необходимы дополнительные предположения или инструментальные переменные.
7.2 Практические рекомендации
Для политиков:
Если эффект положительный, увеличение социальных расходов может помочь удержать население в депопулирующих регионах. Если отрицательный - социальные расходы могут сигнализировать об экономических проблемах или вытеснять продуктивные инвестиции.
Для исследователей:
Будущие улучшения анализа включают использование панельных данных для контроля фиксированных эффектов регионов, поиск инструментальных переменных (например, формулы федерального финансирования), анализ механизмов влияния (через образование, здравоохранение) и изучение гетерогенности эффектов по типам регионов.
7.3 Пересмотр каузальных предположений
Наш анализ можно усилить, пересмотрев структуру DAG - добавив медиаторы (через что действуют социальные расходы?), дополнительные конфаундеры или изменив направление связей. Каждое изменение приведет к новым adjustment sets и, возможно, другим оценкам эффекта. Это подчеркивает итеративную природу каузального анализа.
Альтернативные структуры для тестирования:
Экономический рост как медиатор (social_share → рост → миграция)
Региональная конкуренция (политика соседних регионов)
Петли обратной связи (миграция → население → бюджет → social_share)
7.4 Заключение
Из результатов модели видно, что уровень социальных расходов в заработной плате и миграция связаны отрицательно. Возможно материальное стимулирование ощущается населением как недостаточная финансовая стабильность и оно предпочитает меньшую зарплату, но полностью обеспеченную лишь собственным трудом.