Spatial Econometrics — Math
Spatial Weight Matrix, SAR, SEM, SDM
1 Kenapa Ini Penting?
Spatial econometrics muncul ketika observasi tidak independent — tetangga mempengaruhi tetangga. Ini umum dalam:
- Ekonomi regional: pertumbuhan satu kabupaten mempengaruhi kabupaten tetangga
- Kebijakan publik: program di satu wilayah spillover ke wilayah sekitar
- Properti/real estate: harga rumah bergantung pada harga di sekitarnya
- Politik: voting behavior berkorelasi antar daerah yang berdekatan
SAR, SEM, dan SDM adalah model standar spatial econometrics. Memahami math-nya krusial karena: - Spatial multiplier berbeda dari OLS coefficient - Direct dan indirect effects harus dihitung terpisah - OLS biased untuk SAR — perlu MLE atau IV
2 Spatial Weight Matrix \(W\)
\(W\) adalah matrix \(n \times n\) yang mengkodifikasi hubungan spasial antar unit:
\[w_{ij} = \begin{cases} \text{positive} & \text{jika } i \text{ dan } j \text{ "bertetangga"} \\ 0 & \text{otherwise} \end{cases}, \quad w_{ii} = 0\]
Pilihan spesifikasi \(W\) sangat penting — hasil bisa sensitif terhadap pilihan ini.
2.1 Common Specifications
Contiguity-based: - Queen contiguity: \(w_{ij} = 1\) jika \(i\) dan \(j\) berbagi batas atau titik (like queen in chess) - Rook contiguity: \(w_{ij} = 1\) jika \(i\) dan \(j\) berbagi batas (not corner) (like rook)
Distance-based: - \(k\)-nearest neighbors: \(w_{ij} = 1\) jika \(j\) adalah salah satu dari \(k\) tetangga terdekat \(i\) - Distance cutoff: \(w_{ij} = 1\) jika \(d_{ij} \leq d^*\), else 0 - Inverse distance: \(w_{ij} = 1/d_{ij}^\delta\) untuk beberapa \(\delta > 0\)
2.2 Row-Standardization
Biasanya kita row-standardize \(W\):
\[\tilde{w}_{ij} = \frac{w_{ij}}{\sum_{j=1}^n w_{ij}}\]
Property penting: \(\tilde{W}\iota = \iota\) — setiap baris sum to 1.
Efek: \((\tilde{W}y)_i = \sum_j \tilde{w}_{ij}y_j\) adalah weighted average dari nilai tetangga unit \(i\).
Spectral radius: \(\rho(\tilde{W}) \leq 1\) untuk row-standardized \(W\) (berguna untuk parameter restrictions).
2.3 Representasi Matrix
Untuk \(n\) observasi dengan kita ingin model:
\[y_i = \rho \sum_{j} w_{ij} y_j + x_i^T\beta + \varepsilon_i\]
Ini bisa ditulis kompak: \(y = \rho Wy + X\beta + \varepsilon\)
3 SAR (Spatial Autoregressive) Model
\[y = \rho Wy + X\beta + \varepsilon, \quad \varepsilon \sim N(0, \sigma^2 I)\]
- \(\rho\): spatial autoregressive parameter (strength of spatial dependence)
- \(Wy\): spatially lagged dependent variable — weighted average of neighbors’ \(y\)
- \(|\rho| < 1/\rho(W)\) untuk ensure stability (biasanya \(\rho \in (-1, 1)\) untuk row-standardized \(W\))
3.1 Reduced Form
Dari \(y = \rho Wy + X\beta + \varepsilon\), isolasi \(y\):
\[(I - \rho W)y = X\beta + \varepsilon\]
\[y = (I - \rho W)^{-1}X\beta + (I - \rho W)^{-1}\varepsilon\]
Gunakan Neumann series (untuk \(|\rho| < 1\) dan row-standardized \(W\) dengan \(\rho(W) \leq 1\)):
\[(I - \rho W)^{-1} = I + \rho W + \rho^2 W^2 + \rho^3 W^3 + \cdots\]
Interpretasi: - \(\rho W X\beta\): efek langsung dari first-order neighbors - \(\rho^2 W^2 X\beta\): efek dari second-order neighbors (tetangga dari tetangga) - dst.
Ini adalah spatial multiplier — satu perubahan di satu unit merambat ke seluruh sistem!
3.2 Mengapa OLS Biased untuk SAR
\(Wy\) adalah endogenous: \(y\) bergantung pada \(\varepsilon\) (via error term), dan \(Wy\) bergantung pada \(y\) dari unit tetangga yang juga dipengaruhi oleh shock mereka sendiri.
\[E[Wy \cdot \varepsilon] = E[W(I-\rho W)^{-1}\varepsilon \cdot \varepsilon] \neq 0\]
OLS biased dan inconsistent → perlu MLE atau IV (2SLS dengan \(WX\) sebagai instruments).
3.3 MLE untuk SAR
Log-likelihood:
\[\ell(\rho, \beta, \sigma^2) = -\frac{n}{2}\log(2\pi\sigma^2) + \log|I - \rho W| - \frac{1}{2\sigma^2}\mathbf{e}^T\mathbf{e}\]
di mana \(\mathbf{e} = (I - \rho W)y - X\beta\).
Computational challenge: \(\log|I - \rho W|\) perlu dihitung ulang untuk setiap \(\rho\).
Secara efisien: gunakan eigendecomposition \(W = PDP^{-1}\), maka:
\[\log|I - \rho W| = \sum_{i=1}^n \log(1 - \rho\lambda_i)\]
di mana \(\lambda_i\) adalah eigenvalues dari \(W\). Hitung eigenvalues sekali, evaluasi cepat.
4 SEM (Spatial Error Model)
\[y = X\beta + u, \quad u = \lambda Wu + \varepsilon, \quad \varepsilon \sim N(0, \sigma^2 I)\]
Reduced form untuk error:
\[u = (I - \lambda W)^{-1}\varepsilon\]
\[y = X\beta + (I - \lambda W)^{-1}\varepsilon\]
4.1 Perbedaan SAR vs SEM
| Aspek | SAR | SEM |
|---|---|---|
| Spatial dependence | Dalam DV \(y\) | Dalam errors \(u\) |
| Interpretasi | Outcome bergantung pada neighbors’ outcome | Unobserved factors berkorelasi spasial |
| OLS | Biased (inconsistent) | Unbiased tapi inefficient |
| Estimasi | MLE atau IV | GLS atau MLE |
4.2 Efek pada OLS
Untuk SEM, OLS memberikan estimator unbiased karena: \[E[X^T u] = E[X^T(I-\lambda W)^{-1}\varepsilon] = 0 \quad \text{(if $X$ exogenous)}\]
Tapi OLS inefficient karena mengabaikan struktur covariance.
GLS: transformasi \(y^* = (I-\lambda W)y\), \(X^* = (I-\lambda W)X\), lalu OLS.
5 SDM (Spatial Durbin Model)
\[y = \rho Wy + X\beta + WX\theta + \varepsilon\]
SDM adalah model paling general — memasukkan baik spatially lagged DV (\(Wy\)) maupun spatially lagged regressors (\(WX\)).
Nesting: - SAR: \(\theta = 0\) - SEM: \(\theta = -\rho\beta\) (common factor restriction)
5.1 Direct, Indirect, dan Total Effects
Ini adalah konsep terpenting dalam SDM dan bahkan SAR.
Efek perubahan \(x_k\) pada \(y\):
Dari reduced form: \(y = (I - \rho W)^{-1}(X\beta + WX\theta) + (I-\rho W)^{-1}\varepsilon\)
Matrix partial derivatives:
\[S_k(W) = \frac{\partial y}{\partial x_k^T} = (I - \rho W)^{-1}(I\beta_k + W\theta_k)\]
\(S_k(W)\) adalah \(n \times n\) matrix. Elemen \((i,j)\): efek perubahan \(x_{kj}\) pada \(y_i\).
Direct Effect (diagonal elements — efek pada unit itu sendiri + feedback): \[\overline{M}(k)_{direct} = \frac{1}{n}\text{tr}[S_k(W)]\]
Indirect/Spillover Effect (off-diagonal — efek pada unit lain): \[\overline{M}(k)_{indirect} = \frac{1}{n}\iota^T S_k(W)\iota - \frac{1}{n}\text{tr}[S_k(W)]\]
Total Effect: \[\overline{M}(k)_{total} = \overline{M}(k)_{direct} + \overline{M}(k)_{indirect} = \frac{1}{n}\iota^T S_k(W)\iota\]
Kenapa direct effect \(\neq \beta_k\)? Karena ada feedback loop — perubahan \(y_i\) mempengaruhi neighbors, yang mempengaruhi kembali \(y_i\).
6 Moran’s I Test
Test statistic untuk spatial autocorrelation dalam residual:
\[I = \frac{n}{\sum_{i}\sum_{j}w_{ij}} \cdot \frac{\mathbf{e}^T W \mathbf{e}}{\mathbf{e}^T \mathbf{e}}\]
di mana \(\mathbf{e}\) adalah OLS residuals.
Distribusi asymptotik di bawah \(H_0\) (no spatial autocorrelation):
\[I \sim N\left(\frac{-1}{n-1}, \text{Var}(I)\right)\]
Jika \(I > 0\): positive spatial autocorrelation (similar values cluster together) Jika \(I < 0\): negative spatial autocorrelation (dissimilar values next to each other)
Moran’s I biasa digunakan untuk: 1. Mengecek apakah OLS residuals exhibit spatial pattern (specification test) 2. Apakah kita perlu SAR atau SEM?
7 Worked Example: SAR Spatial Multiplier
Bayangkan 4 wilayah dalam lingkaran (masing-masing bertetangga dengan 2 wilayah di kiri/kanan):
\[W = \begin{pmatrix} 0 & 0.5 & 0 & 0.5 \\ 0.5 & 0 & 0.5 & 0 \\ 0 & 0.5 & 0 & 0.5 \\ 0.5 & 0 & 0.5 & 0 \end{pmatrix}\]
(row-standardized — setiap baris sum to 1)
Dengan \(\rho = 0.4\) dan \(\beta = 1\) (satu regressor):
\[(I - \rho W)^{-1} = ?\]
library(Matrix)
library(spdep)
library(spatialreg)
# Define 4-region circular weight matrix
W <- matrix(c(0, 0.5, 0, 0.5,
0.5, 0, 0.5, 0,
0, 0.5, 0, 0.5,
0.5, 0, 0.5, 0),
nrow = 4, byrow = TRUE)
rho <- 0.4
I4 <- diag(4)
S <- solve(I4 - rho * W) # (I - rho*W)^{-1}
cat("Spatial multiplier matrix S = (I - rho*W)^{-1}:\n")
print(round(S, 4))
# Verify with Neumann series (approx)
S_approx <- I4 + rho*W + rho^2*W%*%W + rho^3*W%*%W%*%W + rho^4*(W%*%W)%*%(W%*%W)
cat("\nNeumann series approximation (5 terms):\n")
print(round(S_approx, 4))
# Compute SAR effects for beta = 1
beta_k <- 1
S_k <- S %*% (I4 * beta_k) # beta_k * (I - rho*W)^{-1}
# Direct effect (average diagonal)
direct_effect <- mean(diag(S_k))
cat(sprintf("\nDirect Effect: %.4f\n", direct_effect))
# Total effect (average row sum)
total_effect <- mean(S_k %*% rep(1,4))
cat(sprintf("Total Effect: %.4f\n", total_effect))
# Indirect effect
indirect_effect <- total_effect - direct_effect
cat(sprintf("Indirect/Spillover Effect: %.4f\n", indirect_effect))
# Interpretation:
# If rho = 0: direct = beta = 1, indirect = 0
# With rho = 0.4: direct > 1 (feedback loop!)Interpretasi: dengan \(\rho = 0.4\) dan \(\beta = 1\): - Direct effect > 1: karena feedback loop — perubahan di wilayah \(i\) mempengaruhi tetangga, tetangga mempengaruhi kembali \(i\) - Indirect effect > 0: spillover ke wilayah lain - Total effect = direct + indirect = “global multiplier”
Semakin tinggi \(\rho\), semakin besar spillover relatif terhadap direct effect.
7.1 Full SAR Example dengan R
# Using spatialreg package
library(sf)
library(spdep)
library(spatialreg)
# Load example data (Boston housing atau data apapun)
data("meuse", package = "sp")
coordinates(meuse) <- ~x + y
proj4string(meuse) <- CRS("+init=epsg:28992")
# Create spatial weights
coords <- coordinates(meuse)
nb <- knn2nb(knearneigh(coords, k = 4))
lw <- nb2listw(nb, style = "W")
# Convert to sf untuk modern workflow
meuse_sf <- st_as_sf(meuse)
# Moran's I test on OLS residuals
ols_model <- lm(zinc ~ dist + elev + ffreq, data = meuse_sf)
moran_test <- moran.test(residuals(ols_model), lw)
print(moran_test)
# Significant Moran's I -> spatial autocorrelation in residuals
# SAR model (SLM: spatial lag model)
sar_model <- lagsarlm(zinc ~ dist + elev + ffreq, data = meuse_sf, listw = lw)
summary(sar_model)
# Compute direct, indirect, total effects
sar_effects <- impacts(sar_model, listw = lw, R = 500)
print(summary(sar_effects, zstats = TRUE, short = TRUE))Spatial econometrics punya ekstensi penting:
Spatial panel models: kombinasikan \(W\) dengan panel FE/RE. Model: \(y_{it} = \rho Wy_{it} + x_{it}^T\beta + \alpha_i + \lambda_t + \varepsilon_{it}\)
Model selection: LM tests (Anselin, 1988) — LM-lag vs LM-error untuk pilih SAR vs SEM. Atau robust LM tests.
GeoDa: software GUI untuk spatial analysis, exploratory mapping
R packages:
spdep: spatial weights, Moran’s Ispatialreg: SAR, SEM, SDM estimationspgwr: geographically weighted regression
INLA/Stan: Bayesian spatial models (CAR priors, GP priors)
8 Practice Problems
Problem 1: Tunjukkan bahwa row-standardized \(W\) memiliki \(\rho(W) \leq 1\).
Untuk row-standardized \(W\), \(W\iota = \iota\) artinya \(\iota\) adalah eigenvector dengan eigenvalue 1. Untuk eigenvalue \(\lambda\) lainnya dan eigenvector \(v\):
\[|\lambda| \|v\|_\infty \leq \max_i \sum_j |w_{ij}| |v_j| \leq \|v\|_\infty \cdot \max_i \sum_j w_{ij} = \|v\|_\infty\]
(Gershgorin circle theorem / Perron-Frobenius) → \(|\lambda| \leq 1 = \lambda_{max}\).
Problem 2: Mengapa Neumann series \((I-\rho W)^{-1} = \sum_{k=0}^\infty (\rho W)^k\) valid?
Series ini convergent jika spectral radius \(\rho(|\rho| W) = |\rho|\rho(W) < 1\).
Untuk row-standardized \(W\), \(\rho(W) \leq 1\). Jadi cukup \(|\rho| < 1\).
Bukti: \((I - \rho W)\sum_{k=0}^K (\rho W)^k = I - (\rho W)^{K+1} \to I\) saat \(K \to \infty\).
Problem 3: Jelaskan perbedaan interpretasi koefisien dalam SAR vs OLS.
Dalam OLS: \(\beta_j = \partial y_i/\partial x_{ij}\) — efek langsung satu unit.
Dalam SAR: perubahan \(x_{ij}\) mempengaruhi \(y_i\) langsung (\(\beta_j\)), tapi juga mempengaruhi neighbors of \(i\), yang merespons dan mempengaruhi kembali \(y_i\) melalui \(\rho W\). Direct effect = \(\frac{1}{n}\text{tr}(S_k(W))\), yang memperhitungkan feedback loop ini.
Problem 4: Kapan SEM lebih tepat daripada SAR?
SEM lebih tepat ketika spatial autocorrelation berasal dari omitted spatially correlated variables (unobserved confounders yang spasially berkorelasi), bukan dari genuine spillover effects dalam DV.
Contoh SEM: cuaca yang berkorelasi spasial mempengaruhi produksi pertanian — setelah dikontrol, residuals masih berkorelasi.
Contoh SAR: harga rumah genuinely dipengaruhi oleh harga rumah di sekitarnya (word-of-mouth, comps dalam appraisal).
Navigasi: ← Time Series Math | Module 07: ML Math →