Цикл извлечения коэффициентов из многократных вмененных объектов - PullRequest
0 голосов
/ 09 июля 2011

Мне трудно обдумать эту проблему.У меня есть список, results4, который содержит 5 элементов, каждый из которых является mer объектами из пакета zelig.Объекты mer являются результатом ls.mixed регрессий в каждом из пяти вмененных наборов данных.Я пытаюсь объединить результаты, используя Правила Рубина для множественного вменения .

Я могу извлечь коэффициенты и стандартные ошибки, используя 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) 
}

1 Ответ

0 голосов
/ 09 июля 2011

Я не собираюсь тратить время на то, чтобы кодировать правила множественного вменения (кто-то, кто хочет получить кредит, может показать то, что я здесь показываю и опираться на него), но я думаю, что вы сможете сделать то, что вы хотите,создание массива 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
}
...