首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spdep“尚不能子集一般权重列表”listw

spdep“尚不能子集一般权重列表”listw
EN

Stack Overflow用户
提问于 2014-11-24 10:24:27
回答 2查看 1.8K关注 0票数 1

我和spdep()有点问题。从函数生成的非缺失距离矩阵开始

代码语言:javascript
复制
dist_m <- geoDistMatrix(data1, group = 'fips_dist')
dist_m[upper.tri(dist_m)] <- t(dist_m)[upper.tri(dist_m)]

然后我们用线性逆变换权重

代码语言:javascript
复制
max_dist <- max(dist_m)
w1 <- (max_dist + 1 - dist_m)/(max_dist + 1)

而现在

代码语言:javascript
复制
lw <- mat2listw(w1, row.names = rownames(w1), style = 'M')

我检查以确保没有丢失的权重:

代码语言:javascript
复制
any(is.na(lw$weights))

既然没有,那就继续吧:

代码语言:javascript
复制
errorsarlm(cvote ~ inc, data = data1, lw, method = 'eigen', quiet = F, zero.policy = TRUE)

导致以下错误:

代码语言:javascript
复制
Error in subset.listw(listw, subset, zero.policy = zero.policy) : 
  Not yet able to subset general weights lists
EN

回答 2

Stack Overflow用户

发布于 2015-04-09 17:43:41

这是因为data1中至少有一个观察值不完整,即缺少值。因此,errorsarlm希望对数据进行子集,即限制为完成案例。但它现在不能这样做--这就是错误消息所说的。

最好是手动设置数据子集或更正不完整的情况。

票数 1
EN

Stack Overflow用户

发布于 2019-05-12 12:55:12

这是因为spdep函数默认情况下只为非常规权重创建了一个listw对象。在执行mat2listwnb2listw函数之前设置zero.polcy=TRUE,以便它考虑具有零值非邻居。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27096990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档