0

我很难解决这个问题。我有一个列表,results4其中包含 5 个元素,所有这些元素都是包中的mer对象zelig。这些mer对象是对ls.mixed五个估算数据集的每一个进行回归的结果。我正在尝试使用Rubin's Rules for Multiple Imputation组合结果。

我可以使用 提取系数和标准误差summary(results4[[1]])@coefs,它返回一个 16x3 向量(16 个变量,每个变量都有点估计、标准误差和 t 统计量)。

我正在尝试遍历五组结果并自动化组合点估计和标准误差的过程,但不幸的是,我似乎一直盯着它,没有出现任何解决方案。有什么建议么?

生成mer对象的代码如下(变量名已更改):

for (i in 1:5) {
  results4[i] <- zelig(DV ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 +
  V9 + V10 + V11 + V12 + V13 + V14 + V15 + tag(1 | L2),
  data = as.data.frame(w4[,,i]), model = "ls.mixed", REML = FALSE) 
}
4

1 回答 1

0

我不打算花时间编写多重插补规则(想要功劳的人可以我在这里展示的内容并以此为基础),但我认为你应该能够通过构建 16x3x5 来做你想做的事包含结果的数组:

resultsList <- lapply(results,function(x) summary(x)@coefs)
library(abind)
resultsArr <- abind(resultsList,along=3)

然后apply在边缘适当地使用。

可能还有一个plyr基于 - 的解决方案。

您也可以通过在前面定义数组并随时填写它来减少花哨的操作:

sumresults <- array(dim=c(16,3,5))
for (...) {
   ...
   sumresults[,,i] <- summary(results4[[i]])@coefs
}
于 2011-07-08T22:00:39.467 回答