glm в R - какое значение pvalue соответствует качеству подгонки всей модели?

10

Я бегу glms в R (обобщенные линейные модели). Я думал, что знаю значения pvalue - пока не увидел, что вызов сводки для glm не дает вам превосходящего pvalue представителя модели в целом - по крайней мере, не там, где это делают линейные модели.

Мне интересно, если это дано как значение для Перехвата, в верхней части таблицы коэффициентов. Итак, в следующем примере, хотя Wind.speed..knots и canopy_density могут иметь значение для модели, как мы узнаем, значима ли сама модель? Как узнать, стоит ли доверять этим ценностям? Правильно ли я удивляюсь, что Pr (> | z |) для (Перехват) представляет значение модели? Эта модель значимые люди ??? Спасибо!

Я должен отметить, что выполнение F-теста не даст значения, поскольку я получаю сообщение об ошибке, в котором говорится, что выполнение F-тестов на биномиальном семействе неуместно

Call:
glm(formula = Empetrum_bin ~ Wind.speed..knots. + canopy_density, 
    family = binomial, data = CAIRNGORM)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.2327  -0.7167  -0.4302  -0.1855   2.3194  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)  
(Intercept)          1.8226     1.2030   1.515   0.1298  
Wind.speed..knots.  -0.5791     0.2628  -2.203   0.0276 *
canopy_density      -2.5733     1.1346  -2.268   0.0233 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 59.598  on 58  degrees of freedom
Residual deviance: 50.611  on 56  degrees of freedom
  (1 observation deleted due to missingness)
AIC: 56.611
Мартин
источник
1
Если я правильно помню в биномиальной регрессии, вы должны использовать тест на отклонение, также известный как логарифмический тест, который аналогичен F-критерию, используемому в линейной регрессии. Это -2 * (Null LL - Насыщенный LL), который соответствует распределению хи-квадрат. Хотя я не вижу модель журнала правдоподобия в вашем итоговом выводе. Это в объекте модели, но не в итоговом выводе?
SamPassmore

Ответы:

10

Вы можете либо сделать асимптотический тест хи-квадрат (59.598-50.611) по сравнению с хи-квадратом с (58-56) df, либо использовать anova()свой объект glm (который не выполняет тест напрямую, но по крайней мере вычисляет ( 59,598-50,611) и (58-56) для вас).

Это эффективный анализ отклонений .

Вот те вычисления, которые вы могли бы выполнить (для другого набора данных, поставляемого с R):

spray1=glm(count~spray,family=poisson,data=InsectSprays)  # full model
spray0=glm(count~1,family=poisson,data=InsectSprays)      # null model
with(anova(spray0,spray1),pchisq(Deviance,Df,lower.tail=FALSE)[2]) 

Что дает p-значение для асимптотического хи-квадратного статика, основанного на отклонении .

Или вы можете использовать devianceи df.residualфункцию , чтобы сделать это:

 pchisq(deviance(spray0)-deviance(spray1),
     df.residual(spray0)-df.residual(spray1),
    lower.tail=FALSE)

-

Многие люди используют сравнение между полной и нулевой моделью AIC (или, в некоторых случаях, возможно, сравнение между интересующей моделью и насыщенной моделью), чтобы выяснить, была ли модель лучше нулевой в этом смысле.

-

Правильно ли я удивляюсь, что Pr (> | z |) для (Перехват) представляет значение модели?

Это не так. Действительно, p-значение для перехвата обычно не представляет прямого интереса.

Если вы рассматриваете модель с параметром дисперсии, я видел, как некоторые люди спорили за проведение F-теста вместо асимптотического хи-квадрата; это соответствует людям, использующим t-тест вместо az на индивидуальных коэффициентах. Это вряд ли будет разумным приближением в небольших выборках. Я не видел вывода или моделирования, которые бы указывали на то, что F обязательно является подходящим приближением (т. Е. Лучше, чем асимптотический результат) в случае GLM в целом. Можно вполне существовать, но я этого не видел.

Glen_b - Восстановить Монику
источник
2
Вы также можете запустить Anova(fit, type = 2)из carбиблиотеки
Algorithmatic
3

Предполагая, что ваша модель находится в объекте 'fit', вы можете использовать этот код для выполнения теста на логарифмичность вашей биномиальной модели. Как вы отметили, F-тест не подходит, но этот тест проверит, если ваша модель прогнозируется лучше чем случайный.

LLR = -2 * (fit$null.deviance - fit$deviance)

Это формула для теста логарифмического отношения правдоподобия.

pchisq(LLR, 2, lower.tail = FALSE)

И это даст вам значение р. Хотя я не уверен на 100%, что это правильный df. Я почти уверен, что это разница в количестве параметров, из которых у вас есть 2 в вашей насыщенной модели и ни одного в нулевой модели, ergo df = 3 - 1 = 2. Но это может быть чем-то, что нужно учитывать.

SamPassmore
источник
1

Как упоминалось в @SamPassmore, вы можете использовать Analysis of Deviance (см., Например, car :: Anova () для чего-то похожего), чтобы получить что-то примерно эквивалентное тесту, но с . С этим связан тест отношения правдоподобия (сравнение вашей модели с нулевой моделью), но эти тесты работают только асимптотически.χ 2Fχ2

Кроме того, вы можете посмотреть на AIC, или связанные меры, такие как BIC.

Обратите внимание: для этого типа модели трудно получить что-то вроде p-значения по тем же причинам, по которым трудно определить значимое значение , см., Например, эту «проповедь» Дуга Бейтса .р2

Ливия
источник