Я знайшов формулу для псевдо у книзі Розширення лінійної моделі з R, Джуліан Дж. Фаравей (стор. 59).
Це загальна формула псевдо для GLM?
Я знайшов формулу для псевдо у книзі Розширення лінійної моделі з R, Джуліан Дж. Фаравей (стор. 59).
Це загальна формула псевдо для GLM?
Відповіді:
Існує велика кількість псевдо- s для GLiM. Відмінна статистика UCLA допомогу сайт має всебічний огляд їх тут . Та, яку ви перераховуєте, називається псевдо- Макфаддена . Що стосується типології UCLA, вона подібна до в тому сенсі, що вона індексує вдосконалення пристосованої моделі над нульовою моделлю. Деякі статистичні програми, зокрема SPSS, якщо я правильно пригадую, друкують псевдо- за замовчуванням за результатами деяких аналізів, таких як логістична регресія, тому я підозрюю, що це досить часто, хоча Cox & Snell і Nagelkerke псевдо- с може бути тим більше. Однак псевдо- Макфаддена не має всіх властивостейR 2 R 2 R 2 R 2 R 2 R 2 R 2 (ніякого псевдо- не робить). Якщо хтось зацікавлений у використанні псевдо- для розуміння моделі, я настійно рекомендую прочитати цю чудову нитку CV: Який псевдо- міру потрібно повідомити про логістичну регресію (Cox & Snell або Nagelkerke)? (Для чого це коштує, самого слизький , ніж люди розуміють, велика демонстрацію , яку можна побачити в @ whuber Відповість тут: Is ? Корисно або небезпечно )
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
summary.glm
. Що стосується того, чи є загальним таке визначення , потрібно буде якесь опитування. Я б сказав, що це не особливо рідко, оскільки я це бачив і раніше, але не те, що обов'язково широко використовується.
Запропоновану вами формулу запропонували Маддала (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, доступна на воротах досліджень ... ось посилання:
Я сподіваюся, що це допоможе.
1-summary(GLM)$deviance/summary(GLM)$null.deviance
і ви побачите, що R2 відповідає значенню R2 звичайної регресії OLS, тому наведена вище відповідь правильна! Дивіться також мою публікацію тут - stats.stackexchange.com/questions/412580/…
Пакет 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
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.