我遇到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
答案 0 :(得分:1)
这是因为data1
中至少有一个观察结果不完整,即缺少值。因此,errorsarlm
想要对数据进行子集化,即限制完成案例。但它现在无法做到 - 这就是错误信息所说的内容。
最好是手动对数据进行子集化或纠正不完整的案例。
答案 1 :(得分:0)
这是因为默认情况下spdep函数仅为非通用权重创建了一个listw对象。在执行<script type="text/javascript">
function checkResponse(){
if (isChecked('option1') || isChecked('option2')){
next();
}else{
alert("Your error message")
}
}
function isChecked(id){
return document.getElementById(id).checked; //returns true if any options are selected
}
</script>
或zero.polcy=TRUE
函数之前,请设置mat2listw
,以使它考虑值为零的非邻居。