我的数据集中有9,150个多边形。我试图在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发布于 2020-05-19 22:34:49
我知道这是一个2019年的问题,但也许它可以帮助人们处理同样的问题。我发现在我的例子中,问题出在数据集的类型上,您的data=polyset应该是"SpatialPolygonsDataFrame"类型的。这可以通过转换您的数据来实现:
polyset_spatial_sf <- sf::as_Spatial(polyset, IDs = polyset$ID)然后重新运行你的代码。
https://stackoverflow.com/questions/56822169
复制相似问题