urban-geography-and-development
Schritt-für-Schritt-Anleitung zur Implementierung der räumlichen Regression mit R
Table of Contents
Räumliche Regression ist eine leistungsstarke statistische Technik, die verwendet wird, um räumlich korrelierte Daten zu analysieren, die es Forschern ermöglichen zu verstehen, wie geografische Faktoren verschiedene Phänomene beeinflussen, die von Umweltmustern über Stadtentwicklung bis hin zu Ergebnissen der öffentlichen Gesundheit und wirtschaftlichen Trends reichen. Dieser umfassende Leitfaden bietet einen detaillierten, schrittweisen Ansatz zur Umsetzung der räumlichen Regression unter Verwendung von R, einer beliebten Open-Source-Programmiersprache, die zum Standardinstrument für die räumliche Datenanalyse in der akademischen Forschung und beruflichen Praxis geworden ist.
Räumliche Regression und ihre Bedeutung verstehen
Regressionsprobleme in der Geographie betreffen inhärent geographische Standorte, und die Folgen der Verwendung von Standortdaten können räumliche Abhängigkeit (räumliche Autokorrelation) und räumliche Heterogenität oder Trends (Nichtstationarität) sein Im Gegensatz zu herkömmlichen Regressionsmodellen, die Unabhängigkeit zwischen Beobachtungen annehmen, berücksichtigt die räumliche Regression ausdrücklich die Tatsache, dass Beobachtungen, die einander nahe stehen, im Raum tendenziell ähnlicher sind als solche, die weiter voneinander entfernt sind.
Wie Toblers erstes Gesetz der Geographie besagt: "Alles ist mit allem anderen verwandt, aber nahe Dinge sind mehr verwandt als ferne Dinge". Dieses Grundprinzip liegt der gesamten räumlichen Analyse zugrunde und zeigt auf, warum Standard-Regressionstechniken irreführende Ergebnisse liefern können, wenn sie auf räumliche Daten angewendet werden. Nahe Beobachtungen können eher Pseudoreplikationen als unabhängige Fälle sein, was eine Kernannahme der gewöhnlichen kleinsten Quadrate (OLS) verletzt Regression.
Viele sozialwissenschaftliche Forschungsfragen sind räumlich abhängig, wie Abstimmungsergebnisse, Wohnungspreise, Arbeitsmärkte, Protestverhalten oder Migrationsentscheidungen. Wenn räumliche Autokorrelation in Regressionsresiduen vorhanden ist, deutet dies auf Modellfehlspezifikation hin und bedeutet, dass p-Werte und Koeffizientenschätzungen nicht vertrauenswürdig sind. Räumliche Regressionsmodelle bieten den geeigneten Rahmen, um diese Probleme anzugehen.
Wesentliche R-Pakete für die räumliche Regression
Bevor Sie mit der räumlichen Regressionsanalyse beginnen, müssen Sie mehrere wichtige R-Pakete installieren und laden. Das räumliche Analyse-Ökosystem in R hat sich erheblich weiterentwickelt, wobei moderne Pakete umfassende Funktionen für räumliche Datenoperationen und Modellierung bieten.
Kernpakete für die räumliche Analyse
Wichtige Pakete für grundlegende räumliche Operationen umfassen sf für die Handhabung räumlicher Daten, Mapview und tmap für die Visualisierung sowie spdep für räumliche Gewichte und Beziehungen. Das sf Paket ist zum modernen Standard für die Handhabung räumlicher Vektordaten in R geworden und ersetzt das ältere sp Paket durch einen intuitiveren und effizienteren Ansatz.
Für die räumliche Regressionsmodellierung benötigen Sie speziell das Paket spatialreg, das Funktionen für die Anpassung von räumlichen Verzögerungs- und räumlichen Fehlermodellen bereitstellt.
install.packages(c("sf", "spdep", "spatialreg", "tmap", "mapview"))
Nach der Installation laden Sie die Pakete zu Beginn Ihrer R-Sitzung:
library(sf) library(spdep) library(spatialreg) library(tmap) library(mapview)
Vorbereiten und Laden Ihrer räumlichen Daten
Die richtige Datenaufbereitung ist die Grundlage für eine erfolgreiche räumliche Regressionsanalyse. Ihr Datensatz muss sowohl Attributdaten (die Variablen, die Sie analysieren möchten) als auch räumliche Informationen (Koordinaten oder Geometrien, die Orte definieren) enthalten.
Anforderungen an das Datenformat
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")
Bei GeoJSON-Dateien ist die Syntax identisch:
spatial_data <- st_read("your_data.geojson")
Datenbereinigung und -validierung
Bevor Sie mit der Analyse fortfahren, reinigen Sie Ihren Datensatz gründlich, um die Datenqualität sicherzustellen:
- Überprüfen und Behandeln von fehlenden Werten sowohl in räumlichen Geometrien als auch in Attributdaten
- Entferne oder berichtige ungültige Geometrien mit und
- Stellen Sie sicher, dass alle Beobachtungen vollständige Daten für die Variablen enthalten, die Sie in Ihr Modell aufnehmen möchten
- Stellen Sie sicher, dass es keine doppelten räumlichen Merkmale gibt
- Suchen Sie nach Ausreißern, die Ihre Regressionsergebnisse übermäßig beeinflussen könnten
Sie können auf fehlende Werte überprüfen mit:
summary(spatial_data) sum(is.na(spatial_data$your_variable))
Koordinatenreferenzsysteme
Einer der wichtigsten Aspekte der räumlichen Datenaufbereitung ist die Sicherstellung, dass alle Datensätze dasselbe Koordinatenreferenzsystem (CRS) verwenden. Fehlpassendes CRS kann zu falschen räumlichen Beziehungen und ungültigen Analyseergebnissen führen.
st_crs(spatial_data)
Wenn Sie Ihre Daten in ein anderes CRS umwandeln müssen, verwenden Sie die Funktion , z. B. um in WGS84 (EPSG:4326) umzuwandeln:
spatial_data <- st_transform(spatial_data, crs = 4326)
Für Analysen mit Entfernungsberechnungen ist es oft besser, ein projiziertes Koordinatensystem (gemessen in Metern oder Füßen) anstelle eines geographischen Koordinatensystems (gemessen in Grad) zu verwenden.
Explorative Spatial Data Analyse und Visualisierung
Visuelle Erkundung ist ein wesentlicher erster Schritt in der räumlichen Regressionsanalyse. Sie hilft Ihnen, Muster zu identifizieren, potenzielle Ausreißer zu erkennen, die räumliche Verteilung Ihrer Variablen zu verstehen und Hypothesen über räumliche Beziehungen zu formulieren.
Erstellen von Basic Maps
Der einfachste Weg, um Ihre räumlichen Daten zu visualisieren, ist die Basisplot-Funktion:
plot(spatial_data["variable_name"])
Für interaktivere und informativere Visualisierungen verwenden Sie die Pakete tmap oder mapview Das tmap-Paket bietet eine Grammatik des Grafikansatzes ähnlich wie ggplot2:
tm_shape(spatial_data) +
tm_polygons("variable_name",
style = "quantile",
palette = "Blues",
title = "Your Variable") +
tm_layout(legend.outside = TRUE)
Das Mapview-Paket erstellt interaktive Karten, mit denen Sie zoomen, schwenken und auf Funktionen klicken können:
mapview(spatial_data, zcol = "variable_name")
Prüfung variabler Verteilungen
Bevor Sie Regressionsmodelle anpassen, untersuchen Sie die statistischen Verteilungen Ihrer Variablen.
hist(spatial_data$dependent_variable, main = "Distribution of Dependent Variable", xlab = "Value") summary(spatial_data$dependent_variable)
Suchen Sie nach Schiefe, Ausreißern und ob Transformationen notwendig sein könnten.
Korrelationsanalyse
Untersuchen Sie Korrelationen zwischen Ihren unabhängigen Variablen, um nach Multikollinearität zu suchen, die Probleme bei der Regressionsanalyse verursachen kann:
cor(st_drop_geometry(spatial_data[, c("var1", "var2", "var3")]))
Die Funktion FLT:16 entfernt die Spalte für räumliche Geometrie und lässt nur die Attributdaten für die Korrelationsanalyse übrig.
Verständnis und Test für räumliche Autokorrelation
Bevor Sie entscheiden, ob Sie eine räumliche Regression benötigen, müssen Sie prüfen, ob eine räumliche Autokorrelation in Ihren Daten oder in den Residuen eines Standard-OLS-Regressionsmodells vorhanden ist. Die räumliche Autokorrelation ist durch eine Korrelation in einem Signal zwischen nahe gelegenen Orten im Raum gekennzeichnet und komplexer als die eindimensionale Autokorrelation, da sie multidimensional und multidirektional ist.
Global Moran's I Statistik
Die Statistik reicht von ungefähr -1 bis +1, wobei die Anzahl der Daten, die wir in der Region haben, ungefähr 1 bis 1 beträgt, und die Anzahl der Daten, die wir in der Region haben, ist ungefähr 1 bis 1 und die Anzahl der Daten, die wir in der Region haben.
- Werte, die deutlich über dem erwarteten Wert liegen, weisen auf eine positive räumliche Autokorrelation oder Clustering hin, wenn benachbarte Regionen ähnliche Werte aufweisen.
- Werte, die deutlich unter dem erwarteten Wert liegen, weisen auf eine negative räumliche Autokorrelation oder Dispersion hin, wenn Regionen, die nahe beieinander liegen, tendenziell unterschiedliche Werte aufweisen.
- Werte um den erwarteten Wert zeigen Zufälligkeit an, dh Abwesenheit von räumlichen Mustern
Testen der räumlichen Autokorrelation in Variablen
Sie können die räumliche Autokorrelation in einer Variablen direkt mit der Funktion aus dem spdep-Paket testen, müssen jedoch zuerst eine Matrix für räumliche Gewichte erstellen (im nächsten Abschnitt ausführlich diskutiert):
# Create neighbors and weights (simplified example) neighbors <- poly2nb(spatial_data) weights <- nb2listw(neighbors) # Test for spatial autocorrelation moran.test(spatial_data$variable_name, weights)
Für die globale Moran-I-Statistik besagt die Nullhypothese, dass das analysierte Attribut zufällig auf die Merkmale in Ihrem Studiengebiet verteilt ist. Wenn der von diesem Tool zurückgegebene p-Wert statistisch signifikant ist, können Sie die Nullhypothese ablehnen.
Testen der räumlichen Autokorrelation in Regressionsresidualen
Es ist wichtig, Residuen auf räumliche Autokorrelation zu bewerten, da diese unabhängig sein sollen, nicht korreliert sind. Wenn die Residuen räumlich autokorreliert sind, deutet dies darauf hin, dass das Modell falsch spezifiziert ist.
ols_model <- lm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data)
Testen Sie dann die Residuen auf räumliche Autokorrelation mit :
lm.morantest(ols_model, weights)
Wenn dieser Test eine signifikante räumliche Autokorrelation in den Residuen zeigt, müssen Sie räumliche Regressionsmethoden anstelle der Standard-OLS-Regression verwenden.
Monte Carlo Simulation für Signifikanztests
Die Monte-Carlo-Simulation ist das bevorzugte Verfahren zur Signifikanzprüfung, indem die Werte zufällig den Polygonen zugeordnet werden und Morans I berechnet wird, mehrmals wiederholt wird, um eine Verteilung der Erwartungswerte zu ermitteln, und der beobachtete Wert mit der simulierten Verteilung verglichen wird.
moran_mc <- moran.mc(spatial_data$variable_name, weights, nsim = 999) moran_mc
Der Monte-Carlo-Ansatz ist besonders robust, da er nicht auf Verteilungsannahmen beruht und einen zuverlässigeren p-Wert bietet, insbesondere für kleinere Stichprobengrößen.
Lokale Indikatoren der räumlichen Assoziation (LISA)
Lokale Indikatoren der räumlichen Assoziation (LISA) sollen einen Hinweis auf das Ausmaß der signifikanten räumlichen Clustering ähnlicher Werte um jede Beobachtung liefern. Während globale Moran I Ihnen eine Statistik für das gesamte Untersuchungsgebiet liefert, identifiziert die LISA-Analyse spezifische Orte, an denen Clustering oder räumliche Ausreißer auftreten.
Sie können das lokale Moran's I mit folgenden Mitteln berechnen:
local_moran <- localmoran_perm(spatial_data$variable_name, weights, nsim = 9999) head(local_moran)
LISA kann helfen, HH (hohe Werte, die von hohen Werten umgeben sind), LL (niedrige Werte, die von niedrigen Werten umgeben sind), HL (hohe Werte, die von niedrigen Werten umgeben sind) und LH (niedrige Werte, die von hohen Werten umgeben sind) zu identifizieren. Diese Informationen sind wertvoll, um lokale räumliche Muster zu verstehen und Hotspots oder Coldspots in Ihren Daten zu identifizieren.
Erstellen von räumlichen Gewichten Matrizen
Die räumlichen Gewichte sind für die räumliche Regressionsanalyse von grundlegender Bedeutung. Sie definieren die räumlichen Beziehungen zwischen Beobachtungen und beantworten im Wesentlichen die Frage: "Wer sind die Nachbarn jeder Beobachtung?" Die Wahl der räumlichen Gewichte kann Ihre Analyseergebnisse erheblich beeinflussen. Daher ist es wichtig, eine Methode zu wählen, die für Ihre Forschungsfrage und Datenstruktur geeignet ist.
Kontiguitätsbasierte Gewichte
Diese Methode wird am häufigsten für Polygondaten wie Volkszählungstrakte, Landkreise oder Länder verwendet.
- Königin Kontiguität: Nachbarn teilen sich jeden Grenzpunkt, einschließlich Ecken (wie die Bewegung der Königin im Schach).
- Rook Contiguity: Nachbarn müssen sich eine Grenzkante teilen, nicht nur eine Ecke (wie der Turm im Schach).
Erstellen Sie Contiguity-basierte Nachbarn mit der Funktion :
# 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)
Die Zusammenfassung zeigt Ihnen die Anzahl der Regionen, die Verteilung der Nachbarverbindungen und identifiziert alle Regionen ohne Nachbarn (Inseln), die eine spezielle Handhabung erfordern.
Entfernungsabhängige Gewichte
Entfernungsbasierte Gewichte definieren Nachbarn basierend auf der Nähe innerhalb eines festgelegten Entfernungsschwellenwerts. Dieser Ansatz ist nützlich, wenn Sie räumliche Beziehungen über die unmittelbare Nachbarschaft hinaus erfassen möchten oder wenn Sie mit Punktdaten arbeiten.
# 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
Stellen Sie bei der Verwendung von abstandsbasierten Gewichten sicher, dass sich Ihre Daten in einem projizierten Koordinatensystem befinden, sodass Entfernungen in sinnvollen Einheiten (Meter oder Füße) und nicht in Grad gemessen werden.
Nachbarn in Gewichte umwandeln
Nachdem Sie die Nachbarstruktur definiert haben, konvertieren Sie sie mit in eine Gewichtsliste.
# 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")
Zeilen-standardisierte Gewichte (Style = "W") werden am häufigsten verwendet, weil sie sicherstellen, dass die Gewichte für jede Beobachtung zu 1 summieren, was die Interpretation einfacher macht.
Umgang mit Inseln und getrennten Beobachtungen
Einige Beobachtungen haben vielleicht keine Nachbarn unter der von Ihnen gewählten Definition, was "Inseln" in Ihrer räumlichen Gewichtungsmatrix erzeugt.
which(card(neighbors_queen) == 0)
Wenn Inseln existieren, haben Sie mehrere Optionen: Verbinden Sie sie mit ihrem nächsten Nachbarn, verwenden Sie stattdessen einen abstandsbasierten Ansatz oder setzen Sie den Parameter FLT:30 in Ihren Analysefunktionen auf WAHR (obwohl dies vorsichtig erfolgen sollte).
Auswahl zwischen räumlichen Lag- und räumlichen Fehlermodellen
Sobald Sie bestätigt haben, dass eine räumliche Autokorrelation vorliegt, müssen Sie entscheiden, welcher Typ des räumlichen Regressionsmodells für Ihre Daten am besten geeignet ist. Die beiden Haupttypen sind räumliche Lag-Modelle und räumliche Fehlermodelle, und sie repräsentieren grundlegend unterschiedliche Konzeptualisierungen räumlicher Prozesse.
Räumliche Lag-Modelle verstehen
Das räumlich verzögerte Modell beinhaltet die räumliche Abhängigkeit explizit durch Hinzufügen einer "räumlich verzögerten" Variable y auf der rechten Seite der Regressionsgleichung, im Wesentlichen sagen, dass die Werte von y in den benachbarten Beobachtungsbereichen i ist ein wichtiger Prädiktor von y auf jedem einzelnen Bereich i.
Räumliche Streuung tritt auf, wenn räumlich nahe gelegene Einheiten direkt von ihren Nachbarn beeinflusst werden und umgekehrt. Dies stellt einen substantiellen räumlichen Prozess dar, bei dem das Ergebnis an einem Ort direkt die Ergebnisse an benachbarten Orten beeinflusst. Zum Beispiel könnten Kriminalitätsraten in einer Nachbarschaft die Kriminalitätsraten in benachbarten Nachbarschaften durch Spillover-Effekte beeinflussen.
Das räumliche Lag-Modell hat die Form:
y = ρWy + Xβ + ε
wobei ρ (rho) der räumliche autoregressive Parameter, W die räumliche Gewichtungsmatrix, X die unabhängigen Variablen und ε der Fehlerterm ist.
Räumliche Fehlermodelle verstehen
Das räumliche Fehlermodell behandelt die räumliche Autokorrelation als ein Ärgernis, das behandelt werden muss, was bedeutet, dass die beobachtete räumliche Abhängigkeit keinen wirklich räumlichen Prozess widerspiegelt, sondern lediglich die geografische Clusterung der Quellen des Verhaltens von Interesse, wie z. B. Bürger in angrenzenden Nachbarschaften, die denselben Kandidaten bevorzugen, nicht weil sie mit ihren Nachbarn sprechen, sondern weil Bürger mit ähnlichen Einkommen dazu neigen, sich geografisch zu sammeln.
Wenn attributive Quellen nicht durch Einbeziehung als erklärende Variablen berücksichtigt werden können, weist das Modell eine räumliche Abhängigkeit in den Fehlertermen auf, die über einen räumlich verzögerten Fehlerterm modelliert werden können.
Das räumliche Fehlermodell hat die Form:
y = Xβ + u, wobei u = λWu + ε
wobei λ (Lambda) der räumliche autoregressive Parameter für den Fehlerterm ist.
Verwendung von Lagrange Multiplikator Tests für die Modellauswahl
Die Lagrange Multiplikator-Tests bieten Werkzeuge, um eine Entscheidung darüber zu treffen, welches dieser beiden Modelle am besten geeignet ist.
# 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")
Die Ausgabe wird mehrere Tests umfassen:
- LMlag: Tests auf räumliche Lag-Abhängigkeit
- LMerr: Tests auf räumliche Fehlerabhängigkeit
- RLMlag: Robuster LM-Test auf Verzögerung (Erwägung des Fehlers)
- RLMerr: Robuster LM-Test auf Fehler (Berücksichtigung von Verzögerungen)
Wenn sowohl LMlag als auch LMerr signifikant sind, prüfen Sie die robusten Versionen. Wählen Sie das räumliche Verzögerungsmodell, wenn RLMlag signifikant ist und RLMerr nicht, und wählen Sie das räumliche Fehlermodell, wenn RLMerr signifikant ist und RLMlag nicht.
Einbau von Räumlichen Lag-Modellen
Sobald Sie festgestellt haben, dass ein räumliches Lag-Modell für Ihre Daten geeignet ist, können Sie es mit der Funktion FLT:33 aus dem spatialreg-Paket anpassen. Die Schätzung der maximalen Wahrscheinlichkeit des räumlichen Lag-Modells wird mit der lagsarlm()-Funktion durchgeführt, wobei die erforderlichen Argumente eine Regressionsformel, ein Datensatz und ein listw-Objekt mit räumlichen Gewichten sind.
Grundlegende räumliche Lag Modell Syntax
Die Syntax für die Anpassung eines räumlichen Verzögerungsmodells ähnelt der Standardregression in R:
library(spatialreg) spatial_lag_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data, listw = weights) summary(spatial_lag_model)
Interpretation des Räumlichen Lag-Modells
Die Zusammenfassung wird mehrere wichtige Komponenten enthalten:
- Rho (ρ): Die räumliche Verzögerung, eine Variable, die die abhängige Variable in den Trakten misst, die als Umgebung jedes Trakts in der Matrix der räumlichen Gewichte definiert sind, wird als zusätzliche erklärende Variable verwendet, um die räumliche Clustering angemessen zu berücksichtigen
- Koeffiziente Schätzungen: Die Auswirkungen Ihrer unabhängigen Variablen
- Significance Tests: Einschließlich Wahrscheinlichkeits-Ratio-Tests, z-Tests und Wald-Tests
- Modell-Fit-Statistiken: AIC, Log-Likelihood und andere Maßnahmen
Wenn der geschätzte Koeffizient für rho sowohl positiv als auch statistisch signifikant ist, wenn die abhängige Variable in den umliegenden Nachbarschaften im Durchschnitt zunimmt, steigt auch die abhängige Variable in jedem Trakt, selbst wenn sie für andere erklärende Variablen angepasst wird.
Auswirkungen von Computern
Die Interpretation der substantiellen Effekte jedes Prädiktors in einem räumlichen Lag-Modell ist viel komplexer als in einem nichträumlichen Modell, da der räumliche Multiplikator die unabhängigen Variablen mit den abhängigen verknüpft, und der Effekt einer Änderung einer unabhängigen Variablen ist nicht über alle Beobachtungen hinweg konstant.
Um Koeffizienten in einem räumlichen Verzögerungsmodell richtig zu interpretieren, müssen Sie die Wirkungsmessungen mit der Funktion berechnen:
impacts_lag <- impacts(spatial_lag_model, listw = weights, R = 999) summary(impacts_lag, zstats = TRUE)
Dies wird drei Arten von Auswirkungen bieten:
- Direkte Auswirkungen: Die Auswirkung einer Änderung einer unabhängigen Variablen an einem Ort auf die abhängige Variable an diesem Ort
- Indirekte Auswirkungen: Der Effekt einer Änderung einer unabhängigen Variablen an einem Ort auf die abhängige Variable an anderen Orten (Spillover-Effekte)
- Gesamtwirkungen: Die Summe der direkten und indirekten Auswirkungen
Diese Wirkungsmessungen geben ein vollständiges Bild davon, wie sich Änderungen in Ihren unabhängigen Variablen auf die abhängige Variable sowohl lokal als auch durch räumliche Spillovers auswirken.
Anpassung räumlicher Fehlermodelle
Wenn Ihre Diagnosetests zeigen, dass ein räumliches Fehlermodell besser geeignet ist, können Sie es mit der Funktion aus dem spatialreg-Paket anpassen.
spatial_error_model <- errorsarlm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data, listw = weights) summary(spatial_error_model)
Interpretation des Spatial Error Model Output
Anstelle von Rho ist der Lag-Fehlerparameter Lambda, was eine Verzögerung des Fehlers ist, und wenn er positiv und signifikant über alle Tests hinweg ist, zeigt dies die Notwendigkeit an, die räumliche Autokorrelation im Fehler zu kontrollieren.
Die wichtigsten Komponenten des Outputs sind:
- Lambda (λ): Der räumliche autoregressive Parameter für den Fehlerterm
- Koeffiziente Schätzungen: Diese können im Gegensatz zum räumlichen Lag-Modell direkt interpretiert werden.
- Unterscheidungstests: Für beide Koeffizienten und Lambda
- Modellanpassungsstatistik: AIC, Log-Likelihood
Im Gegensatz zum räumlichen Verzögerungsmodell müssen wir keine Impacts() ausführen, und somit können die Koeffizienten direkt mit den OLS-Koeffizienten verglichen werden. Dies macht die Interpretation einfacher, da die Koeffizienten die direkte Wirkung jeder unabhängigen Variablen auf die abhängige Variable darstellen, wobei die räumliche Fehlerstruktur die räumliche Autokorrelation in den Residuen berücksichtigt.
Überprüfung auf verbleibende räumliche Autokorrelation
Nachdem Sie entweder ein räumliches Verzögerungs- oder ein räumliches Fehlermodell angepasst haben, ist es wichtig zu überprüfen, ob das Modell die räumliche Autokorrelation angemessen berücksichtigt hat.
# Extract residuals residuals_spatial <- residuals(spatial_error_model) # Test for remaining spatial autocorrelation moran.test(residuals_spatial, weights)
Wenn der Moran's I-Test an den Residuen nicht mehr signifikant ist, hat Ihr räumliches Modell die räumliche Autokorrelation erfolgreich berücksichtigt.
Modelldiagnose und Validierung
Eine gründliche Modelldiagnostik ist unerlässlich, um sicherzustellen, dass Ihr räumliches Regressionsmodell gültig und zuverlässig ist.
Untersuchung von Restmengen
Auch nach Berücksichtigung der räumlichen Autokorrelation sollten Sie Residuen auf andere mögliche Probleme untersuchen:
# 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")
Suchen Sie nach Mustern in den Residuen, die auf Heteroskedastizität, Nichtlinearität oder einflussreiche Ausreißer hinweisen könnten.
Zuordnung von Rückständen
Die Erstellung einer Karte von Residuen kann räumliche Muster aufdecken, die aus statistischen Tests allein möglicherweise nicht ersichtlich sind:
# 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)
Im Idealfall sollten Residuen kein klares räumliches Muster aufweisen, und Cluster mit hohen oder niedrigen Residuen lassen darauf schließen, dass das Modell in bestimmten Bereichen systematisch über- oder unterprädiziert sein kann.
Vergleich der Modellleistung
Vergleichen Sie Ihr räumliches Regressionsmodell mit dem Basis-OLS-Modell und möglicherweise mit alternativen räumlichen Spezifikationen:
# 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)
Das Modell mit der niedrigsten AIC und der höchsten Log-Likelihood bietet im Allgemeinen die beste Passform zu den Daten, obwohl Sie auch theoretische Rechtfertigung und Interpretationsfähigkeit berücksichtigen sollten.
Überprüfung auf einflussreiche Beobachtungen
Identifizieren Sie Beobachtungen, die einen unverhältnismäßigen Einfluss auf Ihre Modellergebnisse haben:
# 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)
Untersuchen Sie einflussreiche Beobachtungen, um festzustellen, ob sie Datenfehler, echte Ausreißer oder wichtige Fälle darstellen, die Ihr Modell berücksichtigen sollte.
Fortgeschrittene räumliche Regressionstechniken
Neben grundlegenden räumlichen Verzögerungs- und räumlichen Fehlermodellen können mehrere fortschrittliche Techniken komplexere räumliche Prozesse und Datenstrukturen adressieren.
Räumliches Durbin-Modell
Das Spatial Durbin Model (SDM) umfasst sowohl eine räumlich verzögerte abhängige Variable als auch räumlich verzögerte unabhängige Variablen, was eine flexiblere Modellierung räumlicher Spillover ermöglicht:
spatial_durbin_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data, listw = weights, type = "mixed") summary(spatial_durbin_model)
Mit diesem Modell können Sie testen, ob sich Spillover-Effekte zwischen unabhängigen Variablen unterscheiden, und können Einblicke in die Faktoren liefern, die räumliche Externalitäten erzeugen.
Geografisch gewichtete Regression
Geologisch gewichtete Regression (GWR) ermöglicht es, die Regressionskoeffizienten im Raum zu variieren, was die räumliche Heterogenität in Beziehungen angeht. Obwohl es sich nicht ausschließlich um ein räumliches Regressionsmodell im gleichen Sinne wie räumliche Verzögerungs- oder Fehlermodelle handelt, ist GWR wertvoll, wenn Sie vermuten, dass sich die Beziehungen zwischen Variablen in Ihrem Untersuchungsgebiet unterscheiden:
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)
Räumliche Panelmodelle
Wenn räumliche Daten über mehrere Zeiträume hinweg beobachtet werden, kombinieren räumliche Panel-Modelle räumliche und zeitliche Dimensionen. Das splm-Paket bietet Funktionen für die Anpassung an verschiedene räumliche Panel-Spezifikationen:
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)
Präsentation und Berichterstattung Ergebnisse
Eine klare Darstellung der räumlichen Regressionsergebnisse ist unerlässlich, um Ihre Ergebnisse sowohl technisch als auch nicht technisch zu kommunizieren.
Erstellen von Publication-Quality-Tabellen
Mehrere R-Pakete können Ihnen helfen, professionell aussehende Regressionstabellen zu erstellen.
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)
Für eine modernere Tabellenformatierung sollten Sie das modelsummary-Paket in Betracht ziehen:
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"))
Visualisierung räumlicher Effekte
Karten sind leistungsfähige Werkzeuge, um räumliche Regressionsergebnisse zu kommunizieren.
- Beobachtete Werte der abhängigen Variablen
- Voraussichtliche Werte aus Ihrem Modell
- Restmengen (beobachtet minus vorhergesagt)
- Lokale Auswirkungen (für Modelle zur räumlichen Verzögerung)
# 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)
Räumliche Regressionsergebnisse melden
Beim Aufschreiben räumlicher Regressionsergebnisse sollten Sie Folgendes angeben:
- Beschreibung der verwendeten Matrix der räumlichen Gewichte und Begründung der Wahl
- Ergebnisse von diagnostischen Tests für räumliche Autokorrelation (Moran's I, LM Tests)
- Vergleich von OLS- und räumlichen Regressionsmodellen
- Koeffiziente Schätzungen mit Standardfehlern und Signifikanzniveaus
- Für räumliche Lag-Modelle, direkte, indirekte und Gesamtauswirkungen
- Modellanpassungsstatistiken (AIC, Log-Likelihood, R-Quadrat, falls vorhanden)
- Diskussion der Residualdiagnostik und Modellvalidierung
- Karten oder andere Visualisierungen der wichtigsten Ergebnisse
Häufige Fallstricke und Best Practices
Einer der wichtigsten Aspekte der Modellierung ist die Auswahl der Variablen, und ein falsch spezifiziertes Modell wird niemals etwas Gutes sein, egal wie viel man tut, um die räumliche Autokorrelation zu korrigieren.
Variable Auswahl und Modellspezifikation
Wenn die räumliche Autokorrelation fortbesteht, weil keine Daten verfügbar sind oder weil Sie keine Ahnung haben, nach welcher Variable Sie suchen sollen, können Sie versuchen, ein Regressionsmodell zu formulieren, das die räumliche Autokorrelation steuert.
Größenbetrachtungen
Die Eingabemerkmalsklasse sollte mindestens 30 Merkmale enthalten, da die Ergebnisse mit weniger als 30 Merkmalen nicht zuverlässig sind. Räumliche Regressionsmodelle erfordern eine ausreichende Stichprobengröße, um stabile Schätzungen zu erstellen, insbesondere bei der Schätzung räumlicher autoregressiver Parameter.
Auswahl geeigneter räumlicher Gewichte
Die Wahl der räumlichen Gewichtungsmatrix kann Ihre Ergebnisse erheblich beeinflussen. Begründen Sie Ihre Wahl immer auf der Grundlage der Theorie und der Art Ihrer Daten. Erwägen Sie, mehrere Spezifikationen zu testen und Sensitivitätsanalysen zu erstellen, um zu zeigen, dass Ihre Schlussfolgerungen für verschiedene räumliche Gewichtsdefinitionen robust sind.
Interpretation von Kausalität
Räumliche Regressionsmodelle identifizieren, wie alle Regressionsmodelle, eher Assoziationen als kausale Beziehungen. Seien Sie vorsichtig bei kausalen Behauptungen, insbesondere bei räumlichen Lag-Modellen, bei denen Gleichzeitigkeit die Interpretation erschweren kann. Das Vorhandensein räumlicher Autokorrelation impliziert nicht unbedingt einen räumlichen Prozess - es kann einfach weggelassene Variablen widerspiegeln, die räumlich geclustert sind.
Umgang mit Edge Effects
Globale Messungen können durch Randeffekte beeinflusst werden, bei denen wichtige räumliche Prozesskomponenten außerhalb des Untersuchungsgebiets liegen. Beachten Sie, dass Beobachtungen an den Rändern Ihres Untersuchungsgebiets unvollständige Nachbarmengen haben können, die möglicherweise zu Verzerrungsergebnissen führen. Überlegen Sie, ob Ihre Grenzen für Ihre Forschungsfrage geeignet sind.
Praktisches Beispiel: Vollständiger Workflow
Hier ist ein vollständiger Beispiel-Workflow, der alle in diesem Handbuch beschriebenen Schritte zusammenführt:
# 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)
Zusätzliche Ressourcen und weiteres Lernen
Räumliche Regression ist ein reiches und sich entwickelndes Gebiet. Um Ihr Verständnis zu vertiefen und mit Best Practices auf dem Laufenden zu bleiben, sollten Sie diese Ressourcen erkunden:
Online-Ressourcen
- R-Spatial - Umfassende Ressource für die Geodatenwissenschaft mit R
- Spatial Data Science mit R - Tutorials und Dokumentation für die räumliche Analyse
- Geocomputation mit R - Kostenloses Online-Buch zur räumlichen Datenanalyse
- Raumstatistik für Data Science - Moderne Ansätze zur räumlichen Analyse
- CRAN Task View: Analyse von räumlichen Daten - Umfassende Liste von R-Paketen für die räumliche Analyse
Schlüsselpakete R
Bleiben Sie auf dem Laufenden mit den neuesten Entwicklungen in diesen wichtigen Paketen:
- sf - Einfache Features für R, den modernen Standard für räumliche Vektordaten
- spdep - Räumliche Abhängigkeit: Gewichtungsschemata, Statistiken und Modelle
- spatialreg - Räumliche Regressionsanalyse
- tmap - Thematische Karten in R
- mapview - Interaktive Betrachtung von räumlichen Daten
- spgwr - Geografisch gewichtete Regression
- splm - Datenmodelle für das Geopanel
Empfohlene Lektüre
Für theoretische Grundlagen und fortgeschrittene Techniken, konsultieren Sie diese maßgeblichen Texte:
- Anselin, L. (1988). "Spatial Econometrics: Methods and Models" - Klassischer Text zur räumlichen Ökonometrie
- Bivand, R., Pebesma, E., & Gómez-Rubio, V. (2013). "Angewandte räumliche Datenanalyse mit R" - Umfassender Leitfaden zur räumlichen Analyse in R
- LeSage, J., & Pace, R. K. (2009). "Einführung in die räumliche Ökonometrie" - Moderne Behandlung der räumlichen Regression
- Cressie, N. (1993). "Statistik für räumliche Daten" - Theoretische Grundlagen der räumlichen Statistik
Schlussfolgerung
Die Umsetzung der räumlichen Regression in R beinhaltet einen systematischen Workflow: Vorbereitung und Erforschung räumlicher Daten, Erstellung geeigneter räumlicher Gewichtsmatrizen, Testen auf räumliche Autokorrelation, Auswahl zwischen räumlichen Verzögerungs- und räumlichen Fehlermodellen, Anpassung des gewählten Modells und gründliche Validierung der Ergebnisse durch diagnostische Prüfungen. Die Beherrschung dieser Schritte ermöglicht es den Forschern, räumliche Abhängigkeiten aufzudecken und ihre Analyse geografisch verknüpfter Daten in verschiedenen Bereichen wie Stadtplanung, Epidemiologie, Umweltwissenschaften, Wirtschaft und Sozialwissenschaften zu verbessern.
Der Schlüssel zu einer erfolgreichen räumlichen Regressionsanalyse liegt nicht nur in der technischen Kompetenz mit R, sondern auch in der durchdachten Berücksichtigung der räumlichen Prozesse, die Ihren Daten zugrunde liegen. Immer legen Sie Ihre methodologischen Entscheidungen in der Theorie fest, validieren Sie sorgfältig Ihre Modelle und interpretieren Sie die Ergebnisse im Kontext der räumlichen und substantiellen Phänomene, die Sie studieren. Durch die Einhaltung des umfassenden Workflows, der in diesem Leitfaden beschrieben wird, sind Sie gut gerüstet, um strenge räumliche Regressionsanalysen durchzuführen, die das Verständnis komplexer räumlicher Beziehungen in Ihrem Forschungsgebiet verbessern.
Denken Sie daran, dass die räumliche Regression ein aktiver Bereich der methodischen Entwicklung ist. Bleiben Sie mit der Forschungsgemeinschaft in Kontakt, halten Sie Ihre R-Pakete auf dem neuesten Stand und lernen Sie weiter über neue Techniken und bewährte Verfahren, während sich das Gebiet entwickelt. Die Investition in die Entwicklung dieser Fähigkeiten wird sich in der Qualität und den Auswirkungen Ihrer räumlichen Datenanalyse auszahlen.