En R los modelos lineales generalizados se ajustan usando la función \(glm()\). La forma de la función glm es
glm(formula, family = familytype(link = linkfunction), data = )
| Familia | Función de enlace predeterminada |
|---|---|
| Binomial | (link = “logit”) |
| Gaussiana | (link = “identity”) |
| Gamma | (link = “inverse”) |
| Inversa | (link = “1/mu^2”) |
| Poisson | (link = “log”) |
| quasi | (link = “identity”, variance = “constant”) |
| quasibinomial | (link = “logit”) |
| quasipoisson | (link = “log”) |
¿Qué distribuciones puedo elegir?
gaussiano: una distribución gaussiana (normal).
binomial: una distribución binomial para proporciones.
Poisson: una distribución de Poisson para cuentas.
Gamma: una distribución gamma para datos continuos positivos.
Inverse.gaussian: una distribución gaussiana inversa para datos continuos positivos.
El conjunto de datos descrito fue extraído del censo del IBGE de 2000. Presenta para cada unidad de la federación el número medio de años de estudio y el ingreso promedio mensual (en reales) del jefe o jefes del domicilio.
require(pander)
attach(censo.dat)
fit1.censo = lm(renda ~ escolar)
pander(summary(fit1.censo))
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -381.3 | 69.4 | -5.494 | 1.045e-05 |
| escolar | 199.8 | 13.03 | 15.34 | 3.167e-14 |
| Observations | Residual Std. Error | \(R^2\) | Adjusted \(R^2\) |
|---|---|---|---|
| 27 | 77.22 | 0.9039 | 0.9001 |
Los datos son los resultados de un experimento conducido para evaluar el desempeño de cinco tipos de turbina de alta velocidad para motores de avión. Se consideraron diez motores de cada tipo en los análisis y se observó para cada uno el tiempo (en unidades de millones de ciclos) hasta la pérdida de la velocidad.
Datos
require(pander)
turbina <- scan("turbina.txt", list(tipo=0, tempo=0))
attach(turbina)
tipo = factor(tipo)
fit1.turbina = glm(tempo ~ tipo, family=Gamma(link=identity))
pander(summary(fit1.turbina))
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | 10.69 | 1.543 | 6.93 | 1.292e-08 |
| tipo2 | -4.643 | 1.773 | -2.619 | 0.01197 |
| tipo3 | -2.057 | 1.983 | -1.037 | 0.3052 |
| tipo4 | -0.895 | 2.093 | -0.4277 | 0.6709 |
| tipo5 | 4.013 | 2.624 | 1.53 | 0.1331 |
(Dispersion parameter for Gamma family taken to be 0.2081995 )
| Null deviance: | 12.965 on 49 degrees of freedom |
| Residual deviance: | 8.862 on 45 degrees of freedom |
En un pequeño estudio, se recopilaron datos sobre la presencia de una malformación de órganos sexuales en un bebé para estudiar cómo el consumo de alcohol de la madre lo afecto. La información recopilada sobre cada tema es
require(pander)
Alcohol <- c(0,0.5,1.5,4,7)
Absent <- c(17066,14464,788,126,37)
Present <- c(48,38,5,1,1)
tabla <- cbind(Alcohol,Absent,Present)
pander(tabla)
| Alcohol | Absent | Present |
|---|---|---|
| 0 | 17066 | 48 |
| 0.5 | 14464 | 38 |
| 1.5 | 788 | 5 |
| 4 | 126 | 1 |
| 7 | 37 | 1 |
require(pander)
malform.logit=glm(cbind(Present,Absent)~Alcohol,family=binomial(link=logit))
pander(summary(malform.logit))
| Estimate | Std. Error | z value | Pr(>|z|) | |
|---|---|---|---|---|
| (Intercept) | -5.96 | 0.1154 | -51.64 | 0 |
| Alcohol | 0.3166 | 0.1254 | 2.523 | 0.01162 |
(Dispersion parameter for binomial family taken to be 1 )
| Null deviance: | 6.202 on 4 degrees of freedom |
| Residual deviance: | 1.949 on 3 degrees of freedom |
La regresión estimada es
\[\log{\left(\frac{\hat\pi}{1-\hat\pi}\right)} = -5.96 + 0.3166 \; alcohol\] Siendo la variable \(alcohol\) significativa y positiva, implicando que el consumo de alcohol sí incrementa la probabilidad de una malformación.
Los siguientes datos presentados son sobre el perfil de los clientes de una determinada tienda oriundos de 110 áreas de una ciudad. El objetivo del estudio es relacionar el número esperado de clientes en cada área con las siguientes variables explicativas en cada área: número de domicilios (en mil), ingreso promedio anual (en mil USD), edad media de los domicilios (en años), distancia al competidor más cercano (en millas) y distancia a la tienda (en millas). Por lo tanto, el área es la unidad experimental.
Nos referimos de la siguiente manera a los datos por facilidad:
La variable “domicilios” es el número de domicilios, “ingreso” es el ingreso promedio anual, “edad” es la edad media de los domicilios, “dcompetidor” es la distancia al competidor más cercano y “dtienda” es la distancia a la tienda.
| clientes | domicilios | ingreso | edad | dcompetidor | dtienda |
|---|---|---|---|---|---|
| 9 | 606 | 41393 | 3 | 3.04 | 6.32 |
| 6 | 641 | 23635 | 18 | 1.95 | 8.89 |
| 28 | 505 | 55475 | 27 | 6.54 | 2.05 |
| 11 | 866 | 64646 | 31 | 1.67 | 5.81 |
| 4 | 599 | 31972 | 7 | 0.72 | 8.11 |
| 4 | 520 | 41755 | 23 | 2.24 | 6.81 |
| 0 | 354 | 46014 | 26 | 0.77 | 9.27 |
| 14 | 483 | 34626 | 1 | 3.51 | 7.92 |
| 16 | 1034 | 85207 | 13 | 4.23 | 4.4 |
| 13 | 456 | 33021 | 32 | 3.07 | 6.03 |
| 9 | 19 | 39198 | 22 | 2.96 | 6.09 |
| 14 | 530 | 38794 | 5 | 2.77 | 6.08 |
| 5 | 337 | 30855 | 1 | 1.33 | 9.86 |
| 9 | 586 | 28852 | 7 | 2.98 | 8.64 |
| 9 | 1113 | 120065 | 9 | 3.58 | 5.26 |
| 7 | 525 | 32229 | 3 | 1.27 | 7.56 |
| 4 | 377 | 36828 | 15 | 1.92 | 8.91 |
| 26 | 1127 | 90302 | 26 | 5.83 | 1.74 |
| 32 | 877 | 51707 | 27 | 5.19 | 3.66 |
| 26 | 1007 | 89860 | 55 | 5.03 | 2.03 |
| 11 | 657 | 60513 | 32 | 4.38 | 8.3 |
| 12 | 302 | 42191 | 54 | 3.41 | 5.21 |
| 3 | 603 | 28736 | 41 | 0.34 | 8.29 |
| 15 | 556 | 49129 | 33 | 4.78 | 3.89 |
| 12 | 635 | 29308 | 42 | 2.53 | 6.17 |
| 9 | 386 | 26734 | 14 | 4.99 | 9.7 |
| 14 | 1011 | 57862 | 54 | 4.6 | 3.94 |
| 10 | 925 | 70030 | 36 | 4.58 | 8.66 |
| 22 | 898 | 46027 | 44 | 3.03 | 5.6 |
| 8 | 731 | 32202 | 43 | 5.15 | 9.67 |
| 3 | 584 | 32871 | 13 | 1.47 | 8.02 |
| 11 | 439 | 29564 | 18 | 3.67 | 5.1 |
| 2 | 153 | 46806 | 21 | 0.84 | 9.18 |
| 6 | 1069 | 59805 | 22 | 2.5 | 9.43 |
| 11 | 443 | 42555 | 53 | 2.62 | 5.75 |
| 10 | 392 | 36998 | 7 | 1.03 | 7.74 |
| 0 | 828 | 85664 | 4 | 1.3 | 9.66 |
| 15 | 159 | 21238 | 4 | 2.98 | 8.66 |
| 9 | 830 | 47972 | 40 | 2.28 | 9.26 |
| 16 | 234 | 33246 | 26 | 3.95 | 4.61 |
| 29 | 1004 | 45927 | 24 | 4.9 | 2.69 |
| 6 | 643 | 58315 | 8 | 0.78 | 6.26 |
| 26 | 741 | 69177 | 9 | 6.61 | 0.87 |
| 13 | 306 | 40886 | 27 | 4.53 | 2.68 |
| 0 | 180 | 44588 | 14 | 0.88 | 9.38 |
| 8 | 644 | 47347 | 35 | 2.94 | 7.69 |
| 8 | 109 | 31791 | 9 | 4.37 | 9.31 |
| 21 | 809 | 42740 | 17 | 4.1 | 4.75 |
| 12 | 722 | 59175 | 35 | 2.38 | 5.09 |
| 26 | 1006 | 48862 | 48 | 5.04 | 2.21 |
| 3 | 786 | 54678 | 20 | 3.59 | 8.52 |
| 7 | 1041 | 59835 | 40 | 1.68 | 7.59 |
| 5 | 524 | 51756 | 39 | 0.57 | 9.1 |
| 9 | 725 | 34817 | 18 | 1.88 | 7.96 |
| 13 | 482 | 29942 | 14 | 3.17 | 6.91 |
| 28 | 666 | 68684 | 25 | 5.78 | 2.55 |
| 10 | 450 | 64790 | 3 | 4.35 | 6.03 |
| 12 | 667 | 58535 | 25 | 2.78 | 5.59 |
| 6 | 921 | 42919 | 13 | 2.48 | 7.69 |
| 11 | 412 | 40722 | 32 | 2.47 | 9.43 |
| 12 | 526 | 42120 | 30 | 4.29 | 6.15 |
| 11 | 523 | 28647 | 43 | 2.69 | 7.54 |
| 9 | 1066 | 61464 | 40 | 1.15 | 8.25 |
| 8 | 1001 | 70136 | 29 | 2.58 | 9.67 |
| 9 | 669 | 34595 | 38 | 4.06 | 8.78 |
| 8 | 582 | 30878 | 58 | 1.91 | 6.86 |
| 6 | 872 | 39366 | 52 | 0.73 | 8.67 |
| 6 | 758 | 61563 | 31 | 3.08 | 8.33 |
| 15 | 782 | 38412 | 26 | 2.72 | 6.71 |
| 15 | 551 | 41045 | 2 | 3.62 | 7.45 |
| 12 | 201 | 23864 | 43 | 4.8 | 8.74 |
| 10 | 730 | 38647 | 9 | 0.67 | 7.92 |
| 8 | 738 | 58387 | 13 | 2.01 | 6.6 |
| 3 | 469 | 37242 | 40 | 1.42 | 8.37 |
| 10 | 898 | 38337 | 32 | 2.63 | 9.56 |
| 10 | 780 | 68201 | 5 | 4.12 | 6.69 |
| 15 | 622 | 41066 | 46 | 4.48 | 4.1 |
| 6 | 391 | 40873 | 19 | 1.67 | 6.9 |
| 9 | 531 | 54655 | 40 | 2.32 | 5.69 |
| 21 | 566 | 49826 | 1 | 3.06 | 4.03 |
| 13 | 410 | 29013 | 50 | 2.68 | 7.58 |
| 8 | 719 | 78082 | 31 | 2.7 | 4.89 |
| 6 | 684 | 57506 | 51 | 2.13 | 8.31 |
| 8 | 865 | 47118 | 46 | 2.17 | 9.06 |
| 21 | 1031 | 72373 | 48 | 6.27 | 1.75 |
| 7 | 862 | 67787 | 1 | 2.1 | 8.63 |
| 19 | 758 | 40305 | 15 | 3.95 | 5.58 |
| 13 | 1141 | 50026 | 45 | 2.79 | 6.18 |
| 24 | 1289 | 98701 | 8 | 5.87 | 2.73 |
| 7 | 674 | 58195 | 54 | 4.3 | 6.4 |
| 3 | 683 | 47991 | 57 | 1.54 | 9.52 |
| 8 | 650 | 63123 | 15 | 3.17 | 9.46 |
| 9 | 406 | 39051 | 29 | 3.11 | 9.62 |
| 18 | 966 | 114633 | 38 | 6.33 | 2.22 |
| 12 | 1103 | 55773 | 44 | 4.58 | 8.68 |
| 8 | 312 | 43393 | 41 | 2.25 | 6.43 |
| 16 | 787 | 61765 | 53 | 5.39 | 3.37 |
| 5 | 416 | 33348 | 48 | 1.48 | 7.66 |
| 8 | 528 | 44541 | 31 | 4.91 | 9.67 |
| 11 | 919 | 40795 | 8 | 2.97 | 7.79 |
| 12 | 482 | 55972 | 9 | 2.91 | 5.85 |
| 14 | 781 | 33140 | 30 | 1.42 | 5.71 |
| 17 | 120 | 19673 | 21 | 2.65 | 6.25 |
| 17 | 693 | 36190 | 6 | 4.7 | 9.54 |
| 6 | 348 | 25768 | 42 | 1.43 | 7.11 |
| 15 | 780 | 53974 | 47 | 4.21 | 6.41 |
| 10 | 752 | 71814 | 1 | 3.13 | 5.47 |
| 6 | 817 | 54429 | 47 | 1.9 | 9.9 |
| 4 | 268 | 34022 | 54 | 1.2 | 9.51 |
| 6 | 519 | 52850 | 43 | 2.92 | 8.62 |
require(pander)
fit1.store <- glm( clientes ~ domicilios + ingreso + edad + dcompetidor + dtienda ,family="poisson",data = store2)
pander(summary(fit1.store))
| Estimate | Std. Error | z value | Pr(>|z|) | |
|---|---|---|---|---|
| (Intercept) | 2.942 | 0.2072 | 14.2 | 9.469e-46 |
| domicilios | 0.0006058 | 0.0001421 | 4.262 | 2.023e-05 |
| ingreso | -1.169e-05 | 2.112e-06 | -5.534 | 3.129e-08 |
| edad | -0.003726 | 0.001782 | -2.091 | 0.0365 |
| dcompetidor | 0.1684 | 0.02577 | 6.534 | 6.39e-11 |
| dtienda | -0.1288 | 0.0162 | -7.948 | 1.893e-15 |
(Dispersion parameter for poisson family taken to be 1 )
| Null deviance: | 422.2 on 109 degrees of freedom |
| Residual deviance: | 115.0 on 104 degrees of freedom |
El conjunto de datos presentados acontinuación muestran la demanda de TV por cable en 40 áreas metropolitanas de los Estados Unidos (Ramanathan, 1993). Se observó, para cada área, el número de abonados (en miles) de televisión por cable (nass), el número de domicilios (en miles) en el área (domic), domicilio con TV por cable (percap), la tasa de instalación de TV por cable (tasa) en USD, el costo promedio mensual de mantenimiento de TV por cable (costo) en USD, el número de teléfono canales de cable disponibles en el área (ncabo) y el número de canales no pagados con señal de buena calidad disponibles en el área (ntv).
| demanda | domic | percap | tasa | costo | ncabo | ntv |
|---|---|---|---|---|---|---|
| 105 | 350 | 9.839 | 14.95 | 10 | 16 | 13 |
| 90 | 255.6 | 10.61 | 15 | 7.5 | 15 | 11 |
| 14 | 31 | 10.46 | 15 | 7 | 11 | 9 |
| 11.7 | 34.84 | 8.958 | 10 | 7 | 22 | 10 |
| 46 | 153.4 | 11.74 | 25 | 10 | 20 | 12 |
| 11.22 | 26.62 | 9.378 | 15 | 7.66 | 18 | 8 |
| 12 | 18 | 10.43 | 15 | 7.5 | 12 | 8 |
| 6.428 | 9.324 | 10.17 | 15 | 7 | 17 | 7 |
| 20.1 | 32 | 9.218 | 10 | 5.6 | 10 | 8 |
| 8.5 | 28 | 10.52 | 15 | 6.5 | 6 | 6 |
| 1.6 | 8 | 10.03 | 17.5 | 7.5 | 8 | 6 |
| 1.1 | 5 | 9.714 | 15 | 8.95 | 9 | 9 |
| 4.355 | 15.2 | 9.294 | 10 | 7 | 7 | 7 |
| 78.91 | 97.89 | 9.784 | 24.95 | 9.49 | 12 | 7 |
| 19.6 | 93 | 8.173 | 20 | 7.5 | 9 | 7 |
| 1 | 3 | 8.967 | 9.95 | 10 | 13 | 6 |
| 1.65 | 2.6 | 10.13 | 25 | 7.55 | 6 | 5 |
| 13.4 | 18.28 | 9.361 | 15.5 | 6.3 | 11 | 5 |
| 18.71 | 55 | 9.085 | 15 | 7 | 16 | 6 |
| 1.352 | 1.7 | 10.07 | 20 | 5.6 | 6 | 6 |
| 170 | 270 | 8.908 | 15 | 8.75 | 15 | 5 |
| 15.39 | 46.54 | 9.632 | 15 | 8.73 | 9 | 6 |
| 6.555 | 20.42 | 8.995 | 5.95 | 5.95 | 10 | 6 |
| 40 | 120 | 7.787 | 25 | 6.5 | 10 | 5 |
| 19.9 | 46.39 | 8.89 | 15 | 7.5 | 9 | 7 |
| 2.45 | 14.5 | 8.041 | 9.95 | 6.25 | 6 | 4 |
| 3.762 | 9.5 | 8.605 | 20 | 6.5 | 6 | 5 |
| 24.88 | 81.98 | 8.639 | 18 | 7.5 | 8 | 4 |
| 21.19 | 39.7 | 8.781 | 20 | 6 | 9 | 4 |
| 3.487 | 4.113 | 8.551 | 10 | 6.85 | 11 | 4 |
| 3 | 8 | 9.306 | 10 | 7.95 | 9 | 6 |
| 42.1 | 99.75 | 8.346 | 9.95 | 5.73 | 8 | 5 |
| 20.35 | 33.38 | 8.803 | 15 | 7.5 | 8 | 4 |
| 23.15 | 35.5 | 8.942 | 17.5 | 6.5 | 8 | 5 |
| 9.866 | 34.77 | 8.591 | 15 | 8.25 | 11 | 4 |
| 42.61 | 64.84 | 9.163 | 10 | 6 | 11 | 6 |
| 10.37 | 30.56 | 7.683 | 20 | 7.5 | 8 | 6 |
| 5.164 | 16.5 | 7.924 | 14.95 | 6.95 | 8 | 5 |
| 31.15 | 70.52 | 8.454 | 9.95 | 7 | 10 | 4 |
| 18.35 | 42.04 | 8.429 | 20 | 7 | 6 | 4 |
require(pander)
require("MASS")
fit1.tvcabo <- (glm.nb( demanda ~ domic + percap + tasa + costo + ncabo + ntv , data = tvcabo2, link = log))
pander(summary(fit1.tvcabo))