urban-geography-and-development
Guia passo a passo para implementar a Regressão Espacial com R
Table of Contents
A regressão espacial é uma técnica estatística poderosa para analisar dados espacialmente correlacionados, permitindo aos pesquisadores compreender como fatores geográficos influenciam vários fenômenos, desde padrões ambientais até o desenvolvimento urbano, desfechos de saúde pública e tendências econômicas, que fornecem uma abordagem detalhada e passo a passo para implementar a regressão espacial utilizando R, uma linguagem popular de programação estatística de código aberto que se tornou a ferramenta padrão para análise de dados espaciais na pesquisa acadêmica e prática profissional.
Compreender a Regressão Espacial e Sua Importância
Os problemas de regressão na geografia envolvem, inerentemente, locais geográficos, e as consequências da utilização de dados locacionais potencialmente incluem dependência espacial (autocorrelação espacial) e heterogeneidade ou tendências espaciais (não estacionalidade). Diferentemente dos modelos tradicionais de regressão que assumem independência entre observações, a regressão espacial explica explicitamente o fato de que as observações próximas umas das outras no espaço tendem a ser mais semelhantes às mais distantes.
Como diz a primeira lei de geografia de Tobler: "Tudo está relacionado com tudo o mais, mas as coisas próximas são mais relacionadas do que coisas distantes".Este princípio fundamental fundamenta todas as análises espaciais e destaca por que técnicas de regressão padrão podem produzir resultados enganosos quando aplicadas a dados espaciais. Observações próximas podem ser pseudo-replicados em vez de casos independentes, violando uma suposição central de regressão de mínimos quadrados ordinários (OLS).
Muitas questões de pesquisa em ciências sociais são espacialmente dependentes, tais como resultados de votação, preços de moradia, mercados de trabalho, comportamento de protesto ou decisões de migração.Quando a autocorrelação espacial está presente em resíduos de regressão, ela indica erro de especificação do modelo e significa que os valores de p e estimativas de coeficiente não podem ser confiáveis.
Pacotes R Essential para Regressão Espacial
Antes de iniciar sua análise de regressão espacial, você precisa instalar e carregar vários pacotes R chave. O ecossistema de análise espacial em R evoluiu significativamente, com pacotes modernos fornecendo funcionalidade abrangente para operações de dados espaciais e modelagem.
Pacotes Principais para Análise Espacial
Pacotes importantes para operações espaciais fundamentais incluem sf para o manuseio de dados espaciais, mapview e tmap para visualização e spdep para pesos e relações espaciais. O pacote sf tornou-se o padrão moderno para o manuseio de dados vetoriais espaciais em R, substituindo o mais antigo sp[] com uma abordagem mais intuitiva e eficiente.
Para modelar regressão espacial especificamente, você precisará do pacote ]spatialreg, que fornece funções para ajustar modelos de defasagem espacial e erro espacial. O pacote spdep[] é essencial para diagnosticar dependência espacial e criar matrizes de pesos espaciais. Instale esses pacotes usando o seguinte código:
install.packages(c("sf", "spdep", "spatialreg", "tmap", "mapview"))
Uma vez instalados, carregue os pacotes no início da sua sessão R:
library(sf) library(spdep) library(spatialreg) library(tmap) library(mapview)
Preparando e Carregando seus Dados Espaciais
A preparação adequada dos dados é a base da análise de regressão espacial bem sucedida. O seu conjunto de dados deve incluir tanto dados de atributos (as variáveis que deseja analisar) como informações espaciais (coordenações ou geometrias que definem as localizações).
Requisitos em formato de dados
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")
Para os arquivos GeoJSON, a sintaxe é idêntica:
spatial_data <- st_read("your_data.geojson")
Limpeza e Validação de Dados
Antes de prosseguir com a análise, limpe completamente o seu conjunto de dados para garantir a qualidade dos dados:
- Verificar e manipular valores em falta nas geometrias espaciais e nos dados dos atributos
- Remover ou corrigir geometrias inválidas usando e
- Certifique-se de que todas as observações tenham dados completos para as variáveis que você planeja incluir em seu modelo
- Verificar se não existem recursos espaciais duplicados
- Verifique se existem outliers que possam influenciar indevidamente seus resultados de regressão
Você pode verificar os valores em falta com:
summary(spatial_data) sum(is.na(spatial_data$your_variable))
Sistemas de referência de coordenadas
Um dos aspectos mais críticos da preparação de dados espaciais é garantir que todos os conjuntos de dados usem o mesmo sistema de referência de coordenadas (CRS). O CRS mal ajustado pode levar a relações espaciais incorretas e resultados de análise inválidos. Verifique o CRS dos seus dados usando:
st_crs(spatial_data)
Se você precisa transformar seus dados em um CRS diferente, use a função . Por exemplo, para transformar em WGS84 (EPSG:4326):
spatial_data <- st_transform(spatial_data, crs = 4326)
Para análise envolvendo cálculos de distância, é geralmente melhor usar um sistema de coordenadas projetado (medido em metros ou pés) em vez de um sistema de coordenadas geográficas (medido em graus). Escolha uma projeção apropriada para sua área de estudo.
Análise e Visualização de Dados Espaciais Exploratórios
A exploração visual é um primeiro passo essencial na análise de regressão espacial. Ajuda a identificar padrões, detectar potenciais outliers, compreender a distribuição espacial de suas variáveis e formular hipóteses sobre relações espaciais.
Criar Mapas Básicos
A maneira mais simples de visualizar seus dados espaciais é usando a função de gráfico base:
plot(spatial_data["variable_name"])
Para visualizações mais interativas e informativas, use os pacotes tmap ou mapview[. O pacote tmap fornece uma gramática de abordagem gráfica semelhante ao ggplot2:
tm_shape(spatial_data) +
tm_polygons("variable_name",
style = "quantile",
palette = "Blues",
title = "Your Variable") +
tm_layout(legend.outside = TRUE)
O pacote mapview cria mapas interativos que permitem ampliar, fazer uma pan e clicar em recursos:
mapview(spatial_data, zcol = "variable_name")
Examinando distribuições variáveis
Antes de ajustar modelos de regressão, examine as distribuições estatísticas de suas variáveis. Crie histogramas, boxplots e estatísticas de resumo:
hist(spatial_data$dependent_variable, main = "Distribution of Dependent Variable", xlab = "Value") summary(spatial_data$dependent_variable)
Procure por assimetria, outliers, e se as transformações podem ser necessárias. Variáveis altamente distorcidas podem se beneficiar de transformações de log ou raiz quadrada para melhor atender aos pressupostos de regressão.
Análise de Correlação
Examine correlações entre suas variáveis independentes para verificar a multicolinearidade, que pode causar problemas na análise de regressão:
cor(st_drop_geometry(spatial_data[, c("var1", "var2", "var3")]))
A função remove a coluna de geometria espacial, deixando apenas os dados dos atributos para análise de correlação.
Compreensão e testes para autocorrelação espacial
Antes de decidir se você precisa de regressão espacial, você deve testar se a autocorrelação espacial está presente em seus dados ou nos resíduos de um modelo de regressão padrão OLS. Autocorrelação espacial é caracterizada por uma correlação em um sinal entre locais próximos no espaço e é mais complexa do que a autocorrelação unidimensional porque é multidimensional e multidirecional.
I Estatísticas de Moran Global
O I de Moran global é uma medida do agrupamento global de dados espaciais. O I de Moran quantifica o quão semelhante cada região é com seus vizinhos e médias de todas essas avaliações. A estatística varia de aproximadamente -1 a +1, onde:
- Valores significativamente acima do valor esperado indicam autocorrelação espacial positiva ou agrupamento, ocorrendo quando regiões vizinhas tendem a ter valores semelhantes
- Valores significativamente abaixo do valor esperado indicam autocorrelação espacial negativa ou dispersão, ocorrendo quando regiões próximas umas das outras tendem a ter valores diferentes
- Valores em torno do valor esperado indicam aleatoriedade, ou seja, ausência de padrão espacial
Teste de Autocorrelação Espacial em Variáveis
Você pode testar a autocorrelação espacial em uma variável diretamente usando a função do pacote spdep. No entanto, você primeiro precisa criar uma matriz de pesos espaciais (discussado em detalhes na próxima seção):
# Create neighbors and weights (simplified example) neighbors <- poly2nb(spatial_data) weights <- nb2listw(neighbors) # Test for spatial autocorrelation moran.test(spatial_data$variable_name, weights)
Para a estatística Global Moran's I, a hipótese nula afirma que o atributo analisado é distribuído aleatoriamente entre as características da sua área de estudo. Quando o valor de p retornado por esta ferramenta é estatisticamente significativo, você pode rejeitar a hipótese nula.
Teste de Autocorrelação Espacial em Residuais de Regressão
É importante avaliar os resíduos para autocorrelação espacial, pois estes supostamente são independentes, não correlacionados. Se os resíduos são espacialmente autocorrelacionados, isso indica que o modelo está equivocado. Primeiro, caber em um modelo padrão de regressão OLS:
ols_model <- lm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data)
Em seguida, testar os resíduos para autocorrelação espacial utilizando :
lm.morantest(ols_model, weights)
Se este teste mostra autocorrelação espacial significativa nos resíduos, você precisa usar métodos de regressão espacial em vez de regressão padrão OLS.
Simulação de Monte Carlo para Teste de Significado
A simulação de Monte Carlo é o método preferido para testar a significância. A forma como funciona é que os valores são atribuídos aleatoriamente aos polígonos e o I de Moran é calculado, repetido várias vezes para estabelecer uma distribuição dos valores esperados, e o valor observado é comparado com a distribuição simulada.
moran_mc <- moran.mc(spatial_data$variable_name, weights, nsim = 999) moran_mc
A abordagem Monte Carlo é particularmente robusta porque não se baseia em pressupostos distribucionais e fornece um valor de p mais confiável, especialmente para tamanhos menores de amostra.
Indicadores locais da Associação Espacial (LISA)
Indicadores Locais da Associação Espacial (LISA) são projetados para fornecer uma indicação da extensão de agrupamento espacial significativo de valores semelhantes em torno de cada observação. Enquanto o I de Moran global lhe dá uma estatística para toda a área de estudo, a análise da LISA identifica locais específicos onde ocorrem agrupamentos ou outliers espaciais.
Você pode calcular o Moran local usando:
local_moran <- localmoran_perm(spatial_data$variable_name, weights, nsim = 9999) head(local_moran)
O LISA pode ajudar a identificar HH (valores elevados rodeados por valores elevados), LL (valores baixos rodeados por valores baixos), HL (valores elevados rodeados por valores baixos) e LH (valores baixos rodeados por valores elevados). Esta informação é valiosa para compreender os padrões espaciais locais e identificar hotspots ou pontos frios nos seus dados.
Criando matrizes de pesos espaciais
As matrizes de pesos espaciais são fundamentais para a análise de regressão espacial, que definem as relações espaciais entre as observações, respondendo essencialmente à pergunta: "Quem são os vizinhos de cada observação?" A escolha de pesos espaciais pode afetar significativamente seus resultados de análise, portanto é importante escolher um método adequado para sua pergunta de pesquisa e estrutura de dados.
Pesos Baseados em Contiguidade
Pesos baseados em contingência definem vizinhos como unidades espaciais que compartilham fronteiras, sendo essa abordagem mais utilizada para dados de polígono, como setores censitários, municípios ou países.
- Contiguidade Rainha: Os vizinhos compartilham qualquer ponto limite, incluindo cantos (como a jogada da rainha no xadrez)
- Rook contiguity: Os vizinhos devem compartilhar uma borda de limite, não apenas um canto (como a jogada da torre no xadrez)
Criar vizinhos baseados em contiguidade usando a função :
# 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)
O resumo mostrará o número de regiões, a distribuição de conexões vizinhas e identificará quaisquer regiões sem vizinhos (ilhas), que necessitem de um tratamento especial.
Pesos baseados em distância
Os pesos baseados em distância definem os vizinhos com base na proximidade dentro de um limite de distância especificado. Esta abordagem é útil quando você deseja capturar relações espaciais além da adjacência imediata ou quando trabalha com dados de pontos.
# 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
Ao usar pesos baseados em distância, certifique-se de que seus dados estejam em um sistema de coordenadas projetado, para que as distâncias sejam medidas em unidades significativas (metros ou pés) ao invés de graus.
Convertendo Vizinhos em Pesos
Uma vez que você tenha definido a estrutura do vizinho, converta-a para uma lista de pesos usando . Esta função permite que você especifique como os pesos devem ser padronizados:
# 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")
Pesos padronizados por linhas (estilo = "W") são mais comumente usados porque eles garantem que os pesos para cada soma de observação a 1, tornando a interpretação mais simples. Pesos binários (estilo = "B") simplesmente indicam se as observações são vizinhas (1) ou não (0).
Manipulação de Ilhas e Observações Desligadas
Algumas observações podem não ter vizinhos sob sua definição escolhida, criando "ilhas" em sua matriz de pesos espaciais. Isto pode causar problemas na regressão espacial. Você pode identificar ilhas com:
which(card(neighbors_queen) == 0)
Se as ilhas existirem, você tem várias opções: conectá-las ao vizinho mais próximo, usar uma abordagem baseada em distância ou definir o parâmetro para TRUE em suas funções de análise (embora isso deva ser feito com cautela).
Escolhendo entre os modelos de falha espacial e espacial
Uma vez que você confirmou que a autocorrelação espacial está presente, você precisa decidir qual tipo de modelo de regressão espacial é mais apropriado para seus dados. Os dois tipos principais são modelos de defasagem espacial e modelos de erro espacial, e eles representam fundamentalmente diferentes conceituações de processos espaciais.
Compreender os Modelos de Lag Espacial
O modelo defasado espacial incorpora explicitamente a dependência espacial adicionando uma variável y "espacialmente defasada" no lado direito da equação de regressão, essencialmente dizendo que os valores de y nas áreas vizinhas de observação i é um importante preditor de y em cada área i individual.
A difusão espacial ocorre quando unidades espacialmente próximas são influenciadas diretamente pelos vizinhos, e vice-versa, o que representa um processo espacial substantivo, onde o resultado em um local afeta diretamente os resultados em locais vizinhos. Por exemplo, as taxas de criminalidade em um bairro podem influenciar as taxas de criminalidade em bairros adjacentes através de efeitos de spillover.
O modelo de defasagem espacial assume a forma de:
y = ρWy + Xβ + ε
onde ρ (rho) é o parâmetro autorregressivo espacial, W é a matriz de pesos espaciais, X contém as variáveis independentes, e ε é o termo de erro.
Compreender os Modelos de Erro Espacial
O modelo de erro espacial trata a autocorrelação espacial como um incômodo que precisa ser tratado, implicando que a dependência espacial observada não reflete um processo verdadeiramente espacial, mas apenas o agrupamento geográfico das fontes de comportamento de interesse, como cidadãos em bairros adjacentes que favorecem o mesmo candidato, não porque falam com seus vizinhos, mas porque cidadãos com rendas semelhantes tendem a se aglomerar geograficamente.
Se as fontes de atribuição não puderem ser contabilizadas por incluí-las como variáveis explicativas, o modelo irá apresentar dependência espacial nos termos de erro, que pode ser modelado por um termo de erro espacialmente desfasado. O modelo de erro espacial é apropriado quando a autocorrelação espacial resulta de variáveis omitidas que são elas mesmas agrupadas espacialmente.
O modelo de erro espacial assume a forma:
y = Xβ + u, em que u = λWu + ε
onde λ (lambda) é o parâmetro autorregressivo espacial para o termo erro.
Usando testes de multiplicador Lagrange para seleção de modelos
Os testes de Multiplicador Lagrange fornecem ferramentas para ajudar a tomar uma decisão sobre qual destes dois modelos é mais apropriado. Estes testes podem ser realizados usando a função :
# 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")
A saída incluirá vários testes:
- LMlag: Testes para a dependência de defasagem espacial
- LMerr: Testes para a dependência espacial de erros
- RLMlag: Teste LM robusto para defasagem (contando erro)
- RLMerr: Teste LM robusto para erro (contando defasagem)
Se tanto o LMlag quanto o LMerr forem significativos, examine as versões robustas. Escolha o modelo de defasagem espacial se o RLMlag for significativo e o RLMerr não for, e escolha o modelo de erro espacial se o RLMerr for significativo e o RLMlag não for. Se ambos os testes robustos forem significativos, você poderá precisar considerar modelos mais complexos ou examinar cuidadosamente a sua especificação do modelo.
Modelos de Lag espacial de ajuste
Uma vez que você determinou que um modelo de defasagem espacial é apropriado para seus dados, você pode ajustá-lo usando a função do pacote spatiareg. Estimativa de probabilidade máxima do modelo de defasagem espacial é realizada com a função lagsarlm (), sendo os argumentos necessários uma fórmula de regressão, um conjunto de dados e um objeto de pesos espaciais listw.
Sintaxe do modelo básico de lag espacial
A sintaxe para a montagem de um modelo de defasagem espacial é semelhante à regressão padrão em R:
library(spatialreg) spatial_lag_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data, listw = weights) summary(spatial_lag_model)
Interpretando a saída do modelo de lag espacial
O resumo da saída incluirá vários componentes importantes:
- Rho (ρ): A defasagem espacial, variável que mede a variável dependente nos setores definidos como circundando cada setor na matriz de pesos espaciais, utilizada como variável explicativa adicional para levar em conta apropriadamente o agrupamento espacial
- Estimativas de coeficiente: Os efeitos das suas variáveis independentes
- Testes de significância : Incluindo testes de razão de verossimilhança, testes z e testes de Wald
- Modelo de estatísticas de adequação : AIC, probabilidade de log e outras medidas
Se o coeficiente estimado para o rho é positivo e estatisticamente significativo, quando a variável dependente em vizinhanças aumenta, em média, assim como a variável dependente em cada setor, mesmo quando ajustada para outras variáveis explicativas.
Medidas de impacto da computação
A interpretação dos efeitos substantivos de cada preditor em um modelo de defasagem espacial é muito mais complexa do que em um modelo não espacial, devido à presença do multiplicador espacial que liga as variáveis independentes ao dependente, e o efeito de uma mudança em uma variável independente não é constante em todas as observações.
Para interpretar corretamente os coeficientes em um modelo de defasagem espacial, você precisa calcular medidas de impacto usando a função :
impacts_lag <- impacts(spatial_lag_model, listw = weights, R = 999) summary(impacts_lag, zstats = TRUE)
Isto proporcionará três tipos de impactos:
- Impactos diretos: O efeito de uma mudança de uma variável independente em um local sobre a variável dependente nesse mesmo local
- Impactos indiretos: O efeito de uma mudança numa variável independente num local sobre a variável dependente em outros locais (efeitos de spillover)
- Impactos totais: A soma dos impactos diretos e indiretos
Essas medidas de impacto fornecem uma imagem completa de como as mudanças em suas variáveis independentes afetam a variável dependente tanto localmente quanto através de spillovers espaciais.
Modelos de Erro Espacial Ajustando
Quando os seus testes de diagnóstico indicam que um modelo de erro espacial é mais apropriado, você pode ajustá- lo usando a função do pacote spatiareg. A sintaxe é muito semelhante ao modelo de defasagem espacial:
spatial_error_model <- errorsarlm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data, listw = weights) summary(spatial_error_model)
Interpretando o Saída do Modelo de Erro Espacial
Em vez de Rho, o parâmetro de erro de lag é Lambda, que é um lag no erro, e se for positivo e significativo em todos os testes, isso indica a necessidade de controlar para autocorrelação espacial no erro.
Os principais componentes da saída incluem:
- Lambda (λ): O parâmetro autorregressivo espacial para o termo de erro
- Estimativas de coeficientes: Estas podem ser interpretadas directamente, ao contrário do modelo de defasagem espacial
- Ensaios de sinalização : Para os coeficientes e lambda
- Modelo de estatísticas de ajuste : AIC, log-likelihood
Ao contrário do modelo de defasagem espacial, não precisamos executar impactos(), e assim os coeficientes podem ser comparados diretamente com os coeficientes OLS, o que torna a interpretação mais simples, pois os coeficientes representam o efeito direto de cada variável independente sobre a variável dependente, sendo a estrutura de erro espacial responsável pela autocorrelação espacial nos resíduos.
Verificando a Correlação Automática do Espaço restante
Depois de ajustar um defasamento espacial ou um modelo de erro espacial, é importante verificar que o modelo tem abordado adequadamente a autocorrelação espacial. Você pode testar os resíduos do seu modelo espacial:
# Extract residuals residuals_spatial <- residuals(spatial_error_model) # Test for remaining spatial autocorrelation moran.test(residuals_spatial, weights)
Se o teste I de Moran nos resíduos não for mais significativo, seu modelo espacial tem sido responsável com sucesso pela autocorrelação espacial. Se a autocorrelação significativa permanecer, você pode precisar reconsiderar a especificação do seu modelo, adicionar variáveis adicionais ou explorar modelos espaciais mais complexos.
Modelo de diagnóstico e validação
Diagnósticos de modelo completos são essenciais para garantir que seu modelo de regressão espacial é válido e confiável. Modelos precisam ser diagnosticados antes de reportá-los, e isso envolve examinar múltiplos aspectos do desempenho do modelo.
Examinando os Resíduos
Mesmo após a contabilização da autocorrelação espacial, você deve examinar resíduos para outros problemas potenciais:
# 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")
Procure padrões nos resíduos que possam indicar heteroscedasticidade, não linearidade ou ou outliers influentes.
Mapeamento de Resíduos
A criação de um mapa de resíduos pode revelar padrões espaciais que podem não ser aparentes apenas a partir de testes estatísticos:
# 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)
Idealmente, os resíduos não devem apresentar padrão espacial claro.Aglomerados de resíduos altos ou baixos sugerem que o modelo pode estar sistematicamente acima ou abaixo da previsão em determinadas áreas.
Comparando o desempenho do modelo
Compare seu modelo de regressão espacial com o modelo OLS de base e potencialmente com especificações espaciais alternativas:
# 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)
O modelo com a menor AIC e maior log-likelihood geralmente fornece o melhor ajuste para os dados, embora você também deve considerar justificação teórica e interpretabilidade.
Verificação das Observações Influenciais
Identificar observações que tenham uma influência desproporcional nos resultados do seu modelo:
# 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)
Investigue observações influentes para determinar se elas representam erros de dados, verdadeiros outliers, ou casos importantes que seu modelo deve acomodar.
Técnicas avançadas de regressão espacial
Além de modelos de defasagem espacial básica e de erros espaciais, várias técnicas avançadas podem abordar processos espaciais mais complexos e estruturas de dados.
Modelo de Durbin espacial
O Modelo de Durbin Espacial (SDM) inclui tanto uma variável dependente defasada espacialmente quanto variáveis independentes defasadas espacialmente, permitindo uma modelagem mais flexível dos spillovers espaciais:
spatial_durbin_model <- lagsarlm(dependent_var ~ independent_var1 + independent_var2, data = spatial_data, listw = weights, type = "mixed") summary(spatial_durbin_model)
Este modelo permite testar se os efeitos de spillover diferem entre variáveis independentes e pode fornecer insights sobre quais fatores geram externalidades espaciais.
Regressão geograficamente ponderada
Regressão Geograficamente Ponderada (GWR) permite que os coeficientes de regressão varie em todo o espaço, abordando a heterogeneidade espacial nas relações. Embora não seja estritamente um modelo de regressão espacial no mesmo sentido que os modelos de defasagem espacial ou de erro, GWR é valioso quando você suspeita que as relações entre variáveis diferem em toda a sua área de estudo:
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)
Modelos de Painel Espacial
Quando você tem dados espaciais observados ao longo de vários períodos de tempo, modelos de painéis espaciais combinam dimensões espaciais e temporais. O pacote splm fornece funções para ajustar várias especificações de painéis espaciais:
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)
Apresentar e reportar resultados
A apresentação clara dos resultados de regressão espacial é essencial para comunicar as suas descobertas de forma eficaz a audiências técnicas e não técnicas.
Criar Tabelas de Qualidade de Publicação
Vários pacotes R podem ajudá-lo a criar tabelas de regressão com aparência profissional. O pacote stargazer é particularmente útil para comparar vários modelos:
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)
Para formatação mais moderna da tabela, considere o pacote 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"))
Visualizando efeitos espaciais
Os mapas são ferramentas poderosas para comunicar resultados de regressão espacial. Crie mapas mostrando:
- Valores observados da variável dependente
- Valores previstos do seu modelo
- Resíduos (observados menos previstos)
- Impactos locais (para modelos de defasagem espacial)
# 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)
Relatar os Resultados da Regressão Espacial
Ao escrever os resultados de regressão espacial, certifique-se de incluir:
- Descrição da matriz de pesos espaciais utilizada e justificação da escolha
- Resultados dos testes de diagnóstico para autocorrelação espacial (testes I de Moran, ML)
- Comparação da OLS e modelos de regressão espacial
- Estimativas de coeficiente com erros-padrão e níveis de significância
- Para modelos de defasagem espacial, impactos diretos, indiretos e totais
- Modelo de estatísticas de ajuste (AIC, log-likelihood, R-quadrado se disponível)
- Discussão dos diagnósticos residuais e validação do modelo
- Mapas ou outras visualizações de resultados chave
Pistas e melhores práticas comuns
Um dos aspectos mais importantes da modelagem é a seleção de variáveis, e um modelo erro especificado nunca será bom, não importa o quanto você faça para corrigir a autocorrelação espacial. Aqui estão considerações-chave para análise de regressão espacial bem sucedida:
Seleção Variável e Especificação do Modelo
Autocorrelação espacial pode surgir de variáveis omitidas. Antes de recorrer à regressão espacial, certifique- se de que incluiu todas as variáveis teoricamente relevantes no seu modelo. Se a autocorrelação espacial persistir porque não existem dados disponíveis ou porque não tem nenhuma pista sobre a variável a procurar, pode tentar formular um modelo de regressão que controla a autocorrelação espacial.
Considerações sobre o Tamanho da Amostra
A classe de recursos de entrada deve conter pelo menos 30 recursos, pois os resultados não serão confiáveis com menos de 30 recursos. Modelos de regressão espacial exigem tamanhos de amostra adequados para produzir estimativas estáveis, particularmente quando se estima parâmetros autorregressivos espaciais.
Escolher Pesos Espaciais Apropriados
A escolha da matriz de pesos espaciais pode afetar significativamente seus resultados. Sempre justifique sua escolha com base na teoria e na natureza de seus dados. Considere testar múltiplas especificações e reportar análises de sensibilidade para demonstrar que suas conclusões são robustas para diferentes definições de peso espacial.
Interpretando Causalidade
Modelos de regressão espacial, como todos os modelos de regressão, identificam associações em vez de relações causais. Seja cauteloso com reivindicações causais, particularmente com modelos de defasagem espacial onde a simultaneidade pode complicar a interpretação. A presença de autocorrelação espacial não implica necessariamente um processo espacial – pode simplesmente refletir variáveis omitidas que são espacialmente agrupadas.
Lidar com os Efeitos de Borda
As medidas globais podem ser enviesadas pelos efeitos de borda onde importantes componentes do processo espacial não são abrangidos pela área de estudo. Esteja ciente de que as observações nas bordas da sua área de estudo podem ter conjuntos vizinhos incompletos, resultados potencialmente tendenciosos. Considere se os limites da área de estudo são apropriados para sua pergunta de pesquisa.
Exemplo prático: Complete Workflow
Aqui está um completo exemplo de fluxo de trabalho reunindo todos os passos discutidos neste guia:
# 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)
Recursos adicionais e aprendizagem adicional
A regressão espacial é um campo rico e em evolução. Para aprofundar sua compreensão e manter-se atual com as melhores práticas, considere explorar esses recursos:
Recursos Online
- R-Spatial - Recurso abrangente para a ciência dos dados geográficos com R
- Ciência de dados espaciais com R - Tutoriais e documentação para análise espacial
- Geocomputação com R - Livro online gratuito que abrange a análise dos dados geográficos
- Estatísticas espaciais para a ciência dos dados - Abordagens modernas para a análise espacial
- CRAN Task View: Análise de Dados Espaciais - Lista abrangente de pacotes R para análise espacial
Pacotes de chave R
Mantenha-se atualizado com os últimos desenvolvimentos nestes pacotes essenciais:
- sf - Características simples para R, o padrão moderno para dados de vetores espaciais
- ]spdep - Dependência espacial: esquemas de ponderação, estatísticas e modelos
- ]spatialreg - Análise de regressão espacial
- tmap - Mapas temáticos em R
- mapview - Visualização interactiva de dados geográficos
- spgwr - Regressão ponderada geográfica
- splm - Modelos de dados em painel geográfico
Leitura Recomendada
Para fundamentos teóricos e técnicas avançadas, consulte estes textos autoritários:
- Anselin, L. (1988). "Econometria espacial: Métodos e Modelos" - Texto clássico sobre econometria espacial
- Bivand, R., Pebesma, E., & Gómez-Rubio, V. (2013). "Análise de Dados Espaciais Aplicados com R" - Guia abrangente para análise espacial em R
- LeSage, J., & Pace, R. K. (2009). "Introdução à Econometria Espacial" - Tratamento moderno da regressão espacial
- Cressie, N. (1993). "Estatísticas para os Dados Espaciais" - Fundamentos teóricos das estatísticas espaciais
Conclusão
A implementação da regressão espacial em R envolve um fluxo de trabalho sistemático: elaboração e exploração de dados espaciais, criação de matrizes de pesos espaciais adequadas, testes de autocorrelação espacial, seleção entre modelos de defasagem espacial e erro espacial, adequação do modelo escolhido e validação exaustiva dos resultados através de verificações diagnósticas. A dominância dessas etapas permite aos pesquisadores descobrir dependências espaciais e melhorar sua análise de dados geograficamente ligados em diversas áreas, incluindo planejamento urbano, epidemiologia, ciência ambiental, economia e ciências sociais.
A chave para uma análise de regressão espacial bem sucedida não é apenas a proficiência técnica com R, mas também a consideração ponderada dos processos espaciais subjacentes aos seus dados. Sempre baseie as suas escolhas metodológicas em teoria, valide cuidadosamente os seus modelos e interprete resultados no contexto dos fenômenos espaciais e substantivos que está a estudar. Ao seguir o fluxo de trabalho abrangente descrito neste guia, estará bem equipado para realizar análises de regressão espacial rigorosas que avançam no entendimento das relações espaciais complexas no seu campo de pesquisa.
Lembre-se que a regressão espacial é uma área ativa de desenvolvimento metodológico. Mantenha-se engajado com a comunidade de pesquisa, mantenha seus pacotes R atualizados e continue aprendendo sobre novas técnicas e melhores práticas à medida que o campo evolui. O investimento no desenvolvimento dessas habilidades pagará dividendos na qualidade e impacto de sua análise de dados espaciais.