Як можна зробити тест гіпотези MCMC на регресійній моделі зі змішаним ефектом із випадковими нахилами?


12

Бібліотечна моваR забезпечує метод (pvals.fnc) для тестування значущості ефектів MCMC фіксованих ефектів в регресійній моделі змішаного ефекту, що підходить за допомогою lmer. Однак pvals.fnc видає помилку, коли модель lmer включає випадкові нахили.

Чи є спосіб зробити тест гіпотези MCMC таких моделей?
Якщо так, то як? (Щоб прийняти відповідь, має бути відпрацьований приклад на R) Якщо ні, чи є концептуальна / обчислювальна причина, чому немає способу?

Це питання може бути пов'язане з цим, але я не досить добре зрозумів його вміст, щоб бути певним.

Редагувати 1 : Доказ концепції, що показує, що pvals.fnc () все ще робить "щось" з lme4 моделями, але що нічого не робить із випадковими моделями нахилу.

library(lme4)
library(languageR)
#the example from pvals.fnc
data(primingHeid) 
# remove extreme outliers
primingHeid = primingHeid[primingHeid$RT < 7.1,]
# fit mixed-effects model
primingHeid.lmer = lmer(RT ~ RTtoPrime * ResponseToPrime + Condition + (1|Subject) + (1|Word), data = primingHeid)
mcmc = pvals.fnc(primingHeid.lmer, nsim=10000, withMCMC=TRUE)
#Subjects are in both conditions...
table(primingHeid$Subject,primingHeid$Condition)
#So I can fit a model that has a random slope of condition by participant
primingHeid.lmer.rs = lmer(RT ~ RTtoPrime * ResponseToPrime + Condition + (1+Condition|Subject) + (1|Word), data = primingHeid)
#However pvals.fnc fails here...
mcmc.rs = pvals.fnc(primingHeid.lmer.rs)

Він говорить: Помилка в pvals.fnc (primingHeid.lmer.rs): вибірка MCMC ще не реалізована в lme4_0.999375 для моделей з параметрами випадкової кореляції

Додатковий запитання: Чи працює pvals.fnc так, як очікувалося, для випадкової перехоплення? Чи слід довіряти результатам?


3
(1) Я здивований, що pvals.fnc все ще працює; Я думав, що mcmcsamp (на який покладається pvals.fnc) був нефункціональним у lme4 досить довгий час. Яку версію lme4 ви використовуєте? (2) Не існує жодної концептуальної причини, чому випадкові нахили повинні порушувати все, що хтось робить, щоб отримати тест на значимість (3) Поєднання значущості тестування з MCMC є трохи некогерентним, статистично, хоча я розумію, що прагнення до цього (отримання впевненості інтервалів більше підтримується) (4) єдиний зв'язок між цим Q та іншим - "MCMC" (тобто жоден, практично)
Бен Болкер

Використовувана вами версія lme4 залежить від комп'ютера, за яким я сиджу. Ця консоль має lme4_0.999375-32, але я її рідко використовую для аналізу. Я помітив кілька місяців тому, що pvals.fnc () розбивав результати lme4 після аналізу - я створив для цього роботу, але це, здається, вже не було проблемою. Мені доведеться найближчим часом задати ще одне питання щодо вашого 3-го пункту.
russellpierce

Відповіді:


4

Схоже, ваше повідомлення про помилку стосується не різних схилів, а кореляційних випадкових ефектів. Ви також можете підходити до неспоріднених; тобто модель змішаних ефектів з незалежними випадковими ефектами:

Linear mixed model fit by REML
Formula: Reaction ~ Days + (1 | Subject) + (0 + Days | Subject)
Data: sleepstudy

від http://www.stat.wisc.edu/~bates/IMPS2008/lme4D.pdf


8

Ось (принаймні більшість) рішення з MCMCglmm.

Спочатку встановіть еквівалентну модель лише для перехоплення з дисперсією MCMCglmm:

library(MCMCglmm)
primingHeid.MCMCglmm = MCMCglmm(fixed=RT ~ RTtoPrime * ResponseToPrime + Condition, 
                                random=~Subject+Word, data = primingHeid)

Порівнюючи підходи між MCMCglmmі lmer, перше завантаження моєї зламаної версії arm::coefplot:

source(url("http://www.math.mcmaster.ca/bolker/R/misc/coefplot_new.R"))
  ## combine estimates of fixed effects and variance components
pp  <- as.mcmc(with(primingHeid.MCMCglmm, cbind(Sol, VCV)))
  ## extract coefficient table
cc1 <- coeftab(primingHeid.MCMCglmm,ptype=c("fixef", "vcov"))
  ## strip fixed/vcov indicators to make names match with lmer output
rownames(cc1) <- gsub("(Sol|VCV).", "", rownames(cc1))
  ## fixed effects -- v. similar
coefplot(list(cc1[1:5,], primingHeid.lmer))
  ## variance components -- quite different.  Worth further exploration?
coefplot(list(cc1[6:8,], coeftab(primingHeid.lmer, ptype="vcov")),
         xlim=c(0,0.16), cex.pts=1.5)

Тепер спробуйте з випадковими нахилами:

primingHeid.rs.MCMCglmm = MCMCglmm(fixed=RT ~ RTtoPrime * ResponseToPrime + Condition,
                                   random=~Subject+Subject:Condition+Word, 
                                   data = primingHeid)        
summary(primingHeid.rs.MCMCglmm)

Це дає певні "значення MCMC p" ... вам доведеться дослідити для себе і побачити, чи має все це сенс ...


Дякую, Бен. Це виглядає так, що це направить мене в правильному напрямку. Мені просто потрібно провести деякий час, читаючи довідку та пов’язані статті для MCMCglmm, щоб побачити, чи можу я обернути голову навколо того, що відбувається.
russellpierce

1
Чи має модель випадкових нахилів у цьому випадку кореляцію між випадковим нахилом та випадковим перехопленням, або в цій рамці така ідея є безглуздою?
russellpierce

Я підключив ваш код тут, щоб полегшити його читання, @Ben; якщо вам це не подобається, сміливо повертайте його назад / мої вибачення.
gung - Відновіть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.