【发布时间】:2019-06-07 15:53:28
【问题描述】:
我正在尝试使用包 spml 在 R 中拟合面板空间模型。我先定义NxN权重矩阵如下
neib <- dnearneigh(coordinates(coord), 0, 50, longlat = TRUE)
dlist <- nbdists(neib, coordinates(coord))
idlist <- lapply(dlist, function(x) 1/x)
w50 <- nb2listw(neib,zero.policy=TRUE, glist=idlist, style="W")
因此,如果两个观测值的距离最多在 50 公里范围内,我将它们定义为邻居。附加到每对相邻观测值的权重对应于它们距离的倒数,因此更近的邻居获得更高的权重。我还使用选项 zero.policy=TRUE 以便没有邻居的观察与零权重的向量相关联。
一旦我这样做了,我会尝试通过以下方式拟合面板空间模型
mod <- spml(y ~ x , data = data_p, listw = w50, na.action = na.fail, lag = F, spatial.error = "b", model = "within", effect = "twoways" ,zero.policy=TRUE)
但我收到以下错误和警告消息
lag.listw(listw, u) 中的错误:变量包含非有限值 另外:有 50 个或更多警告(使用 warnings() 查看 前 50 个)
警告消息:1:在 mean.default(X[[i]], ...) 中:参数不是 数字或逻辑:返回 NA
...
50: In mean.default(X[[i]], ...) : 参数不是数字或 逻辑:返回 NA
我认为这与非邻居观察有关。可以请任何人帮助我吗?除了 zero.policy 选项之外,还有什么方法可以处理非邻居观察?
非常感谢您帮助我。
【问题讨论】: