Географически взвешенная регрессия (ГВР) (Пространственная статистика)
Резюме
Выполняет Географически взвешенную регрессию (ГВР), локальную форму линейной регрессии, используемую для моделирования отношений, варьирующихся в пространстве.
Рисунок
Использование
-
ГВР формирует отдельное уравнение для каждого объекта в наборе данных, соединяющее зависимые и независимые переменные объектов, попадающих в пределы ширины диапазона для каждого объекта. Форма и протяженность ширины полосы зависит от входных параметров Тип Ядра (Kernel type), Метод задания ширины полосы (Bandwidth method), Расстояние (Distance) и Количество соседей (Number of neighbors) с одним ограничением: если количество соседних объектов превысит 1 000, то в каждое локальное уравнение будет включена только ближайшая 1 000.
-
ГВР должна быть применена к наборам данных с несколькими сотнями объектов для лучших результатов. Это не подходящий метод для маленьких наборов данных. Инструмент не работает с многоточечными данными.
-
Инструмент ГВР также создает Выходной класс объектов (Output feature class) и таблицу с итоговым отчетом выполнения инструмента и диагностическими значениями. Имя таблицы будет автоматически сгенерировано с использованием имени выходного класса объектов с суффиксом _supp. Выходной класс объектов автоматически добавляется в таблицу содержания со схемой отображения горячий/холодный, чтобы смоделировать невязки. Полное пояснение по каждому результату см. в Интерпретация результатов ГВР.Примечание:
Инструмент ГВР производит множество различных результатов. Щелкнув правой кнопкой мыши запись Сообщения (Messages) в окне Результаты (Results) и выбрав Просмотр (View), можно просмотреть итоговый отчет о работе инструмента ГВР.
Файл _supp всегда создается в том же местоположении, что и Выходной класс объектов (Output feature class), кроме случая, когда выходной класс объектов создается внутри Набора классов объектов (Feature Dataset). Если выходной класс объектов находится внутри набора классов, таблица _supp создается в базе геоданных, содержащей этот набор классов объектов.
-
Всегда предпочтительнее использование данных в проекции; это особенно важно всякий раз, когда расстояние является компонентом анализа — как это происходит в случае ГВР, если выбран Тип Ядра (Kernel type) FIXED (Фиксированный). Крайне рекомендуется, чтобы данные находились в Системе координат проекции, а не в Географической системе координат.
-
Некоторые из вычислений, сделанных инструментом ГВР, используют преимущества многократных центральных процессоров, чтобы увеличить работу и будут автоматически использовать до 8 нитей/Центральных процессоров для того, чтобы обработать данные.
Всегда следует начинать регрессионный анализ с регрессии по методу Наименьших квадратов (МНК) (Ordinary_Least_Squares (OLS)). Сначала найдите модель МНК (OLS), определенную должным образом, затем, используя те же самые независимые переменные, запустите ГВР (исключая любые "фиктивные" независимые переменные, представляющие различные пространственные режимы).
-
Зависимые и независимые переменные должны храниться в числовых полях, содержащих разнообразие значений. Линейные методы регрессии, как ГВР, не являются подходящими для предсказания бинарных результатов (например, все ценности для зависимой переменной или 1 или 0).
-
В глобальных регрессионных моделях, таких как МНК (OLS), результаты не надежны, когда 2 или более переменных испытывают мультиколлинеарность (когда 2 или более переменных избыточны или вместе "рассказывают одну и ту же историю"). Инструмент ГВР (географически взвешенная регрессия) строит уравнение локальной регрессии для каждого объекта в наборе данных. Когда значения для конкретной независимой переменной кластеризуются в пространстве, вы вероятнее всего будете иметь проблемы с локальной мультиколлинеарностью. Число обусловленности в выходном классе объектов указывает на нестабильность результатов вследствие локальной мультиколлинеарности. Как правило, не стоит доверять результатам для объектов с числом обусловленности более 30, равным 0 или, для шейп-файлов, равным 1.7976931348623158e+308.
-
Предостережение должно использоваться при включении номинальных/категорийных данных в модели ГВР. Где категории кластеризуются в пространстве, есть сильный риск столкновения с локальными проблемами мультиколлинеарности. Число обусловленности, включенное в результаты ГВР, указывает, когда локальная коллинеарность - проблема (число обусловленности меньше чем ноль, больше чем 30, или Null). Результаты в присутствии локальной мультиколлинеарности непостоянны.
-
Не используйте "фиктивные" независимые переменные, чтобы представить различные пространственные режимы в модели ГВР (например, переписным районам вне городского ядра назначают значения 1, в то время как всем другим назначают значение 0). Поскольку ГВР допускает изменение коэффициентов независимых переменных, эти независимые переменные пространственного режима являются ненужными, а их включение создаст проблемы с локальной мультиколлинеарностью.
-
Чтобы лучше понять региональное изменение среди коэффициентов ваших независимых переменных, исследуйте дополнительные растровые коэффициенты поверхности, созданные ГВР. Эти растровые поверхности создаются в Рабочей области растров коэффициентов (Coefficient raster workspace), если вы указываете ее. Для полигональных данных можно использовать градуированный цвет или отображение от холодного-к-горячему для каждого поля с коэффициентами в Выходном классе объектов, чтобы изучить изменения в вашей области исследования.
Вы можете использовать ГВР для интерполяции, предоставив класс пространственных объектов для Местоположения интерполяции (Predictions locations) (часто совпадает с входным классом объектов), Независимые переменные интерполяции (Prediction explanatory variables) и Выходной класс объектов интерполяции (Output prediction feature class). Обязательно один к одному соответствие полей, используемых для калибровки модели регрессии (значения, введенные для независимых переменных), и полей, используемых для интерполяции (значения, введенные для поля с независимыми переменными интерполяции). Порядок этих переменных должен быть одним и тем же. Предположите, например, что вы моделируете дорожные происшествия как функцию ограничений скорости, дорожных условий, числа переулков, и числа автомобилей. Вы можете прогнозировать влияние, которое изменяющиеся ограничения скорости или улучшающиеся дороги могли бы оказать на статистику дорожных происшествий, создавая новые переменные с исправленными ограничениями скорости и дорожными условиями. Существующие переменные будут использоваться для калибровки регрессионной модели и в качестве независимых переменных. Исправленные переменные будут использоваться для интерполяции и будут введены как Независимые переменные интерполяции.
-
Если класс объектов с Местоположения интерполяции предоставлен, но Независимые переменные интерполяции не определены, Выходной класс предсказанных пространственных объектов создается с рассчитанными коэффициентами только для каждого местоположения (без интерполяции).
-
Регрессионная модель - не определена, если отсутствует ключевая независимая переменная. Статистически существенная пространственная автокорреляция невязок регрессии и/или неожиданное пространственное изменение среди коэффициентов одной или более независимых переменных предполагают, что ваша модель не определена. Вы должны приложить все усилия (посредством остаточного анализа методом МНК и ГВР коэффициентов вариационного анализа, например), чтобы обнаружить эти ключевые недостающие переменные с тем, чтобы включить их в модель.
-
Постоянный вопрос, имеет ли смысл для независимой переменной быть нестационарной. Например, предположите, что вы моделируете плотность определенного вида растений, как функцию нескольких переменных, включая ASPECT (Аспект). Если вы находите, что коэффициент для переменной ASPECT (Аспект) изменяется в области исследования, вы, вероятно, видите доказательства недостатка ключевой независимой переменной (возможно, распространенность конкурирующей растительности, например). Вы должны приложить все усилия, чтобы включать все ключевые независимые переменные в вашу регрессионную модель.
-
Когда результатом вычисления будет бесконечность или неопределенным, результат для файлов, которые не являются шейп-файлами, будет Пустым; для шейп-файлов результат будет-DBL_MAX =-1.7976931348623158e+308.
Когда вы выбираете или AICc или CV в качестве Метода задания ширины полосы (Bandwidth Method), ГВР найдет оптимальное расстояние (для фиксированного ядра) или оптимального количества соседей (для настраиваемого ядра). Проблемы локальной мультиколлинеарности, однако, будут препятствовать методам задания ширины диапазона AIC и CV в нахождении оптимального расстояния/числа соседей. Если вы получите ошибку, сообщающую о серьезных проблемах в схеме модели, попробуйте указать определенное расстояние или количество соседей, затем проверьте все числа обусловленности в выходном классе объектов, чтобы увидеть, какие значения связаны с локальными проблемами коллинеарности.
-
Проблемы локальной коллинеарности, однако, будут препятствовать методам задания ширины диапазона AIC и CV в нахождении оптимального расстояния/числа соседей. Если вы получите ошибку, сообщающую о серьезных проблемах в схеме модели, попробуйте указать определенное расстояние или количество соседей, затем проверьте все числа обусловленности в выходном классе объектов, чтобы увидеть, какие значения связаны с локальными проблемами мультиколлинеарности.
-
Ошибки серьезных проблем в схеме модели или ошибки выявления локальных уравнений, не содержащих в своих описаниях достаточное количество соседей, зачастую указывают на проблемы с глобальной или локальной мультиколлинеарностью. Чтобы обнаружить, где встретилась проблема, запустите модель, используя МНК и проверьте значение фактора, увеличивающего дисперсию, для каждой переменной величины. Если некоторые из значений Фактора, увеличивающего дисперсию, - большие (выше 7,5, например), глобальная мультиколлинеарность не позволяет работать методу ГВР (географически взвешенная регрессия). Однако, вероятнее всего, проблемой является локальная мультиколлинеарность. Попытайтесь создать тематическую карту для каждой независимой переменной. Если карта раскрывает пространственную кластеризацию идентичных значений, следует рассмотреть вариант исключения тех переменных из модели или комбинирования тех переменных с другими независимыми переменными для увеличения вариации значений. Если, например, вы моделируете значения для дома и имеете переменные для спален и ванных комнат отдельно, вы, возможно, захотите объединить их, чтобы увеличить вариацию значений или представить их как ванная комната/спальня. При конструировании моделей ГВР, избегайте использования бинарных значений, пространственной кластеризации номинальных переменных, или переменных с очень малым числом возможных значений.
-
ГВР — линейная модель, к которой применимы те же самые требования, что и к МНК. Обратитесь к разделу Почему не работает модель регрессии в документе Основы регрессионного анализа, чтобы убедиться, что ваша модель настроена соответствующим образом.
При использовании шейп-файлов, помните, что в них нельзя хранить пустые (null) значения. Инструменты или другие процедуры, которые создают шейп-файлы из входных файлов, которые не являются шейп-файлами, могут, следовательно, сохранить пустые значения как ноль или как некоторое очень маленькое отрицательное число (-DBL_MAX =-1.7976931348623158e+308). Это может привести к неожиданным результатам. См. также Об особенностях геообработки с шейп-файлами на выходе.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Класс пространственных объектов, содержащий зависимые и независимые переменные. | Feature Layer |
dependent_field |
Числовое поле, содержащее значения, для которых вы пытаетесь моделировать. | Field |
explanatory_field [explanatory_field,...] |
Перечень полей, представляющих независимые переменные в вашей регрессионной модели. | Field |
out_featureclass |
Выходной класс объектов с оценками зависимых переменных и невязками. | Feature Class |
kernel_type |
Указывает, создается ли ядро как фиксированное, или оно может изменяться в пространстве как функция от плотности объектов.
| String |
bandwidth_method |
Определяет, как экстент ядра должен быть определен. Когда AICc или CV выбраны, инструмент найдет оптимальное расстояние/количество соседей для вас. Если вы не уверены, какие значения указать в параметрах Расстояние (Distance) (тип Ядра = ФИКСИРОВАННЫЙ) или Количество соседей (Number of Neighbors) (тип Ядра = АДАПТИВНЫЙ), стандартным вариантом является выбор либо AICc, либо CV. Если выбран параметр ШИРИНА ПОЛОСЫ (BANDWIDTH PARAMETER), следует указать значения Расстояние (Distance) или Количество соседей (Number of Neighbors).
| String |
distance (дополнительно) |
Указывает фиксированную ширину полосы или расстояние, если тип ядра – FIXED (ФИКСИРОВАННЫЙ), а метод задания ширины полосы - BANDWIDTH PARAMETER. | Double |
number_of_neighbors (дополнительно) |
Целое число, отражающее точное число соседей, для их включения в локальную ширину полосы Гауссова ядра всякий раз, когда тип ядра - ADAPTIVE (АДАПТИВНЫЙ), а метод задания ширины полосы = BANDWIDTH PARAMETER. | Long |
weight_field (дополнительно) |
Числовое поле, содержащее пространственные веса для индивидуальных объектов. Поле веса позволяет рассматривать некоторые объекты как более важные по сравнению с другими в процессе калибровки модели. Прежде всего, полезно, когда число образцов, взятых в различных местоположениях, изменяется, значения для зависимых и независимых переменных усреднены, и места с большим количеством образцов более надежны (должны иметь больший вес). Если у вас есть в среднем 25 различных образцов для одного местоположения, но в среднем 2 образца для другого местоположения, вы можете использовать число образцов как ваше поле весов так, чтобы местоположения с большим количеством образцов имели большее влияние на образцовую калибровку, чем местоположения с немногими образцами. | Field |
coefficient_raster_workspace (дополнительно) |
Полное имя пути к рабочему пространству, где будут создаваться коэффициенты растров. Когда это рабочее пространство обеспечено, растры создаются для точки пересечения и каждой независимой переменной. | Folder |
cell_size (дополнительно) |
Размер ячейки (число) или ссылка на размер ячейки (имя пути к растровому набору данных) для использования при создании растров коэффициентов. Размер ячейки по умолчанию является самым меньшим значением ширины или высоты экстента, определенных в среде геообработки выходной системы координат, и разделенных на 250. | Analysis Cell Size |
in_prediction_locations (дополнительно) |
Класс объектов, содержащий объекты, представляющие местоположения, где оценки должны быть вычислены. Каждый объект в этом наборе данных должен содержать значения для всех независимых переменных; зависимая переменная для этих объектов будет оценена, используя модель, калиброванную для данных во входном классе объектов. | Feature Layer |
prediction_explanatory_field [prediction_explanatory_field,...] (дополнительно) |
Перечень полей, представляющих независимые переменные в классе пространственных объектов Местоположения интерполяции. Эти имена полей должны быть предоставлены в том же порядке (отношение один к одному), что и перечисленные для входного класса объектов независимые переменные. Если независимые переменные предсказания не приведены, выходной класс предсказанных пространственных объектов будет содержать только рассчитанные коэффициенты значений для каждого предсказанного местоположения. | Field |
out_prediction_featureclass (дополнительно) |
Выходной класс объектов для оценок зависимых переменных для каждого объекта в классе пространственных объектов Предсказанных местоположений. | Feature Class |
Пример кода
Следующий скрипт, представленный в окне Python, демонстрирует, как использовать инструмент GeographicallyWeightedRegression.
import arcpy
arcpy.env.workspace = "c:/data"
arcpy.GeographicallyWeightedRegression_stats("CallData.shp", "Calls","BUS_COUNT;RENTROCC00;NoHSDip","CallsGWR.shp", "ADAPTIVE", "BANDWIDTH PARAMETER","#", "25", "#","CoefRasters", "135", "PredictionPoints", "#", "GWRCallPredictions.shp")
Следующий автономный скрипт Python демонстрирует, как использовать инструмент GeographicallyWeightedRegression.
# Model 911 emergency calls using GWR
# Import system modules
import arcpy
# Set the geoprocessor object property to overwrite existing outputs
arcpy.gp.overwriteOutput = True
# Local variables...
workspace = r"C:\Data"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# 911 Calls as a function of {number of businesses, number of rental units,
# number of adults who didn't finish high school}
# Process: Geographically Weighted Regression...
gwr = arcpy.GeographicallyWeightedRegression_stats("CallData.shp", "Calls",
"BUS_COUNT;RENTROCC00;NoHSDip",
"CallsGWR.shp", "ADAPTIVE", "BANDWIDTH PARAMETER","#", "25", "#",
"CoefRasters", "135", "PredictionPoints", "#", "GWRCallPredictions.shp")
# Create Spatial Weights Matrix to use with Global Moran's I tool
# Process: Generate Spatial Weights Matrix...
swm = arcpy.GenerateSpatialWeightsMatrix_stats("CallsGWR.shp", "UniqID",
"CallData25Neighs.swm",
"K_NEAREST_NEIGHBORS",
"#", "#", "#", 25)
# Calculate Moran's Index of Spatial Autocorrelation for
# OLS Residuals using a SWM File.
# Process: Spatial Autocorrelation (Morans I)...
moransI = arcpy.SpatialAutocorrelation_stats("CallsGWR.shp", "StdResid",
"NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "NONE", "#",
"CallData25Neighs.swm")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()
Параметры среды
- Выходная система координат (Output Coordinate System)
Геометрия пространственных объектов проецируется в Выходную систему координат после завершения анализа. Следовательно, значения, введенные для параметра Расстояние (Distance) должны быть указаны в тех же самых единицах, что и Входной класс объектов (Input feature class). Значения, введенные для Выходного размера ячейки (Output cell size) должны быть в таких же единицах, что и выходная система координат.