Як отримати «загальний» p-значення та ефект ефекту для категоріального фактора у змішаній моделі (lme4)?


28

Я хотів би отримати p-значення та розмір ефекту незалежної категоріальної змінної (з декількома рівнями) - тобто "загальний", а не для кожного рівня окремо, як це нормальний вихід lme4у R. Це просто так про що люди повідомляють під час роботи програми ANOVA.

Як я можу це отримати?


Яку статистику ви точно хочете? Ви можете використовувати anova()функцію, щоб отримати таблицю anova з лінійними змішаними моделями так само, як і при лінійних моделях.
smillig

Я спробував anova (), але це дає мені значення Df, Sum Sq, Mean Sq і F значення. Я не бачу розміру ефекту та значення p. Чи маєте ви про це уявлення?
користувач3288202

1
Під розміром ефекту ви маєте на увазі щось на зразок еквівалента ? Щодо p-значень, то триває тривала і суттєва дискусія навколо їх оцінки та навколо їх впровадження . Погляньте на обговорення в цьому питанні для більш детальної інформації. R2lme4
smillig

Дякую за посилання, Smilig. Чи означає це, що оскільки існує проблема з розрахунком p значення, розмір ефекту від фактору в цілому також є проблемою?
користувач3288202

Вони не є безпосередньо пов'язаними питаннями. Однак слід пам’ятати, що лінійна змішана модель не поводиться точно так, як лінійна модель без випадкових ефектів, тому міра, яка може відповідати лінійній моделі, не обов'язково узагальнювати до змішаних моделей.
smillig

Відповіді:


48

Обидва згаданих вами концепції (p-значення та розміри ефектів лінійних змішаних моделей) мають властиві проблеми. Що стосується розміру ефекту , цитуючи Дуга Бейтса, оригінального автора lme4,

Припускаючи, що хочеться визначити міру , я думаю, міг би бути зроблений аргумент для трактування пенізованої залишкової суми квадратів з лінійної змішаної моделі таким же чином, як ми вважаємо залишкову суму квадратів від лінійної моделі. Або можна використовувати лише залишкову суму квадратів без штрафу або мінімальну залишкову суму квадратів, яку можна отримати за заданим набором термінів, що відповідає нескінченній матриці точності. Я не знаю, насправді. Це залежить від того, що ви намагаєтесь охарактеризувати.R2

Для отримання додаткової інформації ви можете переглянути цю тему , цю нитку та це повідомлення . По суті, проблема полягає в тому, що не існує узгодженого способу включення та розкладання дисперсії від випадкових ефектів у моделі. Однак є кілька стандартів, які використовуються. Якщо ви подивитеся на налаштування Wiki для / за списком розсилки r-sig-змішаних моделей , перелічено кілька підходів.

Один із запропонованих методів розглядає співвідношення між придатними та спостережуваними значеннями. Це може бути реалізовано в R, як це запропонував Jarrett Byrnes в одній з цих ниток:

r2.corr.mer <- function(m) {
  lmfit <-  lm(model.response(model.frame(m)) ~ fitted(m))
  summary(lmfit)$r.squared
}

Наприклад, скажімо, ми оцінюємо наступну лінійну змішану модель:

set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
                g = sample(letters[1:4], 250, replace=T)       )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
#    Data: d
# REML criterion at convergence: 744.4
# 
# Scaled residuals: 
#     Min      1Q  Median      3Q     Max 
# -2.7808 -0.6123 -0.0244  0.6330  3.5374 
# 
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr 
#  g        (Intercept) 0.006218 0.07885       
#           z           0.001318 0.03631  -1.00
#  Residual             1.121439 1.05898       
# Number of obs: 250, groups: g, 4
# 
# Fixed effects:
#             Estimate Std. Error t value
# (Intercept)  0.02180    0.07795   0.280
# x            0.04446    0.06980   0.637
# 
# Correlation of Fixed Effects:
#   (Intr)
# x -0.005

Ми можемо обчислити розмір ефекту за допомогою функції, визначеної вище:

r2.corr.mer(fm1)
# [1] 0.0160841

Аналогічна альтернатива рекомендується у статті Ронгхуй Сю , що називається , і може бути обчислена в R просто:Ω02

1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721  # Usually, it would be even closer to the value above

Щодо p-значень , це набагато більш спірне питання (принаймні, у R / lme4співтоваристві). Дивіться дискусії в питаннях тут , тут і тут серед багатьох інших. Знову посилаючись на сторінку Wiki, існує кілька підходів до перевірки гіпотез про ефекти в лінійних змішаних моделях. Перелічено від "найгіршого до найкращого" (на думку авторів сторінки Вікі, на яку, на мою думку, входить Дуг Бейтс, а також Бен Болкер, який робить тут великий внесок):

  • Wald Z-тести
  • Для збалансованих, вкладених LMM, де можна обчислити df: Wald t-тести
  • Тест на коефіцієнт ймовірності або встановивши модель, щоб параметр можна було ізолювати / відкидати (через anovaабо drop1), або за допомогою обчислення ймовірності профілів
  • MCMC або параметричні інтервали довіри завантаження

Вони рекомендують ланцюжок відбору проб Монте-Карло для ланцюга Маркова, а також перераховують низку можливостей для реалізації цього методу на основі псевдо та повністю байєсівських підходів, перелічених нижче.

Псевдо-байесівський:

  • Post-hoc вибірки, як правило (1) припускаючи плоскі пріори та (2), починаючи з MLE, можливо, використовуючи приблизну оцінку дисперсії-коваріації для вибору кандидата-розподілу
  • Via mcmcsamp(якщо вони доступні для вашої проблеми: тобто LMMS з простими випадковими ефект - не GLMMs або комплексними випадковими ефектами)
    Via pvals.fncв languageRпакеті, обгортка для mcmcsamp)
  • У AD Model Builder, можливо, через glmmADMBпакет (скористайтеся mcmc=TRUEопцією) або R2admbпакет (напишіть своє власне визначення моделі в AD Model Builder) або поза R
  • Через simфункцію з armпакета (імітує задній лише для коефіцієнтів бета (фіксованого ефекту)

Повністю байєсівські підходи:

  • Через MCMCglmmпакет
  • Використання glmmBUGS( інтерфейс обгортки WinBUGS / R )
  • Використання JAGS / WinBUGS / OpenBUGS тощо, через пакети rjags/ r2jags/ R2WinBUGS/BRugs

Для ілюстрації, щоб показати, як це може виглядати, нижче наведено MCMCglmmоцінку за допомогою MCMCglmmпакету, який ви побачите, що дає подібні результати, як у вищевказаній моделі та має деякі байєсівські p-значення:

library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval  = 10
#  Sample size  = 1000 
# 
#  DIC: 697.7438 
# 
#  G-structure:  ~us(z):g
# 
#       post.mean  l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268    397.6
# 
#  R-structure:  ~units
# 
#       post.mean l-95% CI u-95% CI eff.samp
# units    0.9466   0.7926    1.123     1000
# 
#  Location effects: y ~ x 
# 
#             post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept)  -0.04936 -0.17176  0.07502     1000 0.424
# x            -0.07955 -0.19648  0.05811     1000 0.214

Я сподіваюся, що це дещо допомагає. Я думаю, що найкраща порада для когось, починаючи з лінійних змішаних моделей і намагаючись їх оцінити в R, - це прочитати файли Wiki, звідки береться більшість цієї інформації. Це прекрасний ресурс для всіляких тем змішаних ефектів від базової до розширеної та від моделювання до побудови сюжетів.


Велике спасибі smilig. Тому я не можу повідомити про розмір ефекту для загальних параметрів.
користувач3288202

... і, звичайно, отриманий буде зміщений до одиниць вибірки (і це, без сумніву, умов) з більшою кількістю спостережень. r2
russellpierce

3
+6, вражаюче чіткий, всебічний та ретельно анотований.
gung - Відновіть Моніку

1
крім того, ви можете подивитися на afex-пакет і особливо на змішану функцію. дивіться тут
beginne

6

Що стосується обчислення значень ( p ) значень, Лука (2016) Оцінюючи значущість у лінійних моделях зі змішаними ефектами в R повідомляє, що оптимальним методом є або наближення Кенворда-Роджера, або Саттертвейта для ступенів свободи (доступне в R з такими пакетами, як lmerTestабо afex).

Анотація

Моделі зі змішаними ефектами все частіше використовуються при аналізі експериментальних даних. Однак у пакеті lme4 в R стандарти для оцінки значущості фіксованих ефектів у цих моделях (тобто отримання p-значень) дещо розпливчасті. Для цього є вагомі причини, але оскільки дослідникам, які використовують ці моделі, в багатьох випадках потрібно повідомляти p-значення, потрібен певний метод оцінки значущості виходу моделі. У цій роботі повідомляються результати моделювання, які показують, що два найпоширеніші методи оцінки значущості, використовуючи тести коефіцієнта ймовірності та застосовуючи розподіл z до значень Wald t з виходу моделі (t-as-z), є дещо антиконсервативними, особливо для менших розмірів вибірки. Інші методи оцінки значущості,Результати цих симуляцій дозволяють припустити, що коефіцієнти помилок типу 1 найбільш близькі до 0,05, коли моделі встановлюються за допомогою REML, а р-значення виводяться, використовуючи наближення Кенворда-Роджера або Саттертвайта, оскільки ці апроксимації дають прийнятні показники помилок типу 1 навіть для менших зразки.

(наголос додано)


4
+1 Дякуємо, що поділилися цим посиланням. Я лише коротко прокоментую, що наближення Кенворда-Роджера є в lmerTestупаковці.
Амеба каже: Поновіть Моніку

5

Я використовую lmerTestпакет. Це зручно включати оцінку р-значення у anova()висновку для моїх аналізів MLM, але не дає розміру ефекту з причин, наведених в інших публікаціях тут.


1
У моєму випадку я віддаю перевагу парному порівнянню з використанням lsmeans, оскільки це дає мені всі пари контрастів, включаючи значення p. Якщо я використовую lmerTest, мені доведеться запустити модель шість разів з різними базовими лініями, щоб побачити всі пари контрастів.
користувач3288202
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.