Al estimar un modelo de regresión lineal, uno de las medidas estadísticas que se observan para evaluar la bondad de ajuste de un modelo es el \(R^2\), este se define como el porcentaje de variación de la variable respuesta que es explicado por el modelo de regresión ajustado. Dicho valor es arrojado directamente por los diferentes softwares estadísticos al ajustar un modelo de regresión lineal. Por ejemplo para el caso de R.
bd1_modlm<-mtcars
mod1<-lm(mpg~cyl+wt, data=bd1_modlm)
summary(mod1)
##
## Call:
## lm(formula = mpg ~ cyl + wt, data = bd1_modlm)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.2893 -1.5512 -0.4684 1.5743 6.1004
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.6863 1.7150 23.141 < 2e-16 ***
## cyl -1.5078 0.4147 -3.636 0.001064 **
## wt -3.1910 0.7569 -4.216 0.000222 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.568 on 29 degrees of freedom
## Multiple R-squared: 0.8302, Adjusted R-squared: 0.8185
## F-statistic: 70.91 on 2 and 29 DF, p-value: 6.809e-12
Podemos observar en la parte inferior de la salida resumen del modelo un valor denominado Multiple R-Squared, que corresponde a 0.8302, este es el \(R^2\), y se obtiene directamente al estimar el modelo.
Para el caso de los modelos lineales generalizados, dado que la naturaleza de la variable puede ser distinta de una variable continua el cálculo del \(R^2\) no es tan directo como en el caso de la regresión lineal. De acuerdo con Hu, Shao and Palta (2006) (Hu et al., 2006), muchos investigadores estadísticos han buscado calcular una medida equivalente al \(R^2\) para modelos lineales generalizados (Smith & McKenna, 2013).
McFadden (McFadden, 1973) sugirió una alternativa, conocida como “índice de razón de verosimilitud”, comparando un modelo sin ningún predictor con un modelo que incluye todas las covariables. El pseudo \(R^2\) de McFadden se define como sigue:
\[ R^2_{MF}=1-\frac{LL(Propuesto)}{LL(Nulo)} \] Donde,
\(LL(Propuesto)\)= log-verosimilitud del modelo ajustado (con todas las covariables).
\(LL(Nulo)\)= log-verosimilitud del modelo sólo con el intercepto.
Usando un conjunto de datos de prueba podemos ajustar un modelo para estudiar el efecto del peso corporal sobre el género en gatos (y=0 para hembras y y=1 for machos). EL conjunto de datos se muestra a continuación:
y <- c(1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0,
1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0)
weight <- c(2.1, 2.5, 1.2, 1, 3, 2.1, 1.5, 2.2, 1.9, 2.7, 1.1, 2.9, 1.2, 2.1,
2.2, 2.5, 1.9, 1.2, 2, 2.9, 2.2, 1.5, 3, 2.4, 1.2, 1.6, 2.3, 2.1,
2.6, 2.4, 2.5, 2, 1, 1.4, 2.9, 1.5, 3, 2.9, 2.9, 2.1, 2.8, 2.7, 1,
2.9, 1.1, 2.2, 1.3, 1.7, 1.5, 1.7)
Los modelos nulo y propuesto los podemos ajustar con los siguientes códigos
mod_nul <- glm(y ~ 1, family=binomial)
mod <- glm(y ~ weight, family=binomial)
Si se quiere obtener el Pseudo-\(R^2\) propuesto por McFadden manualmente hacemos uso de la función logLik de R (R Core Team, 2021).
1-(logLik(mod)/logLik(mod_nul))
## 'log Lik.' 0.4727168 (df=2)
Otra manera de calcular el pseudo-\(R^2\) es usando la función PseudoR2 del paquete DescTools (Andri et mult. al., 2022).
library(DescTools)
PseudoR2(mod, which = "McFadden")
## McFadden
## 0.4727168
Otra manera de calcular el pseudo-\(R^2\) es usando la función pR2 del paquete pscl (Jackman, 2020)
library(pscl)
## Classes and Methods for R developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University
## Simon Jackman
## hurdle and zeroinfl functions by Achim Zeileis
pR2(mod)
## fitting null model for pseudo-r2
## llh llhNull G2 McFadden r2ML r2CU
## -17.7433861 -33.6505834 31.8143946 0.4727168 0.4707466 0.6363790
Donde,
\(llh\)= log-verosimilitud del modelo ajustado.
\(llhNull\)= log-verosimilitud del modelo sólo con el intercepto.
\(G2\) = menos dos veces la diferencia de verosimilitudes.
\(McFadden\) = Pseudo-\(R^2\) de McFadden
Andri et mult. al., S. (2022). DescTools: Tools for descriptive statistics. https://cran.r-project.org/package=DescTools
Hu, B., Shao, J., & Palta, M. (2006). PSEUDO-r 2 in logistic regression model. Statistica Sinica, 16(3), 847–860. http://www.jstor.org/stable/24307577
Jackman, S. (2020). pscl: Classes and methods for R developed in the political science computational laboratory. United States Studies Centre, University of Sydney. https://github.com/atahk/pscl/
McFadden, D. (1973). Conditional logit analysis of qualitative choice behaviour. In P. Zarembka (Ed.), Frontiers in econometrics (pp. 105–142). Academic Press New York.
R Core Team. (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/
Smith, T. J., & McKenna, C. M. (2013). A comparison of logistic regression pseudo r 2 indices.