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?

Ejemplos

Normal

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.

  • uf: RR, AP, AC, RO, PA, AM, TO, PB, MA, RN, SE, PI, BA, PE, AL, CE, SP, RJ, ES, MG, SC, RS, PR, MT, GO, MS and DF
  • escolar: 5.7, 6, 4.5, 4.9, 4.7, 5.5, 4.5, 3.9, 3.6, 4.5, 4.3, 3.5, 4.1, 4.6, 3.7, 4, 6.8, 7.1, 5.7, 5.4, 6.3, 6.4, 6, 5.4, 5.5, 5.7 and 8.2
  • renda: 685, 683, 526, 662, 536, 627, 520, 423, 343, 513, 462, 383, 460, 517, 454, 448, 1076, 970, 722, 681, 814, 800, 782, 775, 689, 731 and 1499
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
Fitting linear model: renda ~ escolar
Observations Residual Std. Error \(R^2\) Adjusted \(R^2\)
27 77.22 0.9039 0.9001

Gamma

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

  • tipo: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4 and 5
  • tempo: 3.03, 3.19, 3.46, 5.88, 6.43, 5.53, 4.26, 5.22, 6.74, 9.97, 5.6, 4.47, 5.69, 6.9, 10.39, 9.3, 4.53, 6.54, 6.98, 13.55, 9.92, 4.67, 9.16, 7.21, 14.45, 12.51, 4.69, 9.4, 8.14, 14.72, 12.95, 5.78, 10.19, 8.59, 16.81, 15.21, 6.79, 10.71, 9.8, 18.39, 16.04, 9.37, 12.58, 12.28, 20.84, 16.84, 12.75, 13.41, 25.46 and 21.51
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

Binomial

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.

Poisson

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

Binomial negativa

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))

Bibliografia

  1. Paula, G. A. (2015). Modelos de Regressão com Apoio Computacional. 2013.
  2. http://users.stat.ufl.edu/~athienit/STA6167/ex8D1.pdf
  3. https://maths-people.anu.edu.au/~johnm/courses/r/ASC2008/pdf/glm-ohp.pdf