Fórmula Pseudo R al cuadrado para GLM

Respuestas:

22

Hay una gran cantidad de pseudo- s para GLiMs. El excelente sitio de ayuda de estadísticas de UCLA tiene una descripción completa de ellos aquí . El que enumeras se llama pseudo- McFadden . En relación con la tipología de UCLA, es como en el sentido de que indexa la mejora del modelo ajustado sobre el modelo nulo. Algunos programas estadísticos, especialmente SPSS, si recuerdo correctamente, imprimen el pseudo- McFadden de forma predeterminada con los resultados de algunos análisis como la regresión logística, por lo que sospecho que es bastante común, aunque el pseudo- Cox & Snell y Nagelkerke s puede ser aún más. Sin embargo, el pseudo- McFadden no tiene todas las propiedades deR2R2R2R2R2R2R2 (no hay pseudo- ). Si alguien está interesado en usar un pseudo- para comprender un modelo, le recomiendo leer este excelente hilo CV: ¿Qué medida de pseudo- es la que se debe informar para la regresión logística (Cox & Snell o Nagelkerke)? (Por lo que vale, sí es más resbaladizo de lo que la gente cree, una gran demostración de lo que se puede ver en la respuesta de @ whuber aquí: ¿ útil o peligroso? ) R2R2R2R2R2

gung - Restablece a Monica
fuente
Me pregunto si todos estos pseudo-R2 se han diseñado específicamente para la regresión logística únicamente. ¿O se generalizan también para poisson y gamma-glms? He encontrado diferente R2-fórmula para cada posible GLM enColin 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
@Jens, algunos de ellos ciertamente parecen específicos de LR, pero otros usan la desviación, que puede obtener de cualquier GLiM.
gung - Restablece a Monica
1
Tenga en cuenta que el McFadden a menudo se define en términos de la probabilidad logarítmica, que solo se define hasta una constante aditiva, y no la desviación como en la pregunta del OP. Sin una especificación de la constante aditiva, el McFadden no está bien definido. La desviación es una opción única de la constante aditiva, que en mi opinión es la opción más apropiada, si la generalización debe ser comparable con de los modelos lineales. R2R2R2
NRH
Dado que los GLM se ajustan utilizando mínimos cuadrados repesados ​​de forma iterativa, como en bwlewis.github.io/GLM , ¿cuál sería la objeción en realidad de calcular un R2 ponderado en la escala de enlace GLM, utilizando pesos de 1 / varianza como pesos (que glm devuelve en las ranuras de los pesos en un glm fit)?
Tom Wenseleers
@TomWenseleers, puede hacer lo que quiera, pero los argumentos básicos están en el hilo "Qué pseudo- ... para informar ..." que vinculé, especialmente la respuesta de probabilidad lógica . R2
gung - Restablece a Monica
9

R proporciona una desviación nula y residual en la salida para glmque pueda hacer exactamente este tipo de comparación (consulte las dos últimas líneas a continuación).

> 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

También puede extraer estos valores del objeto con model$null.devianceymodel$deviance

David J. Harris
fuente
Ah bien. Estaba respondiendo la pregunta tal como estaba escrita. Hubiera agregado más, pero no estoy 100% seguro de cómo se calcula la desviación nula (tiene algo que ver con la probabilidad de registro de un modelo saturado, pero no recuerdo suficientes detalles sobre la saturación para tener confianza) que podría dar buenas intuiciones)
David J. Harris
No lo tengo en la salida glm (posición familiar o cuasipoisson).
Curioso
@Tomas ve mis ediciones. No sé si me equivoqué hace 2 años o si la salida predeterminada ha cambiado desde entonces.
David J. Harris
summary.glmR2
1
Lea la pregunta. ¿Crees que lo contestas? La pregunta no era "¿dónde puedo obtener los componentes de la fórmula?".
Curioso
6

La fórmula que propuso ha sido propuesta por Maddala (1983) y Magee (1990) para estimar R al cuadrado en el modelo logístico. Por lo tanto, no creo que sea aplicable a todos los modelos glm (vea el libro Métodos de regresión modernos de Thomas P. Ryan en la página 266).

Si crea un conjunto de datos falso, verá que subestima la R al cuadrado ... por ejemplo, gaussian glm.

Creo que para una película gaussiana puedes usar la fórmula básica R (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))
}

Y para la logística (o familia binomial en r) usaría la fórmula que propusiste ...

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

Hasta ahora, para Poisson Glm, he usado la ecuación de esta publicación.

https://stackoverflow.com/questions/23067475/how-do-i-obtain-pseudo-r2-measures-in-stata-when-using-glm-regression

También hay un gran artículo sobre pseudo R2 disponible en las puertas de investigación ... aquí está el enlace:

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

Espero esta ayuda

Nico Coallier
fuente
Simplemente ajuste un modelo GLM con family = gaussian (link = identity) y verifique el valor de 1-summary(GLM)$deviance/summary(GLM)$null.deviancey verá que el R2 coincide con el valor R2 de una regresión OLS regular, por lo que la respuesta anterior es correcta. Vea también mi publicación aquí: stats.stackexchange.com/questions/412580/…
Tom Wenseleers
3

El paquete R modEvAcalcula D-Squared como 1 - (mod$deviance/mod$null.deviance)lo menciona David J. Harris

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

La desviación D-Squared o explicada del modelo se introduce en (Guisan y Zimmermann 2000) https://doi.org/10.1016/S0304-3800(00)00354-9

usuario2673238
fuente