Al construir varios modelos lineal generalizado para explicar la media (\(\mu\)) de una variable respuesta (\(Y\)), es posible que nos encontremos con la duda que se muestra en la siguiente figura.
¿Cómo se puede proceder en estos casos?
Una de las formas es utilizar el paquete performance Lüdecke et al. (2021) para comparar el desempeño de los modelos alternativos.
El hexalogo del paquete se muestra a continuación.
El esquema de funcionamiento del paquete performance se puede ver en la siguiente figura.
La función del paquete performance para hacer la comparación es la función `` y tiene la siguiente estructura.
compare_performance(..., metrics = "all", rank = FALSE, verbose = TRUE)
Para mayores detalles se recomienda consultar la ayuda de la función o visitar la página del paquete o el video de YouTube https://youtu.be/EPIxQ5i5oxs.
Como ilustración del paquete vamos a usar el ejemplo 4.7 de Agresti (2015) en el cual interesa crear un modelo con respuesta Gamma para explicar la media del precio de venta de un conjunto de casa en función de las variables size, new, baths y beds. La variable new es una variable binaria para indicar si la casa es nueva (1) o antigua (0), las otras dos covariables son cuantitativas.
Para cargar los datos y ver el encabezado usamos el siguiente código:
url <- 'http://users.stat.ufl.edu/~aa/glm/data/Houses.dat'
datos <- read.table(url, header=TRUE)
head(datos, n=5)
## case taxes beds baths new price size
## 1 1 3104 4 2 0 279.9 2048
## 2 2 1173 2 1 0 146.5 912
## 3 3 3076 4 2 0 237.7 1654
## 4 4 1608 3 2 0 200.0 2068
## 5 5 1454 3 3 0 159.9 1477
Vamos a ajustar tres modelos que vamos a comparar.
fit1 <- glm(price ~ size + new + baths + beds, data=datos,
family=Gamma(link=log))
fit2 <- glm(price ~ size + new + baths, data=datos,
family=Gamma(link=log))
fit3 <- glm(price ~ size + new, data=datos,
family=Gamma(link=log))
library(performance)
compare_performance(fit1, fit2, fit3, rank = TRUE)
## # Comparison of Model Performance Indices
##
## Name | Model | AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Performance-Score
## -----------------------------------------------------------------------------------------
## fit3 | glm | 1049.561 | 1059.982 | 0.693 | 56.195 | 0.336 | 75.62%
## fit2 | glm | 1050.789 | 1063.815 | 0.695 | 55.841 | 0.336 | 70.80%
## fit1 | glm | 1052.470 | 1068.101 | 0.696 | 57.462 | 0.338 | 20.00%
Para obtener resultados gráficos se puede usar la siguiente instrucción que usa el paquete see Lüdecke et al. (2020).
library(see)
plot(compare_performance(fit1, fit2, fit3, rank = TRUE))
Nota: Para conocer otras publicaciones relacionadas con glm visite este enlace.