Как интерпретировать коэффициенты многомерной смешанной модели в lme4 без общего перехвата?

10

Я пытаюсь вписать многомерную (то есть множественную реакцию) смешанную модель R. Помимо ASReml-rи SabreRпакетов (которые требуют внешнего программного обеспечения), то кажется , что это возможно только в MCMCglmm. В документе, который сопровождает MCMCglmmпакет (стр. 6), Джаррод Хэдфилд описывает процесс подгонки такой модели, например, преобразования нескольких переменных ответа в одну переменную длинного формата и последующего подавления общего перехвата. Насколько я понимаю, подавление перехвата меняет интерпретацию коэффициента для каждого уровня переменной отклика на среднее значение для этого уровня. Учитывая вышесказанное, возможно ли использовать многомерную смешанную модель, используя lme4? Например:

data(mtcars)
library(reshape2)
mtcars <- melt(mtcars, measure.vars = c("drat", "mpg", "hp"))
library(lme4)
m1 <- lmer(value ~ -1 + variable:gear + variable:carb + (1 | factor(carb)),
    data = mtcars)
summary(m1)
#  Linear mixed model fit by REML 
#  Formula: value ~ -1 + variable:gear + variable:carb + (1 | factor(carb)) 
#     Data: mtcars 
#   AIC   BIC logLik deviance REMLdev
#   913 933.5 -448.5    920.2     897
#  Random effects:
#   Groups       Name        Variance Std.Dev.
#   factor(carb) (Intercept) 509.89   22.581  
#   Residual                 796.21   28.217  
#  Number of obs: 96, groups: factor(carb), 6
#  
#  Fixed effects:
#                    Estimate Std. Error t value
#  variabledrat:gear  -7.6411     4.4054  -1.734
#  variablempg:gear   -1.2401     4.4054  -0.281
#  variablehp:gear     0.7485     4.4054   0.170
#  variabledrat:carb   5.9783     4.7333   1.263
#  variablempg:carb    3.3779     4.7333   0.714
#  variablehp:carb    43.6594     4.7333   9.224

Как можно интерпретировать коэффициенты в этой модели? Будет ли этот метод работать для обобщенных линейных смешанных моделей?

Крис
источник

Ответы:

2

Ваша идея хороша, но в вашем примере вы забыли смоделировать разные перехваты и разные случайные отклонения для каждой черты, поэтому ваш вывод не интерпретируется как есть. Правильная модель будет:

m1 <- lmer(value ~ -1 + variable + variable:gear + variable:carb + (0 + variable | factor(carb))

В этом случае вы получите оценки фиксированных эффектов для каждой переменной (например, variabledrat:gearвлияние предиктора gearна ответ drat), но вы также получите перехваты для каждой переменной (например, variabledratдля перехвата ответа drat) и случайное значение. дисперсия каждой переменной и корреляции между переменными:

Groups       Name         Std.Dev. Corr     
 factor(carb) variabledrat 23.80             
              variablempg  24.27    0.20     
              variablehp   23.80    0.00 0.00
 Residual                  23.80       

Более подробное описание этих методов было записано Беном Болкером , а также использованием MCMCglmmв байесовской структуре. Другой новый пакет mcglmтакже может обрабатывать многовариантные модели, даже с ненормальными ответами, но вы должны кодировать свои матрицы случайного проектирования. Учебник должен быть доступен в ближайшее время (см. Страницу справки R).

Шарлотта Р
источник