2015-10-04 4 views
4

Проблема:Объединение учетных записей вмененных наборов данных

У меня есть набор данных с некоторыми отсутствующими значениями предиктора. Я хотел бы объединить модели glmer, которые были применены к этим наборам вменений. Я использую пакет mice для создания вменений (я также использовал amelia и mi тоже без успеха). Я бы хотел в первую очередь извлечь фиксированные эффекты.

Используя pool() функцию в пакете мышей возвращает ошибку:

Error in qhat[i, ] : incorrect number of dimensions 

Я пытался использовать и адаптировать ранее переписывают pool() функции здесь:

https://github.com/stefvanbuuren/mice/pull/5

Там в вероятно, очевидное решение, которое я пропускаю!

Вот пример:

# 1. create data (that can be replicated and converge later) 

data = data.frame(x1=c(rep("1",0.1*1000), rep("0",0.5*1000), 
         rep("1",0.3*1000), rep("0",0.1*1000)), 
        x2=c(rep("fact1",0.55*1000), rep("fact2",0.1*1000), 
         rep(NA,0.05*1000), rep("fact3",0.3*1000)), 
        centre=c(rep("city1",0.1*1000), rep("city2",0.2*1000), 
          rep("city3",0.15*1000), rep("city1",0.25*1000), 
          rep("city2",0.3*1000)       )) 

# 2. set factors 
data = sapply(data, as.factor) 

# 3. mice imputation 
library(mice) 
imp.data = mice(data, m=5, maxit=20, seed=1234, pri=F) 

# 4. apply the glmer function 
library(lme4) 
mice.fit = with(imp.data, glmer(x1~x2+(1|centre), family='binomial')) 

# 5. pool imputations together 
pooled.mi = pool(mice.fit) 

Другая функция Я применил на шаге 4 ниже, в надежде, что бы создать объект поддающийся pool().

mice.fit = lapply(imp.data$imp, function(d){ glmer(x1~x2+(1|centre), data=d, 
                family='binomial')  }) 

У меня есть работа вокруг, что связано с использованием модели мета-анализа, чтобы объединить результаты каждого из фиксированных эффектов glmer моделей. Это работает, но было бы намного лучше работать с моделью Rubin.

ответ

3

Это просто работает для меня после того, как сделать свою собственную вилку mice, потянув расширенную версию, упомянутую выше в него, и очистке его немного: попробуйте

devtools::install_github("bbolker/mice") 

и посмотреть, как ваш процесс идет после что. (Если это работает, кто-то должен отправить напоминание/новый запрос на тягу ...)

+0

Дорогой Бен, К сожалению, когда я пытаюсь выполнить вашу команду выше (версия R 3.3.0, mice_2.30, lme4_1.1-12), появляется следующее сообщение об ошибке «Ошибка: не удалось найти инструменты построения, необходимые для сборки мышей". С уважением – Kev

+0

вам необходимо установить Rtools. –

+0

Благодарим за быстрый ответ, но я использую mac (mac os 10.11.6). Насколько я знаю, для макинтоша нет Rtools. – Kev

0

Есть ли разница между объектом класса «glmerMod» и «lmerMod»? Я не знаком с этим пакетом lme4. Но если нет никакой разницы, вы можете изменить класс анализов mice.fit на «lmerMod», а затем он должен работать нормально.

Смежные вопросы