R Zelig&;阿米莉亚

R Zelig&;阿米莉亚,r,r-zelig,R,R Zelig,我用Amelia来估算缺失的值 虽然我能用Zelig和Amelia做一些计算 我如何使用这些数据包找到新插补数据的汇总平均值和标准偏差 我不知道如何在注释中设置代码的格式,所以就在这里 foo <- function(x, fcn) apply(x, 2, fcn) lapply(d.imp$imputations, foo, fcn = mean) lapply(d.imp$imputations, foo, fcn = sd) 编辑:在评论中进行了一些讨论之后,我发现您正在寻找的是如

我用Amelia来估算缺失的值

虽然我能用Zelig和Amelia做一些计算

我如何使用这些数据包找到新插补数据的汇总平均值和标准偏差


我不知道如何在注释中设置代码的格式,所以就在这里

foo <- function(x, fcn) apply(x, 2, fcn)
lapply(d.imp$imputations, foo, fcn = mean)
lapply(d.imp$imputations, foo, fcn = sd)
编辑:在评论中进行了一些讨论之后,我发现您正在寻找的是如何使用Rubin规则组合结果,例如,Amelia生成的插补数据集的平均值。我认为你应该在文章的标题和正文中澄清,你所寻找的是如何在使用Amelia软件包进行插补后,将插补结果与Rubin规则相结合,以获得适当的标准误差。从标题或原始描述来看,这并不清楚。“联营”可能意味着不同的事情,特别是w.r.t.差异

mi.meld函数正在寻找每个插补的估计值的q矩阵、相应se估计值的se矩阵和逻辑byrow参数。参见?mi.meld以获取示例。在您的例子中,您希望q和se矩阵中每个插补数据集的样本均值和se_hat(样本均值)分别传递给Miu meld

q <- t(sapply(d.imp$imputations, foo, fcn = mean))
se <- t(sapply(d.imp$imputations, foo, fcn = sd)) / sqrt(100)
output <- mi.meld(q = q, se = se, byrow = TRUE)

q你是在寻找比foo更多的东西吗?是的,我想成为一个能够计算合并平均数和sds的人…抱歉,如果可能的话,这是一个开始,但这些值需要按照鲁宾的规则在插补之间合并,以便捕获插补之间和插补内的方差
mi.meld
提供了一个开始,但不支持这些统计数据。您的问题是如何“找到新模拟数据的汇总平均值和标准偏差”。我回答了那个问题。现在您似乎有一个不同的问题,即如何对amelia生成的插补数据进行后处理,以便应用mi.meld,以便根据Rubin的规则获得适当的SEs。如果是这样的话,我建议你用一个可复制的例子问一个新问题。对不起,你的代码只计算参数估计的平均值,不计算合并估计值,这是我的问题。
lapply(d.imp$imputations, cor)
q <- t(sapply(d.imp$imputations, foo, fcn = mean))
se <- t(sapply(d.imp$imputations, foo, fcn = sd)) / sqrt(100)
output <- mi.meld(q = q, se = se, byrow = TRUE)