我在使用 R 中的 MICE 包时遇到问题,特别是在汇集估算数据集方面。
我正在运行多级二项式逻辑回归,其中 Level1 - 主题(参与者对不同主题的 10 个问题的回答,例如黑暗、白天)嵌套在 Level2 - 个人中。
该模型是使用 R2MLwiN 创建的,公式为
> fit1 <-runMLwiN( c(probit(T_Darkness, cons), probit(T_Day, cons), probit(T_Light, cons), probit(T_Night, cons), probit(T_Rain, cons), probit(T_Rainbows, cons), probit(T_Snow, cons), probit(T_Storms, cons), probit(T_Waterfalls, cons), probit(T_Waves, cons)) ~ 1, D=c("Mixed", "Binomial", "Binomial","Binomial","Binomial", "Binomial", "Binomial", "Binomial", "Binomial", "Binomial" ,"Binomial"), estoptions = list(EstM = 0), data=data)
不幸的是,所有 Level1(主题)响应中都缺少数据。我一直在使用mice
包 ([CRAN][1]) 来乘以估算缺失值。
我可以使用公式将模型拟合到估算的数据集> fitMI <- (with(MI.Data, runMLwiN( c(probit(T_Darkness, cons), probit(T_Day, cons), probit(T_Light, cons), probit(T_Night, cons), probit(T_Rain, cons), probit(T_Rainbows, cons), probit(T_Snow, cons), probit(T_Storms, cons), probit(T_Waterfalls, cons), probit(T_Waves, cons)) ~ 1, D=c("Mixed", "Binomial", "Binomial","Binomial","Binomial", "Binomial", "Binomial", "Binomial", "Binomial", "Binomial" ,"Binomial"), estoptions = list(EstM = 0), data=data)))
但是,当我将分析与调用代码合并时,> pool(fitMI)
它失败了,并出现错误:
Error in pool(with(tempData, runMLwiN(c(probit(T_Darkness, cons), probit(T_Day, :
Object has no coef() method.
我不确定为什么说没有系数,因为对单个 MI 数据集的分析提供了固定部分(系数)和随机部分(协方差)
任何有关出现问题的帮助将不胜感激。
我应该警告您,这是我第一次尝试使用 R 和多级建模。另外我知道有一个 MlwiN 软件包 ([REALCOM][2]) 可以做到这一点,但我没有使用 MLwiN 软件的背景。
谢谢约翰尼
更新 - R 可重现的例子
使用的库
库(R2MLwin)
图书馆(小鼠)
数据子集`
T_Darkness <- c(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, NA, 0, 0, 0, NA, 1, 0, NA,NA, 1, 0, 0, 0 , 1, 0, 0, 0, 不适用, 0, 0, 0, 不适用, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 1, NA, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, NA, 1, 0)
T_Day <- c(0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 0, NA, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 不适用, 0, 0, 0, 0, 不适用, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, NA, NA, 0)
T_Light <- c(0, 0, NA, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0 , 1, 0, 0, NA, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 1, NA, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, 0, 0)
T_Night <- c(0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, NA , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ,NA, 0, NA, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, NA, 0, 0)
T_Rain <- c(1, 0, 0, 1, 1, 0, 0, NA, 0, 1, 0, 0, 1, 0, 0, 0, 0, NA, 0, 0, 1, 0, 0 , 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 不适用, 0, 0, 0, 0, 1, 0, 0, 0 , 不适用, 1, 不适用, 0, 0, 0, 0, 1, 不适用, 1, 0, 0, 0, 0, 1, 不适用, 0, 0)
T_Rainbows <- c(1, 1, 1, 1, 0, 1, 0, 1, 0, 1, NA, 1, 1, 0, 0, 1, 0, NA, 0, 1, 0, NA, 0 , 1, 0, 0, 0, 0, 0, NA, 0, 0, 0, NA, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0 , 1, 1, 1, 1, NA, 1, 0, 1, NA, 0, 0, 1, 0, 1, 1, 1, 0, 1)
T_Snow <- c(0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, NA, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 0, NA, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 , 不适用, 0, 0, 1, 不适用, 1, 0, 1, 1, 0, 0, 0, 0, 0, 不适用, 0, 0, 0)
T_Storms <- c(0, 0, 0, 1, 1, 1, 0, 1, 0, 1, NA, 0, 0, 0, 0, 1, 0, NA, 0, 0, 1, 0, 0 , 不适用, 1, 1, 不适用, 0, 0, 不适用, 0, 1, 0, 不适用, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0 , 0, 0, 1, 0, 不适用, 1, 0, 不适用, 0, 0, 0, 1, 1, 0, 1, 不适用, 不适用, 1)
T_Waterfalls <- c(0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 0, 0, 1, 0, 0 , 0, 0, 0, 0, 0, NA, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, NA, 0, 0, 0, 0, 0 , 不适用, 0, 1, 0, 不适用, 1, 0, 1, 0, 0, 0, 不适用, 0, 0, 0, 不适用, 不适用, 0)
T_Waves <- c(0, 1, 0, 1, 1, 0, 1, NA, 0, 0, NA, 0, 0, 0, NA, 1, 0, 0, 0, 0, 1, 0, NA , 0, 不适用, 0, 0, 不适用, 0, 0, 0, 0, 0, 0, 不适用, 1, 0, 0, 0, 1, 0, 0, 不适用, 0, 1, 0, 0, 0 , 0, 0, 1, 1, 不适用, 1, 1, 不适用, 0, 0, 0, 不适用, 0, 0, 0, 不适用, 0, 0)
数据 <- 数据帧(T_Darkness、T_Day、T_Light、T_Night、T_Rain、T_Rainbows、T_Snow、T_Storms、T_Waterfalls、T_Waves)
数据$cons <- 1
`
使用小鼠估算的数据
MI.Data <- 老鼠(数据,m=5,maxit=50,meth='pmm',seed=500)