运行spdep :: lagsarlm(空间自回归模型)后,如何解决“ impacts()”邻居长度错误?

时间:2019-06-30 03:12:11

标签: r geospatial spatial spdep

我的数据集中有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

1 个答案:

答案 0 :(得分:0)

我知道这是2019年以来的一个问题,但也许它可以帮助人们解决相同的问题。我发现我的问题是数据集的类型,您的data=polyset应该是"SpatialPolygonsDataFrame"类型。可以通过转换数据来实现:

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

然后重新运行代码。