我正在分析来自欧洲社会调查的数据。由于相当多的数据丢失,我使用了 amelia 包进行插补。依赖值是具有 4 个值的序数,因此我计划使用 Zelig 包中的“ogit”函数执行有序逻辑回归:
z.out <- zelig(as.factor(Y) ~ X1 + X2, model = "ologit", data = ameliadata)
该代码将运行,但是当我询问结果时,会显示以下错误代码:
z.out:
模型:se[i, ] <- sqrt(diag(vcovlist[[i]])) 中的组合插补错误:要替换的项目数不是替换长度的倍数
我有五个独立的估算数据集。单独分析我可以使用 Zelig 和这五个中的每一个的“ologit”功能。仅当我使用组合的 amelia 数据对象时才会出现问题。我试图用相同的 amelia 输出估计不同的模型,但我似乎只对与有序回归相关的模型有问题。例如,“ls”模型运行得很好,如果我将依赖变量更改为二分变量,我也可以毫无问题地运行“logit”模型。
因此,我想知道之前是否有人能够在 amelia 数据上使用 zelig 运行“ologit”,或者是否有人知道可能是什么问题?我将不胜感激任何想法和建议。非常感谢您的时间和帮助。
这是一个使用 ordinal 包中的 wine 数据集的示例:
library(Amelia)
library(Zelig)
library(ordinal)
data(wine)
w <- wine
set.seed(10)
w[sample(1:nrow(w), 20), "response"] <- NA
w[sample(1:nrow(w), 20), "rating"] <- NA
w[sample(1:nrow(w), 20), "temp"] <- NA
w[sample(1:nrow(w), 5), "contact"] <- NA
w[sample(1:nrow(w), 5), "bottle"] <- NA
w.amelia <- amelia(w, m = 5, idvars="bottle", ords = c("rating","judge"),
noms = c("contact", "temp"),
incheck = TRUE)
z.out <- zelig(rating ~ contact + temp, model = "ologit", data = w.amelia)
summary(z.out)