r - 如何估计带岛屿的空间 SAR 模型?
问题描述
我正在尝试使用该lagsarlm
命令估计空间 SAR 模型,但出现以下错误:
lagsarlm(f1, data = df, spatialList, tol.solve = 1e-30) 中的错误:滞后因变量中的 NA 另外:警告消息:在 lag.listw(listw, y, zero.policy = zero.policy) 中:滞后值中的 NA
显然,这是因为我有岛屿(与任何其他观察无关的观察)。如果我在不创建岛的情况下运行以下代码(通过删除 W[1,1:50] <- 0),则代码可以正常工作。
library(spdep)
library(spatialreg)
library(sna)
set.seed(123)
W <- rgraph(50, m=1, tprob=0.1, mode="graph", diag=FALSE)
W[1,1:50] <- 0
spatialList <- mat2listw(W)
y <- rnorm(50)
x <- rnorm(50)
df <- cbind.data.frame(y,x)
f1 <- y ~ x
m2s = lagsarlm(f1, data=df, spatialList, tol.solve=1.0e-30)
这只是一个玩具示例。鉴于我的真实矩阵有几个岛,关于如何进行估计的任何想法?
非常感谢
解决方案
该lagsarlm
函数有一个 zero.policy 参数,默认为 FALSE,这意味着如果数据中有零并且您忽略此参数,该函数将终止并出现错误。所以,将其更改为TRUE
.
m2s = lagsarlm(f1, data=df, spatialList, tol.solve=1.0e-30, zero.policy=TRUE)
m2s
Call:
lagsarlm(formula = f1, data = df, listw = spatialList, zero.policy = TRUE,
tol.solve = 1e-30)
Type: lag
Coefficients:
rho (Intercept) x
-0.007533119 0.209226752 0.058315953
Log likelihood: -71.21548
从帮助页面:
zero.policy
默认为 NULL,使用全局选项值;如果 TRUE 将零分配给没有邻居的区域的滞后值,如果 FALSE(默认)分配 NA - 导致 lagsarlm() 以错误终止
推荐阅读
- excel - 打开从 Dynamics 365 下载的 Excel 文件时出现 Excel 错误 - 客户服务
- spring - JPA Hibernate ConstraintViolationException
- android - 与 Rest Api 问题的移动应用程序连接
- c# - Linq ToLookUp 太慢了
- reactjs - React|Webpack4|Babel7 模块构建失败
- python - 我可以使用 pandas 从我的数据框中创建这种 json 格式吗?
- android - 如何将项目高音移植到设备?
- docker - 无法使用 docker (prom/prometheus) 加载 prometheus.yml 配置文件
- angularjs - 视图模板未使用 $routeProvider 呈现
- python - 解析文本文件不同行的有效方法