use*_*030 5 r updates r-mice imputation
将鼠标(链式方程的多重方程)包更新到版本 >3 后,我的代码停止工作。我希望从乘法插补数据集的线性回归中检索估计的方差-协方差矩阵。在 2.46.0 版本中,可以使用pool函数轻松访问该数量(小鼠将其称为t ) 。在 mouse >3.0 版本中,池函数不再返回完整的方差-协方差矩阵,它仅返回方差-协方差矩阵的对角元素。
这是一个工作示例:
首先创建一些包含缺失值的数据集:
set.seed(243)
iris$Sepal.Length[sample(length(iris$Sepal.Length), size = 5)] <- NA
iris$Sepal.Width[sample(length(iris$Sepal.Width), size = 5)] <- NA
iris$Petal.Length[sample(length(iris$Petal.Length), size = 5)] <- NA
iris$Species[sample(length(iris$Species), size = 5)] <- NA
Run Code Online (Sandbox Code Playgroud)
第二次乘法估算缺失数据
iris.mi <- mice(iris, 5)
Run Code Online (Sandbox Code Playgroud)
第三,对每个乘法插补数据集执行线性回归,将结果存储在 mira 对象中
mira.out <- with(iris.mi, lm(Sepal.Width ~ Sepal.Length + Petal.Length + Petal.Width + Species))
Run Code Online (Sandbox Code Playgroud)
第四,使用鲁宾规则汇集这些分析的结果。这是通过小鼠中的池函数实现的。
pool.out <- pool(analyses)
Run Code Online (Sandbox Code Playgroud)
在 mouse 包的 2.46.0 版本中,可以通过输入来检索完整的方差协方差矩阵t
pool.out$t
Run Code Online (Sandbox Code Playgroud)
在 mouse 包的较新版本 (>3.0) 中, pool.out$t 对象不存在。我们所能做的就是通过输入来检索差异
pool.out$pooled
Run Code Online (Sandbox Code Playgroud)
并选择标记为t的列。似乎无法访问完整的方差-协方差矩阵。所有可以访问的都是矩阵的对角元素,它们存储在pool.out$pooled data.frame 的 t列中。
我想访问完整的方差协方差矩阵,因为我需要计算具有多重插补数据的线性回归中交互项的边际效应和置信区间。这些置信区间可以通过仅使用方差-协方差矩阵的对角元素来近似,但使用完整的方差-协方差矩阵会更有意义。
我想知道为什么在 mouse 包中实现此更改,以及我如何能够访问新版本中的方差-协方差矩阵。
感谢您的帮助。