glm в R - яке значення представляє корисність цілої моделі?


10

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

Мені цікаво, чи це вказано як значення для перехоплення вгорі таблиці коефіцієнтів. Отже, у наступному прикладі, хоча Wind.speed..knots та canopy_density можуть бути важливими для моделі, як ми можемо знати, чи є сама модель вагомою? Як я можу знати, чи варто довіряти цим цінностям? Чи правильно я задаюся питанням, що Pr (> | z |) для (Intercept) представляє значення моделі? Чи є ця модель значущими людьми ??? Дякую!

Слід зазначити, що проведення 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 - Sat sat LL), що відповідає розподілу chi-квадрата. Хоча я не бачу ймовірності входу в журнал у вашому підсумку. Це в об'єкті моделі, але не в підсумковому висновку?
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]) 

Яке дає р-значення для асимптотичної квадратної статичної статики на основі відхилення .

Або ви можете скористатися функціями devianceта df.residualдля цього:

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

-

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

-

Чи правильно я задаюся питанням, що Pr (> | z |) для (Intercept) представляє значення моделі?

Це не так. Дійсно, значення перехоплення p зазвичай не представляє прямого інтересу.

Якщо ви розглядаєте модель з параметром дисперсії, я бачив, як деякі люди сперечаються робити F-тест замість асимптотичного квадратика; він відповідає людям, які використовують t-тест замість az на окремих коефіцієнтах. Можливо, це не буде розумним наближенням у малих зразках. Я не бачив виведення або моделювання, яке б припускало, що F є обов'язково підходящим наближенням (тобто кращим, ніж асимптотичний результат) у випадку з ГЛМ взагалі. Можливо, існує, але я цього не бачив.


2
Ви також можете бігти Anova(fit, type = 2)з carбібліотеки
Алгоритмічний

3

Якщо припустити, що ваша модель знаходиться в об'єкті 'fit', ви можете використовувати цей код для проведення тесту на життєздатність на вашій біноміальній моделі. Як ви зазначили, F-тест не підходить, але цей тест перевірятиме, якщо ваша модель прогнозується краще ніж випадкові.

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

Це формула для тесту коефіцієнта вірогідності ймовірності.

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

І це дасть вам p-значення. Я не вважаю, що я на 100% впевнений, що це правильний df. Я впевнений, що це різниця в кількості параметрів, з яких у вашій насиченій моделі є 2, а в моделі Null - жоден, ergo df = 3 - 1 = 2. Але це може бути щось далі.


1

Як згадував @SamPassmore, ви можете використовувати Analysis of Deviance (див., Наприклад, автомобіль :: Anova () для чогось подібного-ish), щоб отримати щось приблизно еквівалентне -test, але з розподілом . З цим пов'язаний тест на коефіцієнт ймовірності (порівняння вашої моделі з нульовою моделлю), але ці тести працюють добре як асимптотично.χ 2Fχ2

Крім того, ви можете подивитися на AIC або пов'язані заходи, такі як BIC.

Зверніть увагу, проте: для цього типу моделі важко отримати щось на зразок p-значення з тих же причин, що важко визначити значущу величину , див., Наприклад, цю "проповідь" Дуга Бейтса .R2

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