Encontré una fórmula para pseudo en el libro Extending the Linear Model with R, Julian J. Faraway (p. 59).
¿Es esta una fórmula común para pseudo para GLM?
Encontré una fórmula para pseudo en el libro Extending the Linear Model with R, Julian J. Faraway (p. 59).
¿Es esta una fórmula común para pseudo para GLM?
Respuestas:
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 de (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? )
R proporciona una desviación nula y residual en la salida para glm
que 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.deviance
ymodel$deviance
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.
También hay un gran artículo sobre pseudo R2 disponible en las puertas de investigación ... aquí está el enlace:
Espero esta ayuda
1-summary(GLM)$deviance/summary(GLM)$null.deviance
y 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/…
El paquete R modEvA
calcula 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
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.