0

我的数据集中有 9,150 个多边形。我试图运行一个空间自回归模型(SAR)spdep来测试我的结果变量的空间依赖性。运行模型后,我想检查直接/间接影响,但遇到了一个错误,似乎与权重矩阵中邻居的长度不等于n.

我尝试运行与 SLX 模型(空间滞后 X)完全相同的方程,并且impacts()工作正常,即使我的集合中有一些没有邻居的多边形。我用谷歌搜索并查看了spdep文档,但找不到有关如何解决此错误的线索。

# Defining queen contiguity neighbors for polyset and storing the matrix as list
q.nbrs <- poly2nb(polyset) 
listweights <- nb2listw(q.nbrs, zero.policy = TRUE)

# Defining the model
model.equation <- TIME ~ A + B + C

# Run SAR model
reg <- lagsarlm(model.equation, data = polyset, listw = listweights, zero.policy = TRUE)

# Run impacts() to show direct/indirect impacts
impacts(reg, listw = listweights, zero.policy = TRUE)

Error in intImpacts(rho = rho, beta = beta, P = P, n = n, mu = mu, Sigma = Sigma,  : 
  length(listweights$neighbours) == n is not TRUE
4

1 回答 1

0

我知道这是 2019 年的一个问题,但也许它可以帮助人们处理同样的问题。我发现在我的情况下,问题是数据集的类型,你data=polyset应该是 type "SpatialPolygonsDataFrame"。这可以通过转换您的数据来实现:

polyset_spatial_sf <- sf::as_Spatial(polyset, IDs = polyset$ID)

然后重新运行您的代码。

于 2020-05-19T14:34:49.367 回答