我和spdep()有点问题。从函数生成的非缺失距离矩阵开始
dist_m <- geoDistMatrix(data1, group = 'fips_dist')
dist_m[upper.tri(dist_m)] <- t(dist_m)[upper.tri(dist_m)]然后我们用线性逆变换权重
max_dist <- max(dist_m)
w1 <- (max_dist + 1 - dist_m)/(max_dist + 1)而现在
lw <- mat2listw(w1, row.names = rownames(w1), style = 'M')我检查以确保没有丢失的权重:
any(is.na(lw$weights))既然没有,那就继续吧:
errorsarlm(cvote ~ inc, data = data1, lw, method = 'eigen', quiet = F, zero.policy = TRUE)导致以下错误:
Error in subset.listw(listw, subset, zero.policy = zero.policy) :
Not yet able to subset general weights lists发布于 2015-04-09 17:43:41
这是因为data1中至少有一个观察值不完整,即缺少值。因此,errorsarlm希望对数据进行子集,即限制为完成案例。但它现在不能这样做--这就是错误消息所说的。
最好是手动设置数据子集或更正不完整的情况。
发布于 2019-05-12 12:55:12
这是因为spdep函数默认情况下只为非常规权重创建了一个listw对象。在执行mat2listw或nb2listw函数之前设置zero.polcy=TRUE,以便它考虑具有零值非邻居。
https://stackoverflow.com/questions/27096990
复制相似问题