spatialreg | 空间滞后模型、空间误差模型和空间杜宾模型简单形式的R语言实现...
旧文重发,原文链接:https://mp.weixin.qq.com/s/pHRS9BfkCMe1uQOSkHmqAw
关于空间计量模型,小编是通过阅读勒沙杰(James LeSage)和佩斯(R.Kelley Pace)合著的《空间计量经济学导论》(Introduction of Spatial Econometrics)入门的,但是当时着重的是理解这些模型,并没有用代码去实现。
作者也提供了书中模型的Matlab代码,可以在网站http://www.spatial-econometrics.com/(Econometrics Toolbox: by James P. LeSage)上查看。另外,作者之一的佩斯还有一个网站http://www.spatial-statistics.com/(Spatial Statistics Software and Articles),上面有一些空间统计领域的Matlab工具箱和论文。
由于小编目前也在学习阶段,因此本篇只会使用R语言去实现这些模型的一些比较简单的形式,使用的工具包是spatialreg
,后续可能会分享一些更复杂的内容。
1 模型形式
1.1 空间滞后模型
自回归模型(Autoregressive Model,AR)在时间序列分析中很易理解,即因变量与它的时间滞后值(Lag)存在相关性,这也意味着自回归模型放弃了因变量独立性的假设。
在空间计量模型中,空间滞后值被认为是邻近空间单元的属性(加权)值,因此下面是一个形式比较简单的空间自回归模型(最简单的形式应该是不包含自变量),也就是空间滞后模型(Spatial Lagged Model,SLM):
空间自回归模型一般就是指空间滞后模型,但它也有一个更广义的概念,即所有包含因变量的空间滞后项的模型;
模型估计时会首先对参数进行估计,再使用广义最小二乘法估计和其他参数。
1.2 空间误差模型
空间误差模型(Spatial Error Model,SEM)可以分解成如下两步:
上述两式合并得,
402 Payment Required
第一个式子并非线性模型,因为不需要服从正态分布;
模型估计时会首先对参数进行估计,再使用广义最小二乘法估计和其他参数。
1.3 空间杜宾模型
空间杜宾模型(Spatial Durbin Model,SDM)假定因变量取值除受本地自变量的影响外,还会受到邻近地区的自变量影响,即在模型中加入自变量的空间滞后值:
402 Payment Required
1.4 复合模型
上述三个模型各自有针对性的假设,但这些假设相互之间并不排斥,可以在同一个模型中存在。
1.4.1 空间自相关模型
该模型综合了空间滞后模型和空间误差模型,称作空间自相关模型(Spatial Autocorrelation Model,SAC);
当或其中一个为0时,SAC就退化成了SEM或SLM。
1.4.2 空间杜宾(滞后)模型
402 Payment Required
该模型综合了空间滞后模型和空间杜宾模型,但习惯上仍称作是空间杜宾模型。
1.4.3 空间杜宾误差模型
该模型综合了空间误差模型和空间杜宾模型,称作空间杜宾误差模型(Spatial Durbin Error Model,SDEM)。
1.4.4 空间自相关杜宾模型
该模型是最一般的形式,同时综合了三种基本模型,也可以认为是综合了空间自相关模型和空间杜宾模型。
2 R语言代码
2.1 函数概述
上述7个模型形式可以通过spatialreg
工具包中的3个函数来实现:
lagsarlm()
:空间滞后模型、空间杜宾(滞后)模型errorsarlm()
:空间误差模型、空间杜宾误差模型sacsarlm()
:空间自相关模型、空间自相关杜宾模型
2.2 线性模型
示例数据如下:
library(sf)
library(tidyverse)
usa <- albersusa::counties_sf(proj = "laea") %>%mutate(fips = as.character(fips)) %>%left_join(socviz::county_data, by = c("fips" = "id"))
因变量取收入,自变量取黑人比例。在运行空间计量模型前,先使用线性模型进行建模:
data <- st_drop_geometry(usa)
model <- lm(hh_income ~ black, data = data)summary(model)
## Call:
## lm(formula = hh_income ~ black, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -27680 -7341 -2171 4653 76006
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 47765.53 244.55 195.32 <2e-16 ***
## black -199.18 14.29 -13.94 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11570 on 3141 degrees of freedom
## Multiple R-squared: 0.05825, Adjusted R-squared: 0.05795
## F-statistic: 194.3 on 1 and 3141 DF, p-value: < 2.2e-16
2.3 莫兰指数
使用莫兰指数检验因变量的空间自相关性:
library(spdep)
nb <- poly2nb(usa)
listW <- nb2listw(nb, zero.policy = T)jpeg("1.jpeg", width = 8, height = 6, res = 600, units = "in")
moran.plot(usa$hh_income, listW,zero.policy = T,labels = F,pch = 20, cex = 0.1)
dev.off()
部分县没有邻接单元,设置
zero.policy = T
可以允许空间权重矩阵(实际空间数据结构是list)存在空元素。
2.4 空间计量模型
以lagsarlm()
函数为例,它的完整语法结构如下:
lagsarlm(formula, data = list(),listw, na.action,Durbin, type,method="eigen", quiet=NULL,zero.policy=NULL, interval=NULL,tol.solve=.Machine$double.eps,trs=NULL, control=list())
本篇仅涉及以下几个参数,其余参数使用...
代替:
lagsarlm(formula, data = list(),listw, Durbin,zero.policy = NULL,...,)
formula:与对应的线性模型的表达式一致;
data:变量所在的数据框;
listw:空间权重矩阵;
Durbin:是否在模型中加入自变量的空间滞后值;
zero.policy:针对权重矩阵存在空元素的应对方案,TRUE表示对应的空间滞后的权重为0。
2.4.1 空间滞后模型
library(spatialreg)
sl_model <- lagsarlm(hh_income ~ black, data = data,listw = listW, zero.policy = T)summary(sl_model)
## Call:lagsarlm(formula = hh_income ~ black, data = data, listw = listW,
## zero.policy = T)
##
## Residuals:
## Min 1Q Median 3Q Max
## -26914.4 -4772.3 -1298.9 2996.4 72040.0
##
## Type: lag
## Regions with no neighbours included:
## 2788 2836 2995 3135 3140 3141 3143
## Coefficients: (numerical Hessian approximate standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 14401.438 628.923 22.899 < 2.2e-16
## black -121.955 10.236 -11.915 < 2.2e-16
##
## Rho: 0.71234, LR test value: 1783.5, p-value: < 2.22e-16
## Approximate (numerical Hessian) standard error: 0.012906
## z-value: 55.195, p-value: < 2.22e-16
## Wald statistic: 3046.5, p-value: < 2.22e-16
##
## Log likelihood: -32973.68 for lag model
## ML residual variance (sigma squared): 67335000, (sigma: 8205.8)
## Number of observations: 3143
## Number of parameters estimated: 4
## AIC: 65955, (AIC for lm: 67737)
2.4.2 空间误差模型
library(spatialreg)
se_model <- errorsarlm(hh_income ~ black, data = data,listw = listW, zero.policy = T)summary(se_model)
## Call:errorsarlm(formula = hh_income ~ black, data = data, listw = listW,
## zero.policy = T)
##
## Residuals:
## Min 1Q Median 3Q Max
## -30053.7 -4590.2 -1184.3 2843.3 56012.9
##
## Type: error
## Regions with no neighbours included:
## 2788 2836 2995 3135 3140 3141 3143
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 50696.822 725.463 69.882 < 2.2e-16
## black -400.074 18.035 -22.183 < 2.2e-16
##
## Lambda: 0.82333, LR test value: 2384.3, p-value: < 2.22e-16
## Approximate (numerical Hessian) standard error: 0.011128
## z-value: 73.99, p-value: < 2.22e-16
## Wald statistic: 5474.5, p-value: < 2.22e-16
##
## Log likelihood: -32673.29 for error model
## ML residual variance (sigma squared): 52510000, (sigma: 7246.4)
## Number of observations: 3143
## Number of parameters estimated: 4
## AIC: 65355, (AIC for lm: 67737)
2.4.3 空间杜宾误差模型
library(spatialreg)
sd_model <- errorsarlm(hh_income ~ black, data = data,listw = listW, zero.policy = T,Durbin = T)summary(sd_model)
## Call:errorsarlm(formula = hh_income ~ black, data = data, listw = listW,
## Durbin = T, zero.policy = T)
##
## Residuals:
## Min 1Q Median 3Q Max
## -29657.6 -4639.4 -1123.4 2817.7 56324.1
##
## Type: error
## Regions with no neighbours included:
## 2788 2836 2995 3135 3140 3141 3143
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 48577.976 753.720 64.4509 < 2.2e-16
## black -392.654 17.888 -21.9512 < 2.2e-16
## lag.black 223.080 36.404 6.1278 8.909e-10
##
## Lambda: 0.81169, LR test value: 2384.6, p-value: < 2.22e-16
## Approximate (numerical Hessian) standard error: 0.011396
## z-value: 71.228, p-value: < 2.22e-16
## Wald statistic: 5073.5, p-value: < 2.22e-16
##
## Log likelihood: -32655.17 for error model
## ML residual variance (sigma squared): 52280000, (sigma: 7230.5)
## Number of observations: 3143
## Number of parameters estimated: 5
## AIC: 65320, (AIC for lm: 67703)
![](/assets/blank.gif)
spatialreg | 空间滞后模型、空间误差模型和空间杜宾模型简单形式的R语言实现...相关推荐
- spatialreg | 空间滞后模型(SLR)、空间误差模型(SEM)和空间杜宾模型(SDM)的简单形式的R语言实现...
关于空间计量模型,小编是通过阅读勒沙杰(James LeSage)和佩斯(R.Kelley Pace)合著的<空间计量经济学导论>(Introduction of Spatial Econ ...
- 怎么做 空间杜宾模型_面板数据空间杜宾模型
4.3.1 模型及估计 (1) 无固定效应模型 当SAR和SEM模型在一定的显著性水平下同时成立时,我们需要进一步考虑面板数据空间杜宾模型,即解释变量的空间滞后项影响被解释变量时,就应该考虑建立空间杜 ...
- stata实现经济生态的空间杜宾模型
文章目录 摘要 一. Stata 实现空间杜宾模型过程 1.空间权重矩阵的生成 1.1 获取地图json数据文件 1.2 获取市级行政单元Shapefile 1.3 Arcgis创建空间权重矩阵 1. ...
- 空间计量经济学(3)---空间杜宾模型与广义嵌套空间模型
一.空间杜宾模型 1.空间杜宾模型形式 空间杜宾模型(SDM)是空间滞后模型和空间误差项模型的组合扩展形式,可通过对空间滞后模型和空间误差模型增加相应的约束条件设立.空间杜宾模 ...
- 科技人才开发效率的空间杜宾模型分析
研究结果表明:当前我国所有省市的科技人才开发效率均未处于有效水平,但总体呈上升趋势,技术条件的优化和改善空间很大,其效率值在总体上表现出空间集聚性和空间相关性较弱的特征.政府支持力度.科研激励力度.产 ...
- 空间杜宾模型SPDM
T个周期,N个地区,K个解释变量. 1.基准面板回归模型 其中,x1为核心的解释变量,其余为控制变量. 2.空间面板滞后模型SPLM 其中,W为n*n阶距离矩阵,为空间滞后系数.揭示了邻近地区Y值对本 ...
- Stata做空间杜宾模型、莫兰指数等操作
以下内容完全由本人在实际操作中搜集整理总结得到,很细致的介绍:从如何在stata中导入数据,怎么定义面板数据,再到如何做局部和全局空间相关性检验(莫兰指数)和空间杜宾模型等. 1.导入面板数据 在ex ...
- ⾯板数据分析、空间计量、空间杜宾模型学习资料
数据说明 • 该资源包含⾯板数据分析.空间计量.空间杜宾模型的软件安装教程.演示数 据.代码说明以及Stata内do⽂件
- sbm matlab,超效率sbm模型matlab-如何用matlab估计空间杜宾模型
超效率sbm模型matlab-如何用matlab估计空间杜宾模型 所属分类:宝牧问答 发布时间:2020-10-12 09:54:58 如何用matlab估计空间杜宾模型 你怎么还没解决?实在看去了. ...
最新文章
- 老版本select2设置初始值
- 积跬步,聚小流------Bootstrap学习记录(3)
- Windows Serer 2003 配置手册 – 创建Active Dictionary域
- Python super 函数 - Python零基础入门教程
- C# 导出word文档及批量导出word文档(3)
- 计算机网络基础文档,计算机网络基础-20210608152532.pdf-原创力文档
- Dubbo2.6.5入门——管控台的安装
- centos6架设dhcp服务器提供两个网段的IP地址分配
- Vue基础知识总结(一)
- linux搭建raid5命令,Linux下用mdadm命令创建软RAID5
- MapXtreme2004鹰眼程序
- 北辰创业笔记:百度霸屏之长尾关键词是什么
- Internet选项里没有常规选项卡
- 瑞利分布(Rayleigh Distribution)回顾
- 关于group by的用法
- 瑞萨E1仿真器(R0E000010KCE00)支持的MCU系列--V850 Family
- 【Linux】Shell脚本
- python 发送邮件
- List Group By 用法
- uniapp 聊天记录插入的两种方式