Table of Contents

Пространственная регрессия является мощным статистическим методом, используемым для анализа пространственно коррелированных данных, что позволяет исследователям понять, как географические факторы влияют на различные явления, начиная от экологических моделей до городского развития, результатов общественного здравоохранения и экономических тенденций. Это всеобъемлющее руководство обеспечивает подробный, пошаговый подход к реализации пространственной регрессии с использованием R, популярного статистического языка программирования с открытым исходным кодом, который стал стандартным инструментом для анализа пространственных данных в академических исследованиях и профессиональной практике.

Понимание пространственной регрессии и ее значения

Проблемы регрессии в географии по своей сути связаны с географическими местоположениями, и последствия использования данных о местоположении потенциально включают пространственную зависимость (пространственная автокорреляция) и пространственную нестационарность или тенденции (нестационарность). В отличие от традиционных моделей регрессии, которые предполагают независимость между наблюдениями, пространственная регрессия явно объясняет тот факт, что наблюдения, близкие друг к другу в пространстве, как правило, более похожи, чем наблюдения, находящиеся дальше друг от друга.

Как гласит первый закон географии Тоблера: «Все связано со всем остальным, но близкие вещи более связаны, чем отдаленные вещи». Этот фундаментальный принцип лежит в основе всего пространственного анализа и подчеркивает, почему стандартные методы регрессии могут давать вводящие в заблуждение результаты при применении к пространственным данным. Ближайшие наблюдения могут быть псевдореплицированными, а не независимыми случаями, нарушающими основное предположение об обычной регрессии наименьших квадратов (OLS).

Многие вопросы исследований в области социальных наук зависят от пространства, такие как результаты голосования, цены на жилье, рынки труда, протестное поведение или решения по миграции. Когда пространственная автокорреляция присутствует в остатках регрессии, это указывает на неточность модели и означает, что p-значения и оценки коэффициентов не могут быть доверены. Модели пространственной регрессии обеспечивают соответствующую основу для решения этих проблем.

Основные R-пакеты для пространственной регрессии

Перед началом пространственного регрессионного анализа необходимо установить и загрузить несколько ключевых R-пакетов.Экосистема пространственного анализа в R значительно эволюционировала, современные пакеты обеспечивают комплексную функциональность для операций с пространственными данными и моделирования.

Основные пакеты для пространственного анализа

Важные пакеты для фундаментальных пространственных операций включают в себя sf для обработки пространственных данных, отображение карты и tmap для визуализации и spdep для пространственных весов и отношений. Пакет sf стал современным стандартом для обработки пространственных векторных данных в R, заменив старый пакет sp более интуитивным и эффективным подходом.

Для моделирования пространственной регрессии, в частности, вам понадобится пакет spatialreg, который обеспечивает функции для установки моделей пространственного запаздывания и пространственных ошибок. Пакет spdep необходим для диагностики пространственной зависимости и создания матриц пространственных весов. Установите эти пакеты, используя следующий код:

install.packages(c("sf", "spdep", "spatialreg", "tmap", "mapview"))

После установки загрузите пакеты в начале R-сессии:

library(sf)
library(spdep)
library(spatialreg)
library(tmap)
library(mapview)

Подготовка и загрузка ваших пространственных данных

Надлежащая подготовка данных является основой успешного пространственного регрессионного анализа.Ваш набор данных должен включать как данные атрибутов (переменные, которые вы хотите проанализировать), так и пространственную информацию (координаты или геометрии, которые определяют местоположения).

Требования к формату данных

Spatial data can come in various formats, with the most common being shapefiles (.shp), GeoJSON files (.geojson), and GeoPackage files (.gpkg). The sf package can read all these formats using the st_read() function. Here's how to load a shapefile:

spatial_data <- st_read("your_data.shp")

Для файлов GeoJSON синтаксис идентичен:

spatial_data <- st_read("your_data.geojson")

Очистка данных и валидация

Перед тем, как приступить к анализу, тщательно очистите свой набор данных, чтобы обеспечить качество данных:

  • Проверять и обрабатывать недостающие значения как в пространственной геометрии, так и в данных атрибутов.
  • Удалить или исправить недействительные геометрии с помощью и
  • Убедитесь, что все наблюдения имеют полные данные для переменных, которые вы планируете включить в свою модель.
  • Убедитесь, что нет дублирующих пространственных признаков
  • Проверьте выбросы, которые могут неоправданно повлиять на результаты регрессии

Вы можете проверить недостающие значения с помощью:

summary(spatial_data)
sum(is.na(spatial_data$your_variable))

Координационные системы отсчета

Одним из наиболее важных аспектов подготовки пространственных данных является обеспечение того, чтобы все наборы данных использовали одну и ту же систему координатных ссылок (CRS). Несоответствующая CRS может привести к неправильным пространственным отношениям и неверным результатам анализа. Проверяйте CRS ваших данных, используя:

st_crs(spatial_data)

Если вам нужно преобразовать данные в другую CRS, используйте функцию . Например, для преобразования в WGS84 (EPSG:4326):

spatial_data <- st_transform(spatial_data, crs = 4326)

Для анализа, включающего вычисления расстояния, часто лучше использовать проецируемую систему координат (измеренную в метрах или футах), а не географическую систему координат (измеренную в градусах).

Анализ и визуализация пространственных данных

Визуальное исследование является важным первым шагом в пространственном регрессионном анализе. Это помогает вам идентифицировать закономерности, обнаруживать потенциальные выбросы, понимать пространственное распределение ваших переменных и формулировать гипотезы о пространственных отношениях.

Создание базовых карт

Самый простой способ визуализации пространственных данных — это использование функции базового графика:

plot(spatial_data["variable_name"])

Для более интерактивных и информативных визуализаций используйте tmap или mapview пакеты.

tm_shape(spatial_data) +
 tm_polygons("variable_name",
 style = "quantile",
 palette = "Blues",
 title = "Your Variable") +
 tm_layout(legend.outside = TRUE)

Пакет mapview создает интерактивные карты, которые позволяют увеличить, нажать и нажать на функции:

mapview(spatial_data, zcol = "variable_name")

Изучение переменных распределений

Перед установкой регрессионных моделей изучите статистические распределения переменных. Создайте гистограммы, сплетения и сводную статистику:

hist(spatial_data$dependent_variable,
 main = "Distribution of Dependent Variable",
 xlab = "Value")

summary(spatial_data$dependent_variable)

Ищите искажения, выбросы и необходимость преобразований. Высоко искаженные переменные могут извлечь выгоду из преобразований лог или квадратного корня, чтобы лучше соответствовать предположениям регрессии.

Анализ корреляции

Изучите корреляции между независимыми переменными, чтобы проверить мультиколлинеарность, которая может вызвать проблемы при регрессионном анализе:

cor(st_drop_geometry(spatial_data[, c("var1", "var2", "var3")]))

Функция удаляет колонку пространственной геометрии, оставляя только данные атрибутов для корреляционного анализа.

Понимание и тестирование пространственной автокорреляции

Прежде чем решить, нужна ли вам пространственная регрессия, необходимо проверить, присутствует ли пространственная автокорреляция в ваших данных или в остатках стандартной модели регрессии OLS.Пространственная автокорреляция характеризуется корреляцией в сигнале среди близлежащих мест в пространстве и является более сложной, чем одномерная автокорреляция, поскольку она многомерна и многонаправлена.

Статистика глобального Моран I

Глобальный Моран I — это мера общей кластеризации пространственных данных. Моран I — количественная оценка того, насколько каждый регион похож на своих соседей и усредняет все эти оценки. Статистика колеблется от примерно -1 до +1, где:

  • Значения, значительно превышающие ожидаемое значение, указывают на положительную пространственную автокорреляцию или кластеризацию, происходящую, когда соседние области имеют сходные значения.
  • Значения, значительно ниже ожидаемого значения, указывают на отрицательную пространственную автокорреляцию или дисперсию, происходящую, когда области, близкие друг к другу, имеют разные значения.
  • Значения вокруг ожидаемого значения указывают на случайность, то есть отсутствие пространственного рисунка

Тестирование пространственной автокорреляции в переменных

Можно проверить пространственную автокорреляцию в переменной непосредственно с помощью функции из пакета spdep.Однако сначала нужно создать матрицу пространственных весов (подробнее об этом говорится в следующем разделе):

# Create neighbors and weights (simplified example)
neighbors <- poly2nb(spatial_data)
weights <- nb2listw(neighbors)

# Test for spatial autocorrelation
moran.test(spatial_data$variable_name, weights)

Для статистики Global Moran's I нулевая гипотеза утверждает, что анализируемый атрибут случайным образом распределяется между признаками в вашей области исследования.Когда p-значение, возвращаемое этим инструментом, статистически значимо, вы можете отклонить нулевую гипотезу.

Тестирование пространственной автокорреляции в регрессионных остатках

Важно оценить остаточные величины для пространственной автокорреляции, так как они должны быть независимыми, а не коррелированными. Если остаточные величины пространственно автокоррелированы, это указывает на то, что модель неверно определена. Во-первых, подходит стандартная регрессионная модель OLS:

ols_model <- lm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data)

Затем проверьте остатки для пространственной автокорреляции с помощью :

lm.morantest(ols_model, weights)

Если этот тест показывает значительную пространственную автокорреляцию в остатках, вам нужно использовать методы пространственной регрессии, а не стандартную регрессию OLS.

Моделирование Монте-Карло для тестирования на значимость

Моделирование Монте-Карло является предпочтительным методом для проверки значимости.То, как оно работает, заключается в том, что значения случайным образом распределяются по полигонам и вычисляется Моран I, повторяется несколько раз для установления распределения ожидаемых значений, а наблюдаемое значение сравнивается с имитируемым распределением.

moran_mc <- moran.mc(spatial_data$variable_name, weights, nsim = 999)
moran_mc

Подход Монте-Карло особенно надежен, поскольку он не опирается на допущения распределения и обеспечивает более надежное значение p, особенно для небольших размеров выборки.

Местные показатели пространственной ассоциации (LISA)

Локальные показатели пространственной ассоциации (LISA) предназначены для обеспечения указания степени значительной пространственной кластеризации аналогичных значений вокруг каждого наблюдения.В то время как глобальный Моран дает вам одну статистику для всей области исследования, анализ LISA определяет конкретные места, где происходит кластеризация или пространственные выбросы.

Вы можете вычислить местный Моран, используя:

local_moran <- localmoran_perm(spatial_data$variable_name, weights, nsim = 9999)
head(local_moran)

LISA может помочь идентифицировать HH (высокие значения, окруженные высокими значениями), LL (низкие значения, окруженные низкими значениями), HL (высокие значения, окруженные низкими значениями) и LH (низкие значения, окруженные высокими значениями). Эта информация ценна для понимания локальных пространственных моделей и выявления горячих точек или холодных точек в ваших данных.

Создание матриц пространственных весов

Матрица пространственных весов имеет основополагающее значение для пространственного регрессионного анализа. Они определяют пространственные отношения между наблюдениями, по существу отвечая на вопрос: «Кто соседи каждого наблюдения?» Выбор пространственных весов может существенно повлиять на результаты анализа, поэтому важно выбрать метод, соответствующий вашему исследовательскому вопросу и структуре данных.

Весы, основанные на смежности

Соседи определяются как пространственные единицы, разделяющие границы. Этот подход чаще всего используется для полигональных данных, таких как переписные участки, округа или страны. Существует два основных типа смежности:

  • Соседи разделяют любую пограничную точку, включая углы (например, ход королевы в шахматах)
  • Соседи должны иметь общий краевой край, а не только угол (как ход ладьи в шахматах)

Создайте соседей на основе конъюнктуры с помощью функции :

# Queen contiguity (default)
neighbors_queen <- poly2nb(spatial_data, queen = TRUE)

# Rook contiguity
neighbors_rook <- poly2nb(spatial_data, queen = FALSE)

# Examine the neighbor structure
summary(neighbors_queen)

В резюме будет показано количество регионов, распределение связей соседей, а также определены любые регионы без соседей (острова), которые требуют специальной обработки.

Расстояние на основе веса

Расстояние на основе весов определяют соседи на основе близости в пределах определенного порога расстояния. Такой подход полезен, когда вы хотите захватить пространственные отношения за пределами непосредственной смежности или при работе с точечными данными.

# Get coordinates of centroids
coords <- st_coordinates(st_centroid(spatial_data))

# K-nearest neighbors (e.g., 4 nearest neighbors)
knn_neighbors <- knn2nb(knearneigh(coords, k = 4))

# Distance band (all neighbors within specified distance)
distance_neighbors <- dnearneigh(coords, d1 = 0, d2 = 10000) # distance in map units

При использовании весов, основанных на расстоянии, убедитесь, что ваши данные находятся в проецируемой системе координат, поэтому расстояния измеряются в значимых единицах (метрах или футах), а не в градусах.

Преобразование соседей в весы

После того, как вы определили структуру соседа, преобразуйте ее в список весов с помощью . Эта функция позволяет указать, как весы должны быть стандартизированы:

# Row-standardized weights (most common)
weights_W <- nb2listw(neighbors_queen, style = "W")

# Binary weights
weights_B <- nb2listw(neighbors_queen, style = "B")

# Variance-stabilizing coding
weights_S <- nb2listw(neighbors_queen, style = "S")

Стандартизированные по шкале весы (стиль = "W") чаще всего используются, поскольку они обеспечивают, чтобы весы для каждого наблюдения суммировались до 1, что делает интерпретацию более простой. Двоичные веса (стиль = "B") просто указывают, являются ли наблюдения соседями (1) или нет (0).

Острова обработки и разъединенные наблюдения

Некоторые наблюдения могут не иметь соседей по выбранному вами определению, создавая «острова» в вашей матрице пространственных весов. Это может вызвать проблемы в пространственной регрессии. Вы можете идентифицировать острова с:

which(card(neighbors_queen) == 0)

Если острова существуют, у вас есть несколько вариантов: подключить их к ближайшему соседу, использовать дистанционный подход вместо этого или установить параметр FLT:30 в функции анализа.

Выбор между пространственной лагой и пространственными моделями ошибок

После того, как вы подтвердили, что пространственная автокорреляция присутствует, вам нужно решить, какой тип пространственной регрессионной модели наиболее подходит для ваших данных.Два основных типа — пространственные модели запаздывания и пространственные модели ошибок, и они представляют собой принципиально разные концептуализации пространственных процессов.

Понимание пространственных моделей отставания

Модель пространственно-отставленной включает пространственную зависимость явно путем добавления переменной y с «отставанием» на правой стороне уравнения регрессии, по существу говоря, что значения y в соседних областях наблюдения i являются важным предиктором y на каждой отдельной области i.

Пространственная диффузия происходит, когда пространственно близкие единицы находятся под непосредственным влиянием своих соседей, и наоборот. Это представляет собой существенный пространственный процесс, в котором результат в одном месте напрямую влияет на результаты в соседних местах. Например, уровень преступности в одном районе может влиять на уровень преступности в соседних районах через побочные эффекты.

Модель пространственного лага принимает форму:

y = ρWy + Xβ + ε

где ρ (rho) — пространственный ауторегрессивный параметр, W — матрица пространственных весов, X — независимые переменные, ε — термин ошибки.

Понимание пространственных моделей ошибок

Модель пространственной ошибки рассматривает пространственную автокорреляцию как неудобство, которое необходимо устранить, подразумевая, что наблюдаемая пространственная зависимость не отражает действительно пространственный процесс, а просто географическую кластеризацию источников интересующего поведения, таких как граждане в соседних районах, предпочитающие одного и того же кандидата не потому, что они разговаривают со своими соседями, а потому, что граждане с аналогичными доходами имеют тенденцию к кластеризации географически.

Если атрибуционные источники не могут быть учтены путем включения их в качестве объяснительных переменных, модель будет демонстрировать пространственную зависимость в терминах ошибок, которые могут быть смоделированы с помощью пространственно отставшего термина ошибки.Модель пространственных ошибок уместна, когда пространственная автокорреляция является результатом опущенных переменных, которые сами пространственно кластеризованы.

Модель пространственной ошибки имеет вид:

y = Xβ + u, где u = λWu + ε

где λ (lambda) — пространственный ауторегрессивный параметр для термина ошибки.

Использование тестов множителей Лагранжа для выбора модели

Тесты Lagrange Multiplier предоставляют инструменты, помогающие принять решение о том, какая из этих двух моделей наиболее подходит. Эти тесты могут быть выполнены с использованием функции :

# Fit OLS model first
ols_model <- lm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data)

# Run Lagrange Multiplier tests
lm.LMtests(ols_model, weights, test = "all")

Результат будет включать в себя несколько тестов:

  • LMlag: Испытания на пространственную зависимость от задержки
  • LMerr: Тесты на пространственную зависимость от ошибок
  • RLMlag: Надежный LM-тест на лаг (учет на ошибку)
  • RLMerr: Надежный тест LM на ошибку (учет запаздывания)

Если оба LMlag и LMerr являются значимыми, изучите надежные версии. Выберите модель пространственного лага, если RLMlag является значительным, а RLMerr нет, и выберите модель пространственной ошибки, если RLMerr является значительным, а RLMlag нет. Если оба надежных теста являются значительными, вам может потребоваться рассмотреть более сложные модели или тщательно изучить спецификацию вашей модели.

Модель пространственного отставания

После того, как вы определили, что модель пространственного запаздывания подходит для ваших данных, вы можете подогнать ее с помощью функции из пакета пространственных рег.Оценка максимальной вероятности модели пространственного запаздывания осуществляется с помощью функции lagsarlm(), причем требуемыми аргументами являются формула регрессии, набор данных и объект пространственных весов листа.

Базовый пространственный синтаксис модели

Синтаксис для установки пространственной модели лага аналогичен стандартной регрессии в R:

library(spatialreg)

spatial_lag_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data,
 listw = weights)

summary(spatial_lag_model)

Толкование пространственной модели отставания

Итоговый результат будет включать несколько важных компонентов:

  • Rho (ρ): Пространственное запаздывание, переменная, измеряющая зависимую переменную в трактах, определяемых как окружающие каждый тракт в матрице пространственных весов, используется в качестве дополнительной объясняющей переменной для соответствующего учета пространственной кластеризации
  • Оценки коэффициентов: влияние ваших независимых переменных
  • Тесты на значимость : Включая тесты на соотношение вероятностей, z-тесты и тесты Уолда
  • Модельная статистика соответствия : AIC, лог-вероятность и другие меры

Если расчетный коэффициент для rho является как положительным, так и статистически значимым, то при увеличении зависимой переменной в окружающих окрестностях в среднем увеличивается и зависимая переменная в каждом тракте, даже при корректировке на другие объясняющие переменные.

Вычислительные меры воздействия

Интерпретация сущностных эффектов каждого предиктора в пространственной модели лага гораздо сложнее, чем в непространственной модели, из-за наличия пространственного множителя, который связывает независимые переменные с зависимыми, и эффект изменения независимой переменной не является постоянным во всех наблюдениях.

Для правильной интерпретации коэффициентов в пространственной модели запаздывания необходимо вычислить показатели воздействия с помощью функции :

impacts_lag <- impacts(spatial_lag_model, listw = weights, R = 999)
summary(impacts_lag, zstats = TRUE)

Это обеспечит три типа воздействий:

  • Прямые воздействия: Влияние изменения независимой переменной в одном месте на зависимую переменную в том же месте
  • Косвенные воздействия: Влияние изменения независимой переменной в одном месте на зависимую переменную в других местах (эффекты перелива)
  • Общие воздействия : сумма прямых и косвенных воздействий

Эти меры воздействия дают полную картину того, как изменения в ваших независимых переменных влияют на зависимую переменную как локально, так и через пространственные побочные эффекты.

Модель пространственных ошибок

Когда ваши диагностические тесты показывают, что модель пространственной ошибки более подходящая, вы можете подогнать ее с помощью функции из пакета пространственных регистров. Синтаксис очень похож на модель пространственного запаздывания:

spatial_error_model <- errorsarlm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data,
 listw = weights)

summary(spatial_error_model)

Интерпретация пространственной модели ошибок

Вместо Rho параметром ошибки lag является Lambda, которая является задержкой ошибки, и если она положительна и значительна во всех тестах, это указывает на необходимость контроля пространственной автокорреляции в ошибке.

Ключевые компоненты выпуска включают:

  • Ламбда (λ): Пространственный ауторегрессивный параметр для термина ошибки
  • Оценки коэффициентов: Они могут быть непосредственно интерпретированы, в отличие от модели пространственного запаздывания
  • Тесты на значимость : как для коэффициентов, так и для лямбда
  • Модельная статистика соответствия: AIC, log-likelihood

В отличие от модели пространственного запаздывания, нам не нужно запускать удары(), и, таким образом, коэффициенты можно напрямую сравнивать с коэффициентами OLS. Это делает интерпретацию более простой, поскольку коэффициенты представляют прямое влияние каждой независимой переменной на зависимую переменную, при этом структура пространственных ошибок учитывает пространственную автокорреляцию в остатках.

Проверка оставшейся пространственной автокорреляции

После установки модели пространственного запаздывания или пространственной ошибки важно убедиться, что модель адекватно рассмотрела пространственную автокорреляцию. Вы можете проверить остатки вашей пространственной модели:

# Extract residuals
residuals_spatial <- residuals(spatial_error_model)

# Test for remaining spatial autocorrelation
moran.test(residuals_spatial, weights)

Если тест Моран I на остатках уже не значителен, ваша пространственная модель успешно учитывает пространственную автокорреляцию.Если значительная автокорреляция остается, вам может потребоваться пересмотреть спецификацию модели, добавить дополнительные переменные или изучить более сложные пространственные модели.

Модельная диагностика и валидация

Тщательная диагностика моделей необходима для обеспечения того, чтобы ваша модель пространственной регрессии была действительной и надежной. Модели должны быть диагностированы, прежде чем сообщать о них, и это включает в себя изучение нескольких аспектов производительности модели.

Проверка остатков

Даже после учета пространственной автокорреляции следует изучить остатки для других потенциальных проблем:

# Histogram of residuals
hist(residuals(spatial_lag_model),
 main = "Distribution of Residuals",
 xlab = "Residuals")

# Q-Q plot to check normality
qqnorm(residuals(spatial_lag_model))
qqline(residuals(spatial_lag_model))

# Plot residuals against fitted values
plot(fitted(spatial_lag_model), residuals(spatial_lag_model),
 xlab = "Fitted Values", ylab = "Residuals")
abline(h = 0, col = "red")

Ищите закономерности в остатках, которые могут указывать на гетероскедастичность, нелинейность или влиятельные выбросы.

Картографирование остатков

Создание карты остатков может выявить пространственные закономерности, которые могут быть не очевидны только из статистических тестов:

# Add residuals to spatial data
spatial_data$residuals <- residuals(spatial_lag_model)

# Map the residuals
tm_shape(spatial_data) +
 tm_polygons("residuals",
 style = "jenks",
 palette = "RdBu",
 midpoint = 0,
 title = "Model Residuals") +
 tm_layout(legend.outside = TRUE)

В идеале остаточные величины не должны иметь четкой пространственной структуры. Кластеры с высокими или низкими остатками позволяют предположить, что в некоторых областях модель может систематически чрезмерно или недостаточно прогнозироваться.

Сравнение производительности модели

Сравните вашу модель пространственной регрессии с базовой моделью OLS и, возможно, с альтернативными пространственными характеристиками:

# Compare AIC values (lower is better)
AIC(ols_model)
AIC(spatial_lag_model)
AIC(spatial_error_model)

# Compare log-likelihoods
logLik(ols_model)
logLik(spatial_lag_model)
logLik(spatial_error_model)

Модель с самым низким AIC и самым высоким уровнем вероятности регистрации, как правило, обеспечивает наилучшее соответствие данным, хотя вы также должны рассмотреть теоретическое обоснование и интерпретируемость.

Проверка влиятельных наблюдений

Определите наблюдения, которые оказывают непропорциональное влияние на результаты вашей модели:

# Cook's distance for OLS model
cooks_d <- cooks.distance(ols_model)
plot(cooks_d, type = "h", main = "Cook's Distance")
abline(h = 4/nrow(spatial_data), col = "red", lty = 2)

# Identify influential observations
influential 4/nrow(spatial_data))
print(influential)

Исследуйте влиятельные наблюдения, чтобы определить, представляют ли они ошибки данных, истинные выбросы или важные случаи, которые должна учитывать ваша модель.

Передовые методы пространственной регрессии

Помимо базовых моделей пространственного отставания и пространственных ошибок, несколько передовых методов могут решать более сложные пространственные процессы и структуры данных.

Пространственная модель Дурбина

Модель пространственного Дурбина (SDM) включает в себя как пространственно отставшие зависимые переменные, так и пространственно отставшие независимые переменные, что позволяет более гибко моделировать пространственные побочные эффекты:

spatial_durbin_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data,
 listw = weights,
 type = "mixed")

summary(spatial_durbin_model)

Эта модель позволяет проверить, отличаются ли побочные эффекты от независимых переменных и может дать представление о том, какие факторы создают пространственные внешние эффекты.

Географически взвешенная регрессия

Географически взвешенная регрессия (GWR) позволяет коэффициентам регрессии изменяться в пространстве, устраняя пространственную неоднородность в отношениях. Хотя она не является строго пространственной регрессионной моделью в том же смысле, что и пространственные модели запаздывания или ошибки, GWR ценен, когда вы подозреваете, что отношения между переменными различаются в вашей области исследования:

library(spgwr)

# Determine optimal bandwidth
bandwidth <- gwr.sel(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data,
 coords = st_coordinates(st_centroid(spatial_data)))

# Fit GWR model
gwr_model <- gwr(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data,
 coords = st_coordinates(st_centroid(spatial_data)),
 bandwidth = bandwidth)

Модели пространственных панелей

Когда у вас есть пространственные данные, наблюдаемые в течение нескольких периодов времени, модели пространственных панелей объединяют пространственные и временные размеры. Пакет сплм обеспечивает функции для соответствия различным спецификациям пространственных панелей:

library(splm)

# Spatial panel lag model
spatial_panel <- spml(dependent_var ~ independent_var1 + independent_var2,
 data = panel_data,
 listw = weights,
 model = "within",
 spatial.error = "none",
 lag = TRUE)

Представление и отчетность результатов

Четкое представление результатов пространственной регрессии имеет важное значение для эффективного информирования технической и нетехнической аудитории.

Создание таблиц качества публикации

Несколько R-пакетов могут помочь вам создать профессионально выглядящие таблицы регрессии. Пакет Stargazer особенно полезен для сравнения нескольких моделей:

library(stargazer)

stargazer(ols_model, spatial_lag_model, spatial_error_model,
 type = "text", # use "html" or "latex" for publication
 title = "Comparison of Regression Models",
 column.labels = c("OLS", "Spatial Lag", "Spatial Error"),
 model.numbers = FALSE)

Для более современного форматирования таблиц рассмотрим пакет Modelummary:

library(modelsummary)

models <- list("OLS" = ols_model,
 "Spatial Lag" = spatial_lag_model,
 "Spatial Error" = spatial_error_model)

modelsummary(models,
 stars = TRUE,
 gof_map = c("nobs", "aic", "logLik"))

Визуализация пространственных эффектов

Карты - это мощные инструменты для передачи результатов пространственной регрессии. Создайте карты, показывающие:

  • Наблюдения за зависимой переменной
  • Предсказание ценностей вашей модели
  • Остатки (наблюдаемый минус прогнозируемый)
  • Локальные воздействия (для моделей пространственного отставания)
# Add predictions to spatial data
spatial_data$predicted <- fitted(spatial_lag_model)

# Create side-by-side maps
tm_shape(spatial_data) +
 tm_polygons(c("dependent_var", "predicted"),
 style = "quantile",
 palette = "YlOrRd",
 title = c("Observed", "Predicted")) +
 tm_layout(legend.outside = TRUE)

Результаты пространственной регрессии

При написании результатов пространственной регрессии обязательно включите:

  • Описание используемой матрицы пространственных весов и обоснование выбора
  • Результаты диагностических тестов для пространственной автокорреляции (тесты Морана I, LM)
  • Сравнение моделей OLS и пространственной регрессии
  • Оценки коэффициентов со стандартными ошибками и уровнями значимости
  • Для пространственных моделей лагов, прямых, косвенных и суммарных воздействий
  • Статистика соответствия модели (AIC, log-likelihood, R-squared, если таковая имеется)
  • Обсуждение остаточной диагностики и валидации модели
  • Карты или другие визуализации ключевых результатов

Общие подводные камни и лучшие практики

Одним из наиболее важных аспектов моделирования является выбор переменных, и неправильно определенная модель никогда не будет хорошей, независимо от того, сколько вы делаете для коррекции пространственной автокорреляции.

Переменный выбор и спецификация модели

Пространственная автокорреляция может возникнуть из опущенных переменных. Прежде чем прибегнуть к пространственной регрессии, убедитесь, что вы включили все теоретически релевантные переменные в свою модель. Если пространственная автокорреляция сохраняется, потому что нет доступных данных или потому, что у вас нет понятия о том, какую переменную искать, вы можете попробовать сформулировать регрессионную модель, которая контролирует пространственную автокорреляцию.

Соображения размера образца

Класс входных признаков должен содержать не менее 30 признаков, так как результаты не будут надежными с менее чем 30 признаками.Модели пространственной регрессии требуют достаточных размеров выборки для получения стабильных оценок, особенно при оценке пространственных ауторегрессивных параметров.

Выбор правильного пространственного веса

Выбор матрицы пространственных весов может существенно повлиять на ваши результаты. Всегда оправдывайте свой выбор, основываясь на теории и характере ваших данных. Рассмотрите возможность тестирования нескольких спецификаций и анализа чувствительности отчетности, чтобы продемонстрировать, что ваши выводы устойчивы к различным определениям пространственного веса.

Толкование причинности

Модели пространственной регрессии, как и все модели регрессии, идентифицируют ассоциации, а не причинные отношения. Будьте осторожны в отношении причинных претензий, особенно с моделями пространственного отставания, где одновременность может осложнить интерпретацию. Наличие пространственной автокорреляции не обязательно подразумевает пространственный процесс - это может просто отражать опущенные переменные, которые пространственно кластеризованы.

Работа с эффектами Edge

Глобальные меры могут быть смещены по краям, где важные компоненты пространственного процесса выходят за пределы области исследования. Имейте в виду, что наблюдения на краях вашей области исследования могут иметь неполные соседние наборы, потенциально предвзятые результаты. Подумайте, подходят ли границы области исследования для вашего исследовательского вопроса.

Пример: полный рабочий процесс

Вот полный пример рабочего процесса, объединяющий все шаги, обсуждаемые в этом руководстве:

# Load required packages
library(sf)
library(spdep)
library(spatialreg)
library(tmap)

# 1. Load and prepare data
spatial_data <- st_read("your_data.shp")
spatial_data <- st_transform(spatial_data, crs = 32618) # UTM Zone 18N

# 2. Explore data
summary(spatial_data)
tm_shape(spatial_data) +
 tm_polygons("dependent_var", style = "quantile", palette = "YlOrRd")

# 3. Create spatial weights
neighbors <- poly2nb(spatial_data, queen = TRUE)
weights <- nb2listw(neighbors, style = "W")

# 4. Fit OLS model and test for spatial autocorrelation
ols_model <- lm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data)
lm.morantest(ols_model, weights)

# 5. Run Lagrange Multiplier tests
lm.LMtests(ols_model, weights, test = "all")

# 6. Fit spatial lag model
spatial_lag_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2,
 data = spatial_data,
 listw = weights)
summary(spatial_lag_model)

# 7. Compute impacts
impacts_lag <- impacts(spatial_lag_model, listw = weights, R = 999)
summary(impacts_lag, zstats = TRUE)

# 8. Check residuals
moran.test(residuals(spatial_lag_model), weights)

# 9. Map residuals
spatial_data$residuals <- residuals(spatial_lag_model)
tm_shape(spatial_data) +
 tm_polygons("residuals", style = "jenks", palette = "RdBu", midpoint = 0)

# 10. Compare models
AIC(ols_model, spatial_lag_model)

Дополнительные ресурсы и дальнейшее обучение

Пространственная регрессия - это богатая и развивающаяся область. Чтобы углубить свое понимание и оставаться в курсе лучших практик, рассмотрите возможность изучения этих ресурсов:

Онлайн-ресурсы

Ключевые R пакеты

Будьте в курсе последних событий в этих основных пакетах:

  • sf — Простые функции для R, современный стандарт пространственных векторных данных
  • spdep — Пространственная зависимость: схемы взвешивания, статистика и модели
  • пространственная регрессия — пространственный регрессионный анализ
  • tmap — тематические карты в R
  • mapview — интерактивный просмотр пространственных данных
  • spgwr — Географически взвешенная регрессия
  • splm — модели данных пространственных панелей

Рекомендуемое чтение

Для теоретических основ и передовых методов, обратитесь к этим авторитетным текстам:

  • Анселин Л. (1988). «Пространственная эконометрика: методы и модели» - Классический текст по пространственной эконометрике
  • Bivand, R., Pebesma, E., & Gómez-Rubio, V. (2013). "Applied Spatial Data Analysis with R" - Comprehensive Guide to Space analysis in R.
  • LeSage, J., & Pace, R. K. (2009). «Введение в пространственную эконометрику» - Современная трактовка пространственной регрессии
  • Кресси Н. (1993). «Статистика пространственных данных» - Теоретические основы пространственной статистики

Заключение

Реализация пространственной регрессии в R предполагает систематический рабочий процесс: подготовка и исследование пространственных данных, создание соответствующих пространственных весовых матриц, тестирование пространственной автокорреляции, выбор между моделями пространственного запаздывания и пространственных ошибок, подгонку выбранной модели и тщательную проверку результатов с помощью диагностических проверок.Освоение этих шагов позволяет исследователям выявлять пространственные зависимости и улучшать их анализ географически связанных данных в различных областях, включая городское планирование, эпидемиологию, науку об окружающей среде, экономику и социальные науки.

Ключ к успешному пространственному регрессионному анализу лежит не только в техническом знании R, но и в вдумчивом рассмотрении пространственных процессов, лежащих в основе ваших данных. Всегда основывайте свои методологические решения в теории, тщательно проверяйте свои модели и интерпретируйте результаты в контексте пространственных и существенных явлений, которые вы изучаете. Следуя всеобъемлющему рабочему процессу, изложенному в этом руководстве, вы будете хорошо оснащены для проведения строгих пространственных регрессионных анализов, которые способствуют пониманию сложных пространственных отношений в вашей области исследований.

Помните, что пространственная регрессия является активной областью методологического развития. Оставайтесь в контакте с исследовательским сообществом, обновляйте свои R-пакеты и продолжайте изучать новые методы и лучшие практики по мере развития области. Инвестиции в развитие этих навыков будут приносить дивиденды в качестве и влиянии анализа ваших пространственных данных.