我正在使用Amelia来估算缺失值 .
虽然我可以使用Zelig和Amelia做一些计算......
如何使用这些软件包查找新估算数据的池化均值和标准差?
library(Amelia)
library(Zelig)
n= 100
x1= rnorm(n,0,1) #random normal distribution
x2= .4*x1+rnorm(n,0,sqrt(1-.4)^2) #x2 is correlated with x1, r=.4
x1= ifelse(rbinom(n,1,.2)==1,NA,x1) #randomly creating missing values
d= data.frame(cbind(x1,x2))
m=5 #set 5 imputed data frames
d.imp=amelia(d,m=m) #imputed data
summary(d.imp) #provides summary of imputation process
1 回答
我无法弄清楚如何在注释中格式化代码,所以在这里 .
d.imp $ imputations给出了所有插补数据集的列表 . 您可以使用该列表,但是您可以通过列来获取均值和sds,然后根据需要进行池化 . 与相关性相同 .
编辑:在评论中进行一些讨论之后,我看到你正在寻找的是如何使用鲁宾的规则来组合结果,例如,Amelia生成的估算数据集的平均值 . 我认为你应该在你的帖子的 Headers 和正文中澄清你正在寻找的是如何将结果与估算相结合,以便在使用包Amelia进行输入后,使用Rubin的规则获得适当的标准误差 . 从 Headers 或原始描述中不清楚这一点 . “汇集”可能意味着不同的东西,特别是w.r.t.差异 .
mi.meld函数正在寻找来自每个插补的q估计矩阵,相应se估计的se矩阵和逻辑byrow参数 . 有关示例,请参阅?mi.meld . 在您的情况下,您希望q和se矩阵中每个插补数据集的样本均值和se_hat(样本均值)分别传递给mi_meld .
应该得到你想要的东西 . 对于除均值之外的其他统计数据,您需要以分析方式(如果可用)或通过引导(如果不是)来获取SE .