我的数据集中有9,150个多边形。我试图在spdep
中运行空间自回归模型(SAR),以测试结果变量的空间依赖性。运行模型后,我想检查直接/间接影响,但是遇到一个错误,该错误似乎与权重矩阵中邻居的长度不等于n
有关。
我尝试运行与SLX模型(空间滞后X)完全相同的方程,即使我的集合中有一些不相邻的多边形,impacts()
也可以正常工作。我用Google搜索并查看了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
答案 0 :(得分:0)
我知道这是2019年以来的一个问题,但也许它可以帮助人们解决相同的问题。我发现我的问题是数据集的类型,您的data=polyset
应该是"SpatialPolygonsDataFrame"
类型。可以通过转换数据来实现:
polyset_spatial_sf <- sf::as_Spatial(polyset, IDs = polyset$ID)
然后重新运行代码。