【问题标题】:spdep "Not yet able to subset general weights lists" listwspdep "还不能对一般权重列表进行子集化" listw
【发布时间】:2014-11-24 02:24:26
【问题描述】:

我对@9​​87654321@ 有疑问。从函数产生的非缺失距离矩阵开始

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

【问题讨论】:

    标签: r regression geospatial spatial spdep


    【解决方案1】:

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

    最好是手动对数据进行子集化或纠正不完整的案例。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-24
        • 1970-01-01
        • 2016-03-20
        • 2021-05-28
        • 2023-02-03
        • 2018-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多