Формула псевдо R для ГЛМ


28

Я знайшов формулу для псевдо у книзі Розширення лінійної моделі з R, Джуліан Дж. Фаравей (стор. 59).R2

1ResidualDevianceNullDeviance
.

Це загальна формула псевдо для GLM?R2

Відповіді:


22

Існує велика кількість псевдо- s для GLiM. Відмінна статистика UCLA допомогу сайт має всебічний огляд їх тут . Та, яку ви перераховуєте, називається псевдо- Макфаддена . Що стосується типології UCLA, вона подібна до в тому сенсі, що вона індексує вдосконалення пристосованої моделі над нульовою моделлю. Деякі статистичні програми, зокрема SPSS, якщо я правильно пригадую, друкують псевдо- за замовчуванням за результатами деяких аналізів, таких як логістична регресія, тому я підозрюю, що це досить часто, хоча Cox & Snell і Nagelkerke псевдо- с може бути тим більше. Однак псевдо- Макфаддена не має всіх властивостейR 2 R 2 R 2 R 2 R 2 R 2 R 2R2R2R2R2R2R2R2 (ніякого псевдо- не робить). Якщо хтось зацікавлений у використанні псевдо- для розуміння моделі, я настійно рекомендую прочитати цю чудову нитку CV: Який псевдо- міру потрібно повідомити про логістичну регресію (Cox & Snell або Nagelkerke)? (Для чого це коштує, самого слизький , ніж люди розуміють, велика демонстрацію , яку можна побачити в @ whuber Відповість тут: Is ? Корисно або небезпечно ) R2R2R2R2R2


Цікаво, чи всі ці псевдо-R2 розроблені спеціально для логістичної регресії? Або вони узагальнюють також для пуассону та гамма-гльмів? Я знайшов різні R2-формули для кожного можливого GLM вColin Cameron, A., & Windmeijer, F. A. (1997). An R-squared measure of goodness of fit for some common nonlinear regression models. Journal of Econometrics, 77(2), 329-342.
Єнс

@Jens, деякі з них, звичайно, здаються специфічними для LR, але інші використовують відхилення, яке можна отримати від будь-якого GLiM.
gung - Відновіть Моніку

1
Зауважимо, що Макфаддена часто визначається з точки зору вірогідності журналу, яка визначається лише до постійної добавки, а не відхилення, як у питанні ОП. Без уточнення константи добавки Макфаддена недостатньо визначено. Відхилення - це один унікальний вибір постійної добавки, який, на мій погляд, є найбільш підходящим вибором, якщо узагальнення має бути порівнянне з з лінійних моделей. R 2 R 2R2R2R2
NRH

Зважаючи на те, що GLM підходять, використовуючи ітераційно зважені найменші квадрати, як у bwlewis.github.io/GLM , яке б заперечення було насправді для обчислення зваженого R2 за шкалою зв'язку GLM, використовуючи 1 / дисперсійні ваги як ваги (що GLM дає назад у гніздах гнізда в glm fit)?
Tom Wenseleers

@TomWenseleers, ви можете робити так, як вам подобається, але основні аргументи містяться в темі "Який псевдо- ... повідомити ...", яку я пов'язав, особливо ймовірність відповіді . R2
gung - Відновіть Моніку

9

R дає нульове та залишкове відхилення у висновку до glmтого, щоб можна було зробити саме подібне порівняння (див. Два останні рядки нижче).

> x = log(1:10)

> y = 1:10

> glm(y ~ x, family = poisson)

>Call:  glm(formula = y ~ x, family = poisson)

Coefficients:
(Intercept)            x  
  5.564e-13    1.000e+00  

Degrees of Freedom: 9 Total (i.e. Null);  8 Residual
Null Deviance:      16.64 
Residual Deviance: 2.887e-15    AIC: 37.97

Ви також можете витягнути ці значення з об'єкта за допомогою model$null.devianceіmodel$deviance


Ага, гаразд. Я просто відповідав на запитання, як написано. Я б додав більше, але я не на 100% впевнений, як обчислюється нульове відхилення (це має відношення до вірогідності журналу насиченої моделі, але я не пам'ятаю достатньо деталей про насиченість, щоб бути впевненим що я міг би дати добрі інтуїції)
Девід Дж. Харріс

Я не маю цього у виведенні glm (сімейні можливості чи квазіпоассон).
Цікаво

@Tomas дивіться мої зміни. Я не знаю, чи помилявся я 2 роки тому чи змінився типовий вихід з тих пір.
Девід Дж. Харріс

Інформацію про Томаша виробляє summary.glm. Що стосується того, чи є загальним таке визначення , потрібно буде якесь опитування. Я б сказав, що це не особливо рідко, оскільки я це бачив і раніше, але не те, що обов'язково широко використовується. R2
Glen_b -Встановіть Моніку

1
Прочитайте питання. Як ви думаєте, ви на це відповідаєте? Питання було не в тому, «де я можу взяти компоненти формули?».
Цікаво

6

Запропоновану вами формулу запропонували Маддала (1983) та Мегі (1990) для оцінки R у квадраті на логістичній моделі. Тому я не думаю, що це застосовно до всіх моделей glm (див. Книгу «Сучасні методи регресії» Томаса П. Райана на сторінці 266).

Якщо ви зробите підроблений набір даних, ви побачите, що це заниження R квадрата ... для гауссового glm на приклад.

Я думаю, що для gaussian glm ви можете використовувати основну (lm) R формулу квадрата ...

R2gauss<- function(y,model){
    moy<-mean(y)
    N<- length(y)
    p<-length(model$coefficients)-1
    SSres<- sum((y-predict(model))^2)
    SStot<-sum((y-moy)^2)
    R2<-1-(SSres/SStot)
    Rajust<-1-(((1-R2)*(N-1))/(N-p-1))
    return(data.frame(R2,Rajust,SSres,SStot))
}

А для логістичного (або двочленного сімейства в r) я би використав запропоновану вами формулу ...

    R2logit<- function(y,model){
    R2<- 1-(model$deviance/model$null.deviance)
    return(R2)
    }

Поки що для poisson glm я використав рівняння з цієї посади.

/programming/23067475/how-do-i-obtain-pseudo-r2-measures-in-stata-when-using-glm-regression

Також є чудова стаття про псевдо R2, доступна на воротах досліджень ... ось посилання:

https://www.researchgate.net/publication/222802021_Pseudo_R-squared_measures_for_Poisson_regression_models_with_over-_or_underdispersion

Я сподіваюся, що це допоможе.


Просто встановіть модель GLM з family = gaussian (link = ідентичність) і перевірте значення, 1-summary(GLM)$deviance/summary(GLM)$null.devianceі ви побачите, що R2 відповідає значенню R2 звичайної регресії OLS, тому наведена вище відповідь правильна! Дивіться також мою публікацію тут - stats.stackexchange.com/questions/412580/…
Том Вінгелер

3

Пакет R modEvAобчислює D-Squared , 1 - (mod$deviance/mod$null.deviance)як згадував Девід Дж. Гарріс

set.seed(1)
data <- data.frame(y=rpois(n=10, lambda=exp(1 + 0.2 * x)), x=runif(n=10, min=0, max=1.5))

mod <- glm(y~x,data,family = poisson)

1- (mod$deviance/mod$null.deviance)
[1] 0.01133757
library(modEvA);modEvA::Dsquared(mod)
[1] 0.01133757

Відхилення моделі D-Squared або пояснення моделі введено в (Guisan & Zimmermann 2000) https://doi.org/10.1016/S0304-3800(00)00354-9

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