Як оцінити придатність біноміального GLMM, оснащеного lme4 (> 1.0)?


19

У мене є GLMM з біноміальним розподілом і функцією logit-ланки, і я маю відчуття, що важливий аспект даних недостатньо добре представлений в моделі.

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

Зауважте, що я використовую нову версію lme4 ( версію розробки від GitHub ):

packageVersion("lme4")
## [1] ‘1.1.0’

Моє запитання: Як я перевіряю та інтерпретую залишки двочленних узагальнених лінійних змішаних моделей з функцією зв'язку logit?

Наступні дані представляють лише 17% моїх реальних даних, але встановлення вже займає 30 секунд на моїй машині, тому я залишаю це так:

require(lme4)
options(contrasts=c('contr.sum', 'contr.poly'))

dat <- read.table("http://pastebin.com/raw.php?i=vRy66Bif")
dat$V1 <- factor(dat$V1)

m1 <- glmer(true ~ distance*(consequent+direction+dist)^2 + (direction+dist|V1), dat, family = binomial)

Найпростіший сюжет ( ?plot.merMod) створює наступне:

plot(m1)

введіть тут опис зображення

Це вже мені щось говорить?


1
Я, можливо, знайду час повернутися і зламати це, але думаю, що загальна відповідь полягає в тому, що важко зробити велику справу із залишками бінарних моделей. Моє головне відкриття так далеко від наїзду на трохи на ділянці у вас є вище, і додавання згладженої лінії ( з використанням type=c("p","smooth")в plot.merMod, або переміщенні , ggplotякщо ви хочете , довірчі інтервали) в тому , що вона виглядає як є невеликий , але важливий шаблон, який вам можливо, вдасться виправити, скориставшись іншою функцією зв'язку. Ось поки що ...
Бен Болкер

@BenBolker Дякую І чи можете ви не просто опублікувати це та посилання на freakonomics як відповідь на запитання? Тоді принаймні ви отримаєте 150 балів.
Генрік

3
Я знайшов цю тему резюме, stats.stackexchange.com/questions/63566/… , дуже корисною. У публікації роз'яснюється, як створити сюжет залишків у Р.
Нова

@Henrik Чи поясніть мені, будь ласка, як працює модель true ~ distance*(consequent+direction+dist)^2 + (direction+dist|V1)? Чи буду оцінка віддання моделі взаємодії distance*consequent, distance*direction, distance*distі нахилу directionі dist яка змінюється в залежності V1? Що означає квадрат у (consequent+direction+dist)^2позначенні?
ABC

@Henrik Я запустив ваш код, і він показує Warning message: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model failed to converge with max|grad| = 0.123941 (tol = 0.001, component 1). Чому?
ABC

Відповіді:


18

Коротка відповідь, оскільки у мене немає часу на краще: це складна проблема; двійкові дані майже завжди потребують певного вирівнювання або згладжування для оцінки корисності. Було дещо корисно використовувати fortify.lmerModlme4експериментального) спільно з, ggplot2особливо geom_smooth()для того, щоб намалювати по суті той самий графік, який є залишковим у порівнянні, який у вас є вище, але з довірчими інтервалами (я також звузив обмеження y, щоб трохи збільшити масштаб ( -5,5) регіон). Це дозволило запропонувати деякі систематичні зміни, які можна було б покращити за допомогою налаштування функції зв’язку. (Я також спробував побудувати залишки проти інших прогнозів, але це було не надто корисно.)

Я спробував підлаштувати модель з усіма тристоронніми взаємодіями, але це не мало поліпшення ні у відхиленні, ні у формі згладженої залишкової кривої.

(логістичний(х))λλ

## uses (fragile) internal C calls for speed; could use plogis(),
##  qlogis() for readability and stability instead
logitpower <- function(lambda) {
    L <- list(linkfun=function(mu)
              .Call(stats:::C_logit_link,mu^(1/lambda),PACKAGE="stats"),
              linkinv=function(eta)
              .Call(stats:::C_logit_linkinv,eta,PACKAGE="stats")^lambda,
              mu.eta=function(eta) {
                  mu <-  .Call(stats:::C_logit_linkinv,eta,PACKAGE="stats")
                  mu.eta <-  .Call(stats:::C_logit_mu_eta,eta,PACKAGE="stats")
                  lambda*mu^(lambda-1)*mu.eta
              },
              valideta = function(eta) TRUE ,
              name=paste0("logit-power(",lambda,")"))
    class(L) <- "link-glm"
    L
}

λ

Дивіться також: http://freakonometrics.hypotheses.org/8210


3

Це дуже поширена тема на курсах біостатистики / епідеміології, і для неї є не дуже хороші рішення, в основному це обумовлено характером моделі. Часто рішенням було уникнути детальної діагностики з використанням залишків.

Бен вже писав, що діагностика часто вимагає або збивання, або згладжування. Бінінг залишків доступний (або був) доступний у складі пакету R, див., Наприклад, цей потік . Крім того, є якась робота, яка використовує передбачувані ймовірності; одна з можливостей - це роздільний сюжет, про який ми говорили раніше в цій темі . Вони можуть чи не можуть безпосередньо допомогти у вашому випадку, але можуть допомогти в тлумаченні.


-1

Ви можете використовувати AIC замість залишкових ділянок, щоб перевірити відповідність моделі. Команда в R: AIC (model1) дасть вам число ... тож вам потрібно порівняти це з іншою моделлю (з більшою кількістю предикторів, наприклад) - AIC (model2), яка дасть ще одне число. Порівняйте два виходи, і вам захочеться модель з нижчим значенням AIC.

До речі, такі речі, як AIC та коефіцієнт вірогідності журналу, вже перераховані, коли ви отримаєте підсумок своєї моделі glmer, і обидва дадуть вам корисну інформацію про відповідність моделі. Ви хочете, щоб велике від'ємне число коефіцієнта ймовірності журналу відхилило нульову гіпотезу.


3
Це було б корисніше, якби ОП намагалася порівнювати конкуруючі моделі, але, схоже, це не те, що вони намагаються зробити, і AIC не може бути використаний для оцінки абсолютної придатності моделі.
Патрік Куломбе

-3

Встановлений та залишковий графік не повинен відображати жодного (чіткого) малюнка. На графіку видно, що модель не дуже добре працює з даними. Див. Http://www.r-bloggers.com/model-validation-interpreting-residual-plots/


1
Я думаю, що ви помиляєтеся, певна схема передбачається функцією посилання: stats.stackexchange.com/q/25068/442
Генрік,

1
Можливо корисно: freakonometrics.hypotheses.org/8210
Бен Болкер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.