He encontrado una fórmula para el pseudo $R^2$ en el libro Ampliación del modelo lineal con R, Julian J. Faraway (p. 59).
$$1-\frac{\text{ResidualDeviance}}{\text{NullDeviance}}$$ .
¿Se trata de una fórmula común de pseudo $R^2$ para GLMs?
He encontrado una fórmula para el pseudo $R^2$ en el libro Ampliación del modelo lineal con R, Julian J. Faraway (p. 59).
$$1-\frac{\text{ResidualDeviance}}{\text{NullDeviance}}$$ .
¿Se trata de una fórmula común de pseudo $R^2$ para GLMs?
Hay un gran número de pseudo- $R^2$ El excelente sitio de ayuda a las estadísticas de la UCLA ofrece una descripción exhaustiva de las mismas aquí . El que usted enumera se llama el pseudo de McFadden. $R^2$ . En relación con la tipología de la UCLA, es como $R^2$ en el sentido de que indexa la mejora del modelo ajustado sobre el modelo nulo. Algunos programas informáticos de estadística, en particular el SPSS, si no recuerdo mal, imprimen el pseudodistintivo de McFadden. $R^2$ por defecto con los resultados de algunos análisis como la regresión logística, por lo que sospecho que es bastante común, aunque los pseudo-análisis de Cox & Snell y Nagelkerke $R^2$ s pueden serlo aún más. Sin embargo, el pseudo- $R^2$ no tiene todas las propiedades de $R^2$ (no hay pseudo- $R^2$ lo hace). Si alguien está interesado en utilizar un pseudo- $R^2$ para entender un modelo, recomiendo encarecidamente la lectura de este excelente hilo de CV: ¿Qué pseudo- $R^2$ ¿es la medida a reportar para la regresión logística (Cox & Snell o Nagelkerke)? (Por si sirve de algo, $R^2$ es más resbaladizo de lo que la gente cree, una gran demostración de ello puede verse en la respuesta de @whuber aquí: Es $R^2$ ¿útil o peligroso? )
Me pregunto si todos estos pseudo-R2 han sido diseñados específicamente para la regresión logística solamente. ¿O se generalizan también para poisson y gamma-glms? He encontrado diferentes fórmulas R2 para cada posible GLM en 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, algunos de ellos parecen ciertamente específicos de LR, pero otros utilizan la desviación, que podrías obtener de cualquier GLiM.
Tenga en cuenta que McFadden $R^2$ a menudo se define en términos de la log-verosimilitud, que sólo 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, la fórmula de McFadden $R^2$ no está bien definido. La desviación es una única elección de la constante aditiva, que en mi opinión es la más apropiada, si la generalización debe ser comparable con $R^2$ de los modelos lineales.
R da la desviación nula y residual en la salida a glm
para poder hacer exactamente este tipo de comparación (ver las dos últimas líneas de abajo).
> 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.deviance
y model$deviance
Ah, vale. Sólo estaba respondiendo a la pregunta tal y como estaba escrita. Habría añadido más, pero yo mismo no estoy 100% seguro de cómo se calcula la desviación nula (tiene algo que ver con la probabilidad logarítmica de un modelo saturado, pero no recuerdo lo suficiente los detalles sobre la saturación como para estar seguro de poder dar buenas intuiciones)
@Tomas ver mis ediciones. No sé si me equivoqué hace 2 años o si la salida por defecto ha cambiado desde entonces.
La fórmula que usted propone ha sido propuesta por Maddala (1983) y Magee (1990) para estimar la R al cuadrado en el modelo logístico. Por lo tanto, no creo que sea aplicable a todos los modelos glm (véase el libro Modern Regression Methods de Thomas P. Ryan en la página 266).
Si haces un conjunto de datos falso, verás que se subestima la R al cuadrado... para el glm gaussiano por ejemplo.
Creo que para un glm gaussiano se puede utilizar la fórmula básica (lm) R al cuadrado...
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 familia logística (o binomial en r ) utilizaría la fórmula que propones...
R2logit<- function(y,model){
R2<- 1-(model$deviance/model$null.deviance)
return(R2)
}
Hasta ahora para el glm de poisson he utilizado la ecuación de este post.
También hay un gran artículo sobre pseudo R2 disponible en researchs gates...aquí está el enlace:
Espero que esto ayude.
Basta con ajustar un modelo GLM con family=gaussian(link=identity) y comprobar el valor de 1-summary(GLM)$deviance/summary(GLM)$null.deviance
y verá que el R2 coincide con el valor R2 de una regresión OLS normal, por lo que la respuesta anterior es correcta. Ver también mi post aquí - stats.stackexchange.com/questions/412580/
El paquete R modEvA
calcula D-Squared como 1 - (mod$deviance/mod$null.deviance)
como 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 D-cuadrada o desviación explicada del modelo se introduce en (Guisan & Zimmermann 2000) https://doi.org/10.1016/S0304-3800(00)00354-9
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.