1 Modelo de regresión logística binaria

La regresión logística es un modelo estadístico que se utiliza para predecir la probabilidad de un resultado binario (1/0, Sí/No, Verdadero/Falso) basado en una o más variables predictoras. Es especialmente útil en el campo de la investigación médica y social.

1.1 Log-odds, probabilidades y Odds ratios

Los “log-odds” o logaritmo de las probabilidades (odds) son un concepto clave en la regresión logística y en otros modelos estadísticos que tratan con probabilidades. Para entender los log-odds, primero es necesario comprender qué son las probabilidades (odds).

1.1.1 Probabilidades (Odds)

Las probabilidades son una manera de expresar la probabilidad de que ocurra un evento en relación con la probabilidad de que no ocurra. Matemáticamente, se calculan como:

\[ \text{Odds} = \frac{P(evento)}{1 - P(evento)} \]

Donde \(P(evento)\) es la probabilidad de que ocurra el evento.

Por ejemplo, si la probabilidad de que llueva mañana es 0.75 (75%), los odds serían:

\[ \text{Odds de lluvia} = \frac{0.75}{1 - 0.75} = \frac{0.75}{0.25} = 3 \]

Esto significa que es 3 veces más probable que llueva que no llueva.

1.1.2 Log-Odds

Los log-odds son simplemente el logaritmo natural de las probabilidades. Entonces, si tenemos las probabilidades (odds) como se definió anteriormente, los log-odds serían:

\[ \text{Log-Odds} = \log(\text{Odds}) = \log\left(\frac{P(evento)}{1 - P(evento)}\right) \]

El uso del logaritmo en este contexto tiene varias ventajas, especialmente en la modelización estadística:

  1. Rango de valores: Mientras que las probabilidades solo pueden tener valores positivos, los log-odds pueden variar desde \(-\infty\) hasta \(+\infty\). Esto es útil para modelar en un contexto lineal.

  2. Simetría: Los log-odds proporcionan una escala más simétrica para describir probabilidades. Por ejemplo, los log-odds de 0 corresponden a probabilidades de 0.5 (50%); valores positivos indican probabilidades mayores a 0.5 y negativos menores a 0.5.

  3. Transformación lineal: En la regresión logística, la relación entre las variables predictoras y los log-odds de la variable dependiente es lineal, lo que facilita el modelado y la interpretación.

1.2 Método de Estimación: Máxima Verosimilitud

El método de estimación más común en la regresión logística es el de máxima verosimilitud. Este método busca estimar los parámetros del modelo (coeficientes) de tal manera que maximicen la probabilidad (verosimilitud) de observar los datos dados. En términos simples, busca ajustar el modelo de tal manera que las predicciones hechas por el modelo coincidan lo más posible con los datos reales.

La función de verosimilitud en la regresión logística se utiliza para estimar los coeficientes del modelo (\(\beta\)) que hacen que los datos observados sean los más probables. La derivación comienza con la función logística, que modela la probabilidad de que la variable dependiente \(Y\) sea igual a 1, dada una combinación lineal de variables independientes \(X\).

La función logística se define como:

\[ P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_kX_k)}} \]

Ahora, la verosimilitud \(L\) es el producto de las probabilidades individuales para todas las observaciones. Para una observación individual, la probabilidad de observar \(Y_i\) (que puede ser 0 o 1) es:

\[ P(Y_i|X_i) = [P(Y=1|X_i)]^{Y_i} \times [1 - P(Y=1|X_i)]^{1-Y_i} \]

Para todas las observaciones (digamos, \(n\) observaciones), la función de verosimilitud \(L\) es el producto de todas estas probabilidades individuales:

\[ L(\beta) = \prod_{i=1}^{n} [P(Y=1|X_i)]^{Y_i} \times [1 - P(Y=1|X_i)]^{1-Y_i} \]

Esta función de producto puede ser difícil de manejar, especialmente al tomar derivadas para la optimización. Por lo tanto, generalmente se trabaja con el logaritmo de la verosimilitud, conocido como log-verosimilitud (\(\ell(\beta)\)), ya que el logaritmo convierte los productos en sumas, que son más fáciles de diferenciar:

\[ \ell(\beta) = \sum_{i=1}^{n} [Y_i \log(P(Y=1|X_i)) + (1-Y_i) \log(1 - P(Y=1|X_i))] \]

Para encontrar los valores de \(\beta\) que maximizan esta log-verosimilitud, se utiliza el método de máxima verosimilitud, que implica tomar la derivada de \(\ell(\beta)\) con respecto a cada \(\beta_j\) y resolviendo para cuando estas derivadas sean cero. Esto generalmente se hace mediante métodos numéricos, como el método de Newton-Raphson, ya que las ecuaciones resultantes no suelen tener soluciones analíticas.

1.2.1 Supuestos de la Regresión Logística

A diferencia de la regresión lineal, la logística no requiere que las variables independientes sean de naturaleza continua ni que estén normalmente distribuidas. Sin embargo, tiene sus propios supuestos: 1. Linealidad de las variables independientes y los log-odds: Aunque la relación entre las variables independientes y la dependiente es no lineal, la relación entre cualquier variable independiente y el logaritmo de las odds (log-odds) sí debe ser lineal. 2. No multicolinealidad: Las variables independientes no deben estar altamente correlacionadas entre sí. 3. Independencia de errores: Las observaciones deben ser independientes entre sí.

1.2.2 Fórmula y Derivación

La regresión logística se basa en la función logística, cuya fórmula es:

\[ P(Y=1) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_kX_k)}} \]

Donde: - \(P(Y=1)\) es la probabilidad de que el evento de interés (Y=1) ocurra.

- \(e\) es la base del logaritmo natural.

- \(\beta_0, \beta_1, ..., \beta_k\) son los coeficientes del modelo.

- \(X_1, X_2, ..., X_k\) son las variables independientes.

La derivación de esta fórmula se basa en la utilización de la función logística para transformar el modelo lineal en uno que predice log-odds, que luego se transforma en una probabilidad.

1.2.3 Interpretación de Coeficientes

En la regresión logística, los coeficientes se interpretan en términos de odds ratios. Un odds ratio mayor que 1 indica que el evento es más probable con el incremento de la variable independiente, mientras que un odds ratio menor que 1 indica lo contrario.

La regresión logística es una herramienta poderosa y flexible que se adapta bien a una variedad de contextos donde la variable dependiente es de naturaleza binaria. Su capacidad para manejar relaciones no lineales y variables de varios tipos (continuas, categóricas) la hace especialmente valiosa en muchos campos de investigación.

1.3 ¿Quién tuvo más probabilidad de sobrevivir en el Titanic?

#install.packages("PASWR")
library(PASWR)
library(papaja)
library(htmltools)
library(summarytools)
library(tidyverse)
library(ggplot2)
data("titanic3")




tabla<- ctable(titanic3$pclass, as.factor(titanic3$survived))


apa_table(tabla$proportions, caption= "Tabla cruzada, supervivientes y clase de viajero")
(#tab:unnamed-chunk-1) Tabla cruzada, supervivientes y clase de viajero
0 1 Total
1st 0.38 0.62 1.00
2nd 0.57 0.43 1.00
3rd 0.74 0.26 1.00
Total 0.62 0.38 1.00

1.3.0.1 Gráfico:

perc<-titanic3 %>% group_by(pclass) %>% 
  count(survived) %>% 
  mutate(ratio=scales::percent(n/sum(n)))



ggplot(titanic3, aes(x=factor(pclass), fill=factor(survived)))+ 
  geom_bar(position = "fill")+ 
  geom_text(data=perc, aes(y=n, label=ratio), 
            position = position_fill(vjust = 0.5))+
  labs(y="Porcentaje", x="Clase del pasajero")+ 
  scale_x_discrete(labels=c("1st"="Primera", 
                  "2nd"="Segunda", "3rd"="Tercera"))+ 
  scale_fill_manual(values=c("0"="green", "1"="lightblue"),
    labels=c("0"="No", "1"="Sí"), name="¿Sobrevivió?")+ theme_apa()

1.3.0.2 Predictor numérico:

tablanum<-titanic3 %>% group_by(survived) %>% filter(!is.na(age)) %>% summarize(Media=mean(age), DE=sd(age), n=n())

apa_table(tablanum, caption = "Edad promedio y des. est. por superviviencia")
(#tab:unnamed-chunk-3) Edad promedio y des. est. por superviviencia
survived Media DE n
0 30.55 13.92 619
1 28.92 15.06 427

1.3.0.3 Gráfico

ggplot(titanic3, aes(x=as.factor(survived), 
                     y=age, fill=as.factor(survived)))+ 
  geom_boxplot()+labs(y="Edad", 
        x="Supervivencia de los pasajeros")+ 
  scale_x_discrete(labels=c("0"="No", "1"="Sí"))+ 
  scale_fill_manual(values=c("0"="darkred",
                             "1"="darkblue"), 
                    labels=c("0"="No", "1"="Sí"), 
                    name="¿Sobrevivió?")+theme_apa()

1.3.0.4 Desagregando por sexo:

tablasexn<-titanic3 %>% group_by(survived, sex)%>%
  filter(!is.na(age)) %>% 
  summarize(Media=mean(age), DE=sd(age))
apa_table(tablasexn, caption="Edad promedio y des. est. por sexo y superviviencia")
(#tab:unnamed-chunk-5) Edad promedio y des. est. por sexo y superviviencia
survived sex Media DE
0 female 25.26 13.48
0 male 31.52 13.80
1 female 29.82 14.77
1 male 26.98 15.55

1.3.0.5 Gráficamente:

ggplot(titanic3, aes(x=as.factor(survived), y=age, fill=as.factor(sex)))+ 

geom_boxplot()+labs(y="Edad", x="Supervivencia de los pasajeros")+ scale_x_discrete(labels=c("0"="No", "1"="Sí"))+ 

scale_fill_manual(values=c("female"="darkred", "male"="darkblue"), 

labels=c("female"="Femenino", "male"="Masculino"), name="Sexo")+theme_apa()

1.3.0.6 Entrenando al modelo:

library(caret)

titanic<-titanic3 %>% filter(age>=0| !is.na(age))

index<-createDataPartition(y=titanic$survived, p=0.75, list=F)

train<-titanic3[index,] 
test<-titanic3[-index,]

dim(train)
## [1] 785  14
dim(test)
## [1] 524  14

1.3.0.7 Regresión logística univariada:

library(stargazer)

model1<-glm(survived~ pclass, data=titanic3, family=binomial) 
stargazer(model1, title="Regresión logística univariada", 
          align = T, type="html", 
          covariate.labels = c("1ra clase", "2da clase", "(Intercepto)"),
          dep.var.labels=c("¿Sobrevivió?"), out="reg1.html")
Regresión logística univariada
Dependent variable:
¿Sobrevivió?
1ra clase -0.770***
(0.167)
2da clase -1.557***
(0.143)
(Intercepto) 0.486***
(0.115)
Observations 1,309
Log Likelihood -806.629
Akaike Inf. Crit. 1,619.259
Note: p<0.1; p<0.05; p<0.01

1.3.0.8 Predictores continuos:

Existen dos formas para expresar la regresión logística, la primera:

\[ log \left(\frac{p}{1-p} \right)=\beta_0+\beta_1X \]

O por:

\[ p=\frac{e^{\beta_0+\beta_1X}}{1+e^{\beta_0+\beta_1X}} \]

El cual la primera es la fórmula basada en el logaritmo del chance (log-odds) y la segunda basada en probabilidades.

En un predictor continuo, cuando \(X=0\), podemos expresar el log-odds así:

\[ log(odd|X=0)=0 \]

Entonces, si queremos evaluar, por ejemplo, cuando el predictor (en este caso la edad) aumenta en un año, sería:

Cuando \(X=x\):

\[ log(odds|X=x)=\beta_0+\beta_1*x \]

Dado que \(X=x+1\) podemos decir que:

\[ log(odds|X=x+1)= \beta_0+\beta_1*(x+1)=\beta_0+\beta_1*x+\beta_1 \]

Esto genera una intuición para comprender cómo se interpretan los predictores continuos en los modelos de regresión logística. Otra forma de expresarlo sería la diferencia entre los log-odds, es decir, de cuando \(X=0\) y \(X=1\):

\[ log(odds|X=x+1)-log(odds|X=x)=log \left(\frac{odds|X=x+1}{odds|X=x}\right)= log(OR)=\beta_1 \]

Debido a que los log-odds son algo difíciles de interpretar (en términos prácticos), podemos elevarlo a la \(e\) para expresarlo en razón de chances:

\[ OR=e^{\beta_1} \]

1.3.0.9 Ejemeplo en R:

edadadj<-glm(survived~age, data=train, family = binomial)

coef(edadadj)
## (Intercept)         age 
##  0.25756928 -0.01420254

Esto significa que el modelo ajustado tiene esta forma:

\[ log\left( \frac{p_i}{1-p_1} \right)=0.091-0.013*edad_i \]

Para expresarlo en OR usamos el comando exp(coef(modelo)):

exp(coef(edadadj))
## (Intercept)         age 
##   1.2937814   0.9858978

Nota: En caso de calcular los intervalos de confianza debes de usar el comando: exp(confint(edadadj)).

La interpretación de \(\beta_1\) sería que por cada año que aumenta la edad del pasajero, la probabilidad de sobrevivir es 0.99 veces menor.

Si tuviésemos que hacer predicciones nos valemos del paquete effects() y del comando allEffects:

#install.packages("effects")
library(effects)

efectos<-allEffects(edadadj)

df_e<-as.data.frame(efectos)

apa_table(df_e, caption="Predicciones, variable Edad")
(#tab:unnamed-chunk-11) Predicciones, variable Edad
age fit se lower upper
age
   0.20 0.56 0.05 0.47 0.65
   20.00 0.49 0.02 0.45 0.54
   40.00 0.42 0.02 0.38 0.47
   60.00 0.36 0.04 0.28 0.44
   80.00 0.29 0.06 0.19 0.42

1.3.0.10 Visualizar resultados:

#install.packages("visreg")

library(visreg)
visreg(edadadj, scale = "response", gg=T)+
  labs(y="P(Superviencia|X)", x="Edad")+theme_apa()

1.4 Efectos combinados/interacción:

mod1<-glm(survived~sex, data=train, family=binomial)
mod2<-glm(survived~sex+age, data=train, family=binomial)
mod3<-glm(survived~sex*age, data=train, family=binomial)

library(stargazer)

stargazer(mod1, mod2, mod3, title="Regresiones logísticas univariadas, multivariadas y con interacciones", 
          align = T, type="html", 
          covariate.labels = c("Sexo", "Edad","Sexo*Edad", "(Intercepto)"),
          dep.var.labels=c("¿Sobrevivió?"), out="reg2.html")
Regresiones logísticas univariadas, multivariadas y con interacciones
Dependent variable:
¿Sobrevivió?
(1) (2) (3)
Sexo -2.570*** -2.762*** -1.178**
(0.178) (0.203) (0.464)
Edad -0.009 0.025**
(0.007) (0.012)
Sexo*Edad -0.055***
(0.015)
(Intercepto) 1.313*** 1.796*** 0.823**
(0.141) (0.265) (0.358)
Observations 785 650 650
Log Likelihood -411.410 -327.663 -320.821
Akaike Inf. Crit. 826.820 661.326 649.643
Note: p<0.1; p<0.05; p<0.01
plot(allEffects(mod3),axes=list(y=list(lab="P(Supervivencia|X)")))

  labs(y="P(Superviencia|X)", x="Edad")+theme_apa()
## NULL

1.4.1 Seleccionar modelos:

Función ANOVA

anova(mod3, test="Chisq")
## Analysis of Deviance Table
## 
## Model: binomial, link: logit
## 
## Response: survived
## 
## Terms added sequentially (first to last)
## 
## 
##         Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
## NULL                      649     895.91              
## sex      1  238.685       648     657.22 < 2.2e-16 ***
## age      1    1.898       647     655.33 0.1683338    
## sex:age  1   13.684       646     641.64 0.0002163 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC(mod1, mod2, mod3)
## Warning in AIC.default(mod1, mod2, mod3): No todos los modelos se han ajustado
## usando el mismo número de observaciones
##      df      AIC
## mod1  2 826.8197
## mod2  3 661.3262
## mod3  4 649.6427

1.4.1.1 Método stepwise

Selección de predictories excluyendolos de manera secuencial (no recomendado).

ajust<-glm(survived~ .^2, data=train[,c("survived", "pclass", "sex", "age")],
           family=binomial)

(ajust<-step(ajust, trace=0))
## 
## Call:  glm(formula = survived ~ (pclass + sex + age)^2, family = binomial, 
##     data = train[, c("survived", "pclass", "sex", "age")])
## 
## Coefficients:
##       (Intercept)          pclass2nd          pclass3rd            sexmale  
##           2.71961            0.62630           -2.28707           -1.97590  
##               age  pclass2nd:sexmale  pclass3rd:sexmale      pclass2nd:age  
##           0.01365           -0.73549            1.56476           -0.05260  
##     pclass3rd:age        sexmale:age  
##          -0.02847           -0.04869  
## 
## Degrees of Freedom: 649 Total (i.e. Null);  640 Residual
##   (135 observations deleted due to missingness)
## Null Deviance:       895.9 
## Residual Deviance: 553.9     AIC: 573.9
summary(ajust)
## 
## Call:
## glm(formula = survived ~ (pclass + sex + age)^2, family = binomial, 
##     data = train[, c("survived", "pclass", "sex", "age")])
## 
## Coefficients:
##                   Estimate Std. Error z value Pr(>|z|)   
## (Intercept)        2.71961    0.91144   2.984  0.00285 **
## pclass2nd          0.62630    1.01285   0.618  0.53634   
## pclass3rd         -2.28707    0.88026  -2.598  0.00937 **
## sexmale           -1.97590    0.89761  -2.201  0.02772 * 
## age                0.01365    0.02231   0.612  0.54054   
## pclass2nd:sexmale -0.73549    0.75535  -0.974  0.33020   
## pclass3rd:sexmale  1.56476    0.68592   2.281  0.02253 * 
## pclass2nd:age     -0.05260    0.02423  -2.171  0.02994 * 
## pclass3rd:age     -0.02847    0.02152  -1.323  0.18595   
## sexmale:age       -0.04869    0.02046  -2.380  0.01733 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 895.91  on 649  degrees of freedom
## Residual deviance: 553.90  on 640  degrees of freedom
##   (135 observations deleted due to missingness)
## AIC: 573.9
## 
## Number of Fisher Scoring iterations: 5

1.4.1.2 Importancia relativa de los predictores:

1.4.1.3 Dominancia de predictores

#Instalarlo desde cran bajando el zip ya que no está disponible
# para R 4.3.1 o mayor.

library(dominanceanalysis)
res<-dominanceAnalysis(ajust)
plot(res, which.graph="conditional",
     fit.function="r2.m")

plot(res, which.graph="general",
     fit.function="r2.m")

fitf<-train(survived~pclass+sex+age+ pclass:sex, data=train, 
            method="glm", na.action=na.omit)

(imp<-varImp(fitf, scale=F))
## glm variable importance
## 
##                     Overall
## sexmale              11.493
## pclass3rd             8.584
## age                   5.006
## `pclass3rd:sexmale`   3.682
## pclass2nd             2.003
## `pclass2nd:sexmale`   1.687
plot(imp)

1.5 Inferencia en GLM, validación de inferencias y modelos.

#install.packages("ResourceSelection")
library(ResourceSelection)
dat<-na.omit(mod2$data[,c("survived","sex","age")])
hoslem.test(x=dat$survived,
            y=fitted(mod2))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  dat$survived, fitted(mod2)
## X-squared = 15.318, df = 8, p-value = 0.05326
library(emmeans)
mod5<-glm(survived~sex*pclass, data=train, family=binomial)

pm<-emmeans(mod5, ~sex*pclass)

contrast(pm, "revpairwise", by="sex", adjust = "bonferroni")
## sex = female:
##  contrast  estimate    SE  df z.ratio p.value
##  2nd - 1st   -1.176 0.619 Inf  -1.898  0.1729
##  3rd - 1st   -3.220 0.545 Inf  -5.911  <.0001
##  3rd - 2nd   -2.045 0.403 Inf  -5.077  <.0001
## 
## sex = male:
##  contrast  estimate    SE  df z.ratio p.value
##  2nd - 1st   -0.977 0.303 Inf  -3.225  0.0038
##  3rd - 1st   -0.832 0.250 Inf  -3.324  0.0027
##  3rd - 2nd    0.145 0.300 Inf   0.481  1.0000
## 
## Results are given on the log odds ratio (not the response) scale. 
## P value adjustment: bonferroni method for 3 tests
emmip(mod5, sex~pclass, CIs = T, plotit = T)

1.5.0.1 Ajuste del modelo

  • Residuos con distribución binomial.

  • ausencia de puntos influyentes

  • el logit de \(p\) es lineal.

plot(mod5, 1:4)

head(influence.measures(mod5)$infmat,n=3)
##          dfb.1_    dfb.sxml      dfb.pcl2      dfb.pcl3    dfb.sx:2    dfb.sx:3
## 1  2.646402e-02 -0.02496023 -2.174952e-02 -2.472176e-02  0.01953701  0.02246246
## 2 -6.497865e-15  0.04308912  9.231199e-15  5.879267e-15 -0.03372695 -0.03877719
## 3 -2.544715e-01  0.24001144  2.091381e-01  2.377184e-01 -0.18786308 -0.21599353
##         dffit     cov.r       cook.d         hat
## 1  0.02646402 1.0162062 0.0000561122 0.008928571
## 2  0.12967176 0.9970629 0.0023811971 0.007194245
## 3 -0.25447154 0.9622285 0.0409057455 0.008928571
head(influence.measures(mod5)$is.inf,n=3)
##   dfb.1_ dfb.sxml dfb.pcl2 dfb.pcl3 dfb.sx:2 dfb.sx:3 dffit cov.r cook.d   hat
## 1  FALSE    FALSE    FALSE    FALSE    FALSE    FALSE FALSE FALSE  FALSE FALSE
## 2  FALSE    FALSE    FALSE    FALSE    FALSE    FALSE FALSE FALSE  FALSE FALSE
## 3  FALSE    FALSE    FALSE    FALSE    FALSE    FALSE FALSE  TRUE  FALSE FALSE
#install.packages("mgcv")
library(mgcv)
mgam<-gam(survived~age+sex+pclass+s(age,by=sex), data=train,
          family=binomial, method="REML")

par(mfrow=c(1,2))
plot(mgam)

1.5.0.2 Dispersión y sobreajuste

#install.packages("DHARMa")
library(DHARMa)
## This is DHARMa 0.4.6. For overview type '?DHARMa'. For recent changes, type news(package = 'DHARMa')
simr<-simulateResiduals(ajust, refit = T)
testDispersion(simr, plot = T)

## 
##  DHARMa nonparametric dispersion test via mean deviance residual fitted
##  vs. simulated-refitted
## 
## data:  simr
## dispersion = 1.1623, p-value = 0.016
## alternative hypothesis: two.sided
1.5.0.2.1 Multicolinealidad:
library(car)
## 
## Adjuntando el paquete: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
vif(mod5)
## there are higher-order terms (interactions) in this model
## consider setting type = 'predictor'; see ?vif
##                 GVIF Df GVIF^(1/(2*Df))
## sex         7.566725  1        2.750768
## pclass     20.165634  2        2.119107
## sex:pclass 27.587325  2        2.291804

Nota: para abundar en los diagnósticos ir a este link

1.6 Predicción del modelo

1.6.0.0.1 Tablas de clasificación
pdata<-predict(mod3, newdata=test, type="response")
confusionMatrix(data=as.factor(as.numeric(pdata>0.5)),
                reference = as.factor(test$survived))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 215  48
##          1  50  83
##                                          
##                Accuracy : 0.7525         
##                  95% CI : (0.707, 0.7943)
##     No Information Rate : 0.6692         
##     P-Value [Acc > NIR] : 0.0001918      
##                                          
##                   Kappa : 0.4432         
##                                          
##  Mcnemar's Test P-Value : 0.9195384      
##                                          
##             Sensitivity : 0.8113         
##             Specificity : 0.6336         
##          Pos Pred Value : 0.8175         
##          Neg Pred Value : 0.6241         
##              Prevalence : 0.6692         
##          Detection Rate : 0.5429         
##    Detection Prevalence : 0.6641         
##       Balanced Accuracy : 0.7225         
##                                          
##        'Positive' Class : 0              
## 

1.7 Comunicar resultados

ggplot(train, aes(x=age, y=survived, fill=sex))+
  geom_point(position=position_jitter(height=0.05),
             aes(y=survived, color=sex))+
  stat_smooth(method = "glm", method.args = list(family="binomial"), 
              se=T)+theme_apa()

library(texreg)
htmlreg(mod3, single.row = T)
Statistical models
  Model 1
(Intercept) 0.82 (0.36)*
sexmale -1.18 (0.46)*
age 0.03 (0.01)*
sexmale:age -0.05 (0.02)***
AIC 649.64
BIC 667.55
Log Likelihood -320.82
Deviance 641.64
Num. obs. 650
***p < 0.001; **p < 0.01; *p < 0.05

2 Regresión para datos de conteo:

La regresión de Poisson es un tipo de análisis estadístico utilizado para modelar datos de conteo, donde las respuestas son cantidades no negativas e enteras, como el número de veces que ocurre un evento. Es especialmente útil cuando los datos de conteo son pequeños y no están distribuidos normalmente. Aquí están algunos aspectos clave de la regresión de Poisson:

  1. Modelo basado en la distribución de Poisson: La regresión de Poisson utiliza la distribución de Poisson para modelar la variable de respuesta. Esta distribución es adecuada para modelar el número de veces que ocurre un evento en un intervalo fijo de tiempo o espacio.

  2. Variable dependiente: La variable dependiente en la regresión de Poisson es un conteo (por ejemplo, el número de accidentes de tráfico en una semana).

  3. Variables independientes: Puede incluir variables independientes (predictores) tanto continuas como categóricas. Estas variables se utilizan para predecir la variable dependiente.

  4. Función de enlace logarítmico: Utiliza una función de enlace logarítmico para relacionar la media de la distribución de Poisson con las variables independientes. Esto significa que la relación entre la variable dependiente y cada variable independiente es logarítmica.

  5. Estimación de parámetros: Los parámetros del modelo se estiman generalmente a través del método de máxima verosimilitud.

  6. Uso en diferentes campos: Se aplica en diversos campos como la epidemiología, la ingeniería y las ciencias sociales, para modelar y predecir fenómenos que son esencialmente conteos.

  7. Supuestos y limitaciones: Un supuesto clave de la regresión de Poisson es que la media y la varianza de la distribución son iguales (equidispersión). Cuando los datos no cumplen con este supuesto (sobredispersión), se pueden utilizar modelos alternativos como la regresión binomial negativa.

  8. Interpretación de resultados: La interpretación de los coeficientes en un modelo de regresión de Poisson es en términos de cambios logarítmicos y efectos multiplicativos, lo que puede ser menos intuitivo que en modelos lineales.

Esta técnica es valiosa para analizar y predecir fenómenos donde los datos de conteo son la principal fuente de información.

2.1 ¿Por qué Poisson y no una regresión por mínimos cuadrados?

La elección entre la regresión lineal y la regresión de Poisson depende en gran medida de la naturaleza de la variable dependiente y la distribución de los datos. Hay varios contextos en los que la regresión lineal puede no ser adecuada, y en esos casos, la regresión de Poisson podría ser una mejor opción. Aquí te explico por qué:

2.1.1 Contextos Inadecuados para la Regresión Lineal

  1. Datos de Conteo: Cuando la variable dependiente es un conteo (por ejemplo, el número de veces que ocurre un evento), la regresión lineal no es ideal. Los conteos son valores enteros no negativos, y la regresión lineal puede predecir valores negativos, lo que no tiene sentido en este contexto.

  2. Heterocedasticidad: La regresión lineal asume homocedasticidad (varianza constante de los errores a lo largo de las predicciones). Sin embargo, en los datos de conteo, la varianza a menudo aumenta con el aumento en el valor medio (varianza dependiente del medio), lo que lleva a la heterocedasticidad.

  3. Distribución de los Residuos: La regresión lineal asume que los residuos (errores) están normalmente distribuidos. En datos de conteo, especialmente con bajos conteos, esta suposición raramente se cumple.

2.1.2 Adecuación de la Regresión de Poisson

  1. Modelado de Datos de Conteo: La regresión de Poisson está diseñada específicamente para modelar variables de respuesta que son conteos. Asume que estos conteos siguen una distribución de Poisson, que es apropiada para modelar eventos discretos.

  2. Manejo de Heterocedasticidad: En la regresión de Poisson, la varianza se asume proporcional a la media, lo que a menudo es una suposición más realista para datos de conteo. Esto ayuda a manejar la heterocedasticidad inherente en estos datos.

  3. Distribución de Poisson: Esta regresión se basa en la distribución de Poisson, que es una distribución de probabilidad discreta y es más adecuada para modelar conteos que la distribución normal utilizada en la regresión lineal.

  4. Relaciones no Lineales: La función de enlace logarítmica en la regresión de Poisson permite modelar relaciones no lineales entre las variables independientes y el logaritmo de la tasa esperada del evento.

2.1.3 Limitaciones y Consideraciones

  • Equidispersión: La regresión de Poisson asume que la media y la varianza de la distribución son iguales (equidispersión). Si los datos muestran sobredispersión (la varianza es mayor que la media), puede ser necesario utilizar modelos alternativos como la regresión binomial negativa o aplicar errores estándares robustos y estimar los parámetros por medio del estimador de log-pseudo verosemilitud (Wooldridge, 1999).

  • Independencia de Eventos: La regresión de Poisson asume que los eventos son independientes entre sí, lo cual puede no ser cierto en todos los contextos.

En resumen, mientras que la regresión lineal es adecuada para datos continuos y normalmente distribuidos, la regresión de Poisson es más apropiada para datos de conteo, especialmente cuando estos datos no cumplen con los supuestos de la regresión lineal. La elección del modelo debe basarse en la naturaleza de los datos y las suposiciones subyacentes de cada técnica estadística.

2.2 Modelo con un predictor

library(asbio)
## Cargando paquete requerido: tcltk
## 
## Adjuntando el paquete: 'asbio'
## The following object is masked from 'package:lubridate':
## 
##     pm
data(crabs)
summary(crabs)
##  color  spine       width          satell           weight     
##  1:12   1: 37   Min.   :21.0   Min.   : 0.000   Min.   :1.200  
##  2:95   2: 15   1st Qu.:24.9   1st Qu.: 0.000   1st Qu.:2.000  
##  3:44   3:121   Median :26.1   Median : 2.000   Median :2.350  
##  4:22           Mean   :26.3   Mean   : 2.919   Mean   :2.437  
##                 3rd Qu.:27.7   3rd Qu.: 5.000   3rd Qu.:2.850  
##                 Max.   :33.5   Max.   :15.000   Max.   :5.200
library(ggplot2)
ggplot(crabs, aes(x=width, y=satell))+
  geom_point(color="red")+labs(y="Número de cangrejos macho satélites",
                    x= "Anchura")+theme_apa()+
  geom_smooth(method = "lm", se=T)
## `geom_smooth()` using formula = 'y ~ x'

library(texreg)
p1<-glm(satell ~width, data=crabs, family=poisson)

htmlreg(p1, single.row = F)
Statistical models
  Model 1
(Intercept) -3.30***
  (0.54)
width 0.16***
  (0.02)
AIC 927.18
BIC 933.48
Log Likelihood -461.59
Deviance 567.88
Num. obs. 173
***p < 0.001; **p < 0.01; *p < 0.05

2.2.0.1 Interpretación de coeficientes

exp(coef(p1))
## (Intercept)       width 
##  0.03670812  1.17826744

2.2.0.2 Efectos

library(effects)
plot(allEffects(p1))

2.3 Más de un predictor

p2<-glm(satell ~color+spine+width+weight, 
        family = poisson, data=crabs)
p2f<-drop1(p2, ~., test = "Chisq")

print(p2f)
## Single term deletions
## 
## Model:
## satell ~ color + spine + width + weight
##        Df Deviance    AIC    LRT Pr(>Chi)   
## <none>      549.59 920.88                   
## color   3   558.83 924.12 9.2405 0.026258 * 
## spine   2   551.38 918.68 1.7947 0.407644   
## width   1   549.70 919.00 0.1169 0.732441   
## weight  1   558.63 927.93 9.0439 0.002636 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
p2ff<-glm(satell ~weight+color, family = poisson,
          data=crabs)

expb <- exp(coef(p2ff))
se <- summary(p2ff)$coefficients[, "Std. Error"]
expse <- expb * se
resum<-summary(p2ff)
pv<-resum$coefficients[,"Pr(>|z|)"]
tab<-data.frame(Estimate= expb,
                Std_Error=expse,
                p.value= pv)
colnames(tab)<-c("Estimate", "Str. Error", "p-value")

apa_table(tab, caption = "Tabla regresión de Poisson (multivariada)", )
(#tab:unnamed-chunk-35) Tabla regresión de Poisson (multivariada)
Estimate Str. Error p-value
(Intercept) 0.95 0.22 0.83
weight 1.73 0.12 0.00
color2 0.81 0.13 0.18
color3 0.64 0.11 0.01
color4 0.64 0.13 0.03

2.3.0.1 Dominancia de predictores (Poisson)

library(dominanceanalysis)
res<-dominanceAnalysis(p2ff)

plot(res,which.graph= "conditional",
     fit.function="r2.m")

plot(res, which.graph="general",
     fit.function="r2.m")

2.3.0.2 Coeficiente de Determinación \(Pseudo~R^2\)

library(performance)
r2(p2ff)
## # R2 for Generalized Linear Regression
##   Nagelkerke's R2: 0.384

2.4 Diagnóstico y predicción: Poisson

#install.packages("ggResidpanel")
library(ggResidpanel)
resid_panel(p2ff)

library(DHARMa)
simulateResiduals(p2ff, plot=T)

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.9692204 0.1262143 1 0.01960219 0.7382982 0.05306938 0.0102588 0.04577162 0.08714838 0.06708433 0.1026964 0.03375695 0.996 0.059697 1 0.9207625 0.3718092 0.04667784 0.0349914 0.784124 ...
2.4.0.0.1 Predicción
predi<-data.frame(width=c(27,30, 33.3,37, 40, 47))

pv<-predict(p1, predi, type="response")
pv
##         1         2         3         4         5         6 
##  3.078554  5.035916  8.653330 15.877627 25.972707 81.888770

2.5 Regresión de Poisson para tasas de incidencia

Los modelos lineales generales de Poisson para tasas de incidencia son una extensión de los modelos de Poisson tradicionales. Son particularmente útiles cuando se desea modelar tasas de incidencia, es decir, el número de eventos en relación con alguna medida de exposición o tamaño de población. El parámetro de compensación, que suele denotarse como \(A_i\) (o simplemente “offset” en términos de modelado), juega un papel crucial en estos modelos. A continuación, describo los aspectos clave de estos modelos:

2.5.1 Concepto Básico

  1. Modelo de Poisson Tradicional: En su forma básica, un modelo de Poisson modela el número de veces que ocurre un evento, asumiendo que estos eventos siguen una distribución de Poisson y son independientes entre sí.

  2. Variable Dependiente: La variable dependiente en un modelo de Poisson es un conteo (por ejemplo, número de casos de una enfermedad).

2.5.2 Inclusión del Parámetro de Compensación (Offset)

  1. Propósito del Offset: El offset \(A_i\) se utiliza para ajustar la tasa de incidencia por un factor de exposición o tamaño de población. Por ejemplo, si estás modelando la incidencia de una enfermedad, el offset podría ser la población en riesgo.

  2. Modelo con Offset: El modelo tiene la forma \(\log(\lambda_i) = \beta_0 + \beta_1X_{1i} + \cdots + \beta_kX_{ki} + \log(A_i)\), donde \(\lambda_i\) es la tasa esperada de incidencia para la i-ésima observación, \(\beta_0, \beta_1, ..., \beta_k\) son los coeficientes del modelo, \(X_{1i}, ..., X_{ki}\) son las variables independientes, y \(A_i\) es el offset.

  3. Interpretación: En este modelo, el offset se incluye como un logaritmo, lo que implica que se modela la tasa de incidencia (número de eventos por unidad de exposición) en lugar del conteo total de eventos.

2.5.3 Estimación y Interpretación

  1. Estimación: Los parámetros del modelo se estiman comúnmente mediante máxima verosimilitud.

  2. Interpretación de Coeficientes: Los coeficientes se interpretan en términos de un efecto logarítmico sobre la tasa de incidencia. Por ejemplo, un coeficiente de 0.2 indica que, manteniendo todo lo demás constante, un incremento de una unidad en la variable independiente correspondiente aumenta la tasa de incidencia en un factor de \(e^{0.2}\).

2.5.4 Aplicaciones

  • Estos modelos son ampliamente utilizados en epidemiología para modelar tasas de incidencia de enfermedades.
  • También son aplicables en otros campos donde las tasas de eventos por unidad de exposición son de interés, como en estudios de seguridad vial (por ejemplo, accidentes por millas conducidas).

2.5.5 Consideraciones

  • Es crucial asegurarse de que el offset sea adecuado para los datos y el problema en cuestión.
  • Al igual que con cualquier modelo estadístico, es importante considerar y verificar los supuestos subyacentes del modelo.

En resumen, los modelos lineales generales de Poisson para tasas de incidencia ofrecen una herramienta poderosa para analizar datos de conteo ajustados por una medida de exposición, lo que permite una interpretación más precisa y relevante en contextos donde el “tamaño” de la población o el nivel de exposición varía entre las observaciones.

#install.packages("ISwR")
library(ISwR)
data("eba1977")
summary(eba1977)
##          city      age         pop             cases       
##  Fredericia:6   40-54:4   Min.   : 509.0   Min.   : 2.000  
##  Horsens   :6   55-59:4   1st Qu.: 628.0   1st Qu.: 7.000  
##  Kolding   :6   60-64:4   Median : 791.0   Median :10.000  
##  Vejle     :6   65-69:4   Mean   :1100.3   Mean   : 9.333  
##                 70-74:4   3rd Qu.: 954.8   3rd Qu.:11.000  
##                 75+  :4   Max.   :3142.0   Max.   :15.000

El parámetro \(A_i\) sería así:

\[ Tasa= \frac{cases}{pop} \]

En donde cases= casos y pop= población total.

eba1977$logpop<-log(eba1977$pop)
pr1<-glm(cases~city+age+offset(logpop), family = poisson, data=eba1977)

htmlreg(pr1,single.row = T)
Statistical models
  Model 1
(Intercept) -5.63 (0.20)***
cityHorsens -0.33 (0.18)
cityKolding -0.37 (0.19)*
cityVejle -0.27 (0.19)
age55-59 1.10 (0.25)***
age60-64 1.52 (0.23)***
age65-69 1.77 (0.23)***
age70-74 1.86 (0.24)***
age75+ 1.42 (0.25)***
AIC 137.84
BIC 148.44
Log Likelihood -59.92
Deviance 23.45
Num. obs. 24
***p < 0.001; **p < 0.01; *p < 0.05

Interpretar los coeficientes se hace de la misma manera que otras veces:

exp(coef(pr1))
## (Intercept) cityHorsens cityKolding   cityVejle    age55-59    age60-64 
## 0.003581174 0.718880610 0.689667168 0.761612264 3.007213795 4.565884929 
##    age65-69    age70-74      age75+ 
## 5.857402508 6.403619032 4.135686847

2.6 Predicciones

test.data <- data.frame(city = "Kolding",
age = "40-54",
pop = 1000,
logpop = log(1000))
predicted.value <- predict(pr1, test.data,
type = "response")
predicted.value
##        1 
## 2.469818

2.7 ¿Qué modelo utilizar?

Hay toda una discusión sobre el uso de modelos de conteo. Pero todo al final, al igual que en otras entregas, depende de los supuestos. El modelo de Poisson es un modelo estadístico que se utiliza comúnmente para describir la distribución de eventos raros o poco frecuentes en un intervalo fijo de tiempo o espacio. En el contexto de la regresión de Poisson, se asume que la varianza de la variable dependiente es igual a su media, una propiedad conocida como equidispersión. Sin embargo, en la práctica, a menudo se encuentra que los datos reales no cumplen con esta suposición, lo que lleva al fenómeno conocido como sobredispersión.

En un modelo de Poisson, si \(Y\) es una variable aleatoria que representa el número de eventos, y \(\lambda\) es la tasa promedio de ocurrencia de estos eventos, entonces:

  • \(Y \sim \text{Poisson}(\lambda)\)
  • La función de probabilidad de \(Y\) es \(P(Y = k) = \frac{e^{-\lambda} \lambda^k}{k!}\) para \(k = 0, 1, 2, \ldots\)
  • La esperanza matemática (media) de \(Y\) es \(E[Y] = \lambda\)
  • La varianza de \(Y\) es \(\text{Var}(Y) = \lambda\)

2.7.1 Sobredispersión:

La sobredispersión ocurre cuando la varianza observada en los datos es mayor que la media, es decir, \(\text{Var}(Y) > E[Y]\). Esto puede deberse a varias razones, como heterogeneidad no observada en la población, eventos correlacionados o la presencia de datos atípicos.

2.7.1.1 Consecuencias de la Sobredispersión:

  1. Estimaciones Sesgadas: En presencia de sobredispersión, las estimaciones de los parámetros del modelo de Poisson pueden estar sesgadas.

  2. Errores Estándar Subestimados: Los errores estándar de las estimaciones pueden subestimarse, llevando a inferencias estadísticas incorrectas, como intervalos de confianza demasiado estrechos o pruebas de hipótesis que rechazan incorrectamente la hipótesis nula.

2.7.2 Tratamiento Matemático de la Sobredispersión: Modelo de regresión binomial negativa

Una forma común de abordar la sobredispersión es a través del Modelo Binomial Negativo, que introduce un parámetro adicional para modelar la variabilidad extra. En este modelo:

  • Si \(Y\) sigue una distribución Binomial Negativa, \(Y \sim \text{NB}(r, p)\)
  • La media es \(E[Y] = \frac{pr}{1 - p}\)
  • La varianza es \(\text{Var}(Y) = \frac{pr}{(1 - p)^2}\)
  • Aquí, \(r\) es un parámetro que controla la dispersión. Si \(r \rightarrow \infty\), la distribución Binomial Negativa se aproxima a una distribución de Poisson.

2.7.2.1 Desarrollo Matemático:

Para un modelo de regresión, donde \(\lambda\) depende de variables explicativas \(X\), en el modelo de Poisson, se tiene:

  • \(\log(\lambda) = X\beta\)
  • \(\lambda = e^{X\beta}\)

En el caso del modelo Binomial Negativo, se agrega un componente para modelar la sobredispersión:

  • \(\log(\lambda) = X\beta + \log(r)\)
  • \(\lambda = e^{X\beta} \cdot r\)

Donde \(r\) representa el grado de sobredispersión en el modelo. Este enfoque permite una mayor flexibilidad en el modelado de datos con varianza mayor que la media, proporcionando estimaciones más realistas y confiables en presencia de sobredispersión.

2.7.3 Poisson por estimación de log pseudo verosimilitud

Cuando se trata la sobredispersión en modelos de Poisson, una de las técnicas utilizadas es la estimación por log-pseudo verosimilitud. Esta técnica puede ofrecer estimaciones robustas de los parámetros del modelo incluso cuando hay sobredispersión. Sin embargo, es importante notar que la log-pseudo verosimilitud no “resuelve” el problema de la sobredispersión en sí, sino que proporciona una forma de manejarlo durante la estimación de los parámetros.

2.7.3.1 Log-Pseudo Verosimilitud en el Modelo de Poisson:

En el contexto de la regresión de Poisson, la función de verosimilitud para una muestra de \(n\) observaciones independientes \(y_i\) con medias \(\lambda_i\) es:

\[ L(\beta) = \prod_{i=1}^{n} \frac{e^{-\lambda_i} \lambda_i^{y_i}}{y_i!} \]

Donde \(\lambda_i = \exp(X_i \beta)\) y \(X_i\) es el vector de variables independientes para la observación \(i\).

La función de log-verosimilitud es el logaritmo natural de la función de verosimilitud:

\[ \log L(\beta) = \sum_{i=1}^{n} \left( -\lambda_i + y_i \log(\lambda_i) - \log(y_i!) \right) \]

2.7.3.2 Log-Pseudo Verosimilitud:

Cuando hay sobredispersión, la varianza es mayor que la media. Para abordar esto, se puede modificar la función de log-verosimilitud para incluir un parámetro adicional que capture la sobredispersión. Sin embargo, en lugar de modificar directamente la función de verosimilitud, se utiliza una técnica conocida como log-pseudo verosimilitud, donde se ajustan los errores estándar de los estimadores para reflejar la sobredispersión.

La función de log-pseudo verosimilitud en sí misma no cambia; lo que cambia es cómo se calculan los errores estándar de las estimaciones de los parámetros. En lugar de usar la matriz de información de Fisher estándar (basada en la suposición de equidispersión), se utiliza una matriz de información empírica o “sandwich” que es más robusta a la presencia de sobredispersión.

2.7.3.3 Cálculo de Errores Estándar Robustos:

  1. Estimar los parámetros \(\beta\) usando la log-verosimilitud estándar.

  2. Calcular la matriz de varianzas y covarianzas robusta, también conocida como el estimador “sandwich”, que tiene en cuenta la sobredispersión. Esta matriz se calcula como:

    \[ \text{Var}(\hat{\beta}) = (X^T W X)^{-1} X^T W D W X (X^T W X)^{-1} \]

    Donde:

    • \(X\) es la matriz de diseño.
    • \(W\) es una matriz diagonal con los pesos (basados en la varianza estimada bajo la sobredispersión).
    • \(D\) es una matriz diagonal con los residuos al cuadrado.

Esta aproximación mejora la robustez de las estimaciones en presencia de sobredispersión, pero no altera el hecho fundamental de que si hay sobredispersión significativa, un modelo alternativo como el binomial negativo puede ser más apropiado. La log-pseudo verosimilitud proporciona una forma de manejar la sobredispersión sin cambiar el modelo subyacente, pero no elimina la necesidad de considerar modelos que puedan capturar mejor la estructura de los datos. Aunque en contextos de datos de panel (o datos multinivel), log-pseudo verosimilitud resulta más potente y estima de manera más robusta los parámetros en contextos en donde la heterogeneidad no observable de los individuos en la muestra requiere modelarse. En estos contextos tranformaciones como la de efectos fijos (o within transformation) comúnmente usada en econometría es más factible en Poisson ya que no es posible eliminar el efecto de dicha heterogeneidad en modelos binomiales negativos usando efectos fijos, cayendo en un problema de parámetros incidentales. Pero en muchos contextos (estudios de sección cruzada) la regresión binomial negativa puede ser útil

3 Modelos lineales mixtos:

Los modelos lineales mixtos son una extensión de los modelos lineales clásicos que permiten el análisis de datos con estructuras de correlación complejas y la inclusión de efectos aleatorios además de los efectos fijos. Son particularmente útiles para analizar datos longitudinales, datos jerárquicos o agrupados, y para manejar la variabilidad tanto dentro como entre los grupos en un conjunto de datos.

3.0.1 Componentes Clave de los Modelos Lineales Mixtos:

  1. Efectos Fijos: Estos son similares a los coeficientes en un modelo de regresión lineal convencional. Representan las relaciones promedio entre las variables independientes y la variable dependiente en la población.

  2. Efectos Aleatorios: Estos son componentes del modelo que varían aleatoriamente para diferentes niveles de una o más variables agrupadoras (por ejemplo, sujetos en un estudio longitudinal, escuelas en un análisis de datos educativos, etc.). Permiten que el modelo capture la variabilidad en los datos que no se explica por los efectos fijos.

  3. Variable Dependiente: Es la variable de resultado que se modela como una combinación lineal de los efectos fijos y aleatorios más un término de error.

3.0.2 Estructura del Modelo:

Un modelo lineal mixto se puede expresar en forma matemática como:

\[ Y = X\beta + Z\gamma + \epsilon \]

Donde: - \(Y\) es el vector de la variable dependiente. - \(X\) es la matriz de diseño para los efectos fijos. - \(\beta\) es el vector de efectos fijos. - \(Z\) es la matriz de diseño para los efectos aleatorios. - \(\gamma\) es el vector de efectos aleatorios. - \(\epsilon\) es el vector de errores, generalmente asumido como normalmente distribuido con media cero y varianza constante.

3.0.3 Aplicaciones:

Los modelos lineales mixtos se utilizan en una amplia gama de disciplinas, incluyendo:

  • Biometría: Para estudios longitudinales donde se mide a los mismos sujetos a lo largo del tiempo.
  • Educación: Para analizar datos de estudiantes agrupados por aulas o escuelas.
  • Investigación Agrícola: En experimentos donde las unidades experimentales (como parcelas de tierra) están agrupadas o son medidas repetidamente.
  • Investigación Clínica: Para estudios donde los pacientes pueden ser tratados en diferentes clínicas o recibir diferentes tratamientos a lo largo del tiempo.

3.0.4 Ventajas:

  • Manejo de Correlaciones y Variabilidad Intra-Grupo: Los modelos lineales mixtos son capaces de manejar la correlación y la variabilidad intra-grupo de manera efectiva.
  • Flexibilidad: Pueden modelar efectos que varían a lo largo del tiempo o entre grupos.
  • Eficiencia en la Estimación: Proporcionan estimaciones eficientes de los efectos fijos incluso cuando hay una estructura de correlación compleja.

3.0.5 Software:

Existen varios paquetes de software estadístico que pueden realizar análisis utilizando modelos lineales mixtos, incluyendo R (con paquetes como lme4 y nlme), SAS (procedimiento MIXED), SPSS y otros. Estos paquetes facilitan el ajuste y la interpretación de estos modelos en diversas situaciones de investigación.

3.1 Aclaraciones sobre efectos fijos en modelos mixtos vs. econometría de datos de panel:

Los efectos fijos en modelos lineales mixtos comparten similitudes con los efectos fijos en modelos de datos de panel en econometría, aunque existen diferencias en el contexto y la forma en que se aplican y se interpretan.

3.1.1 Modelos Lineales Mixtos:

En los modelos lineales mixtos, los efectos fijos son coeficientes que representan las relaciones promedio entre las variables independientes y la variable dependiente. Estos efectos se consideran constantes a través de todas las observaciones o grupos en el análisis. La incorporación de efectos aleatorios en estos modelos permite capturar variaciones en los datos que no son explicadas por los efectos fijos, tales como diferencias entre sujetos o grupos que no están directamente relacionadas con las variables independientes estudiadas.

3.1.2 Modelos de Datos de Panel:

En los modelos de datos de panel, especialmente en econometría, los efectos fijos también se utilizan para controlar la heterogeneidad no observada que puede ser constante a lo largo del tiempo pero que varía entre las unidades transversales (como individuos, empresas o países). En este contexto, un modelo de efectos fijos asume que esta heterogeneidad no observada puede ser capturada permitiendo que el intercepto varíe entre las unidades transversales.

3.1.3 Comparación y Diferencias:

  1. Contexto de Uso:
    • En modelos lineales mixtos, los efectos fijos y aleatorios se utilizan para analizar datos con estructuras complejas, como datos longitudinales o jerárquicos.
    • En modelos de datos de panel, los efectos fijos se enfocan en controlar la heterogeneidad entre unidades transversales en datos que tienen una dimensión temporal y otra transversal.
  2. Interpretación:
    • En los modelos lineales mixtos, los efectos fijos representan efectos promedio, mientras que los efectos aleatorios capturan variaciones específicas del grupo o individuo.
    • En los modelos de panel, los efectos fijos se interpretan como la variación entre unidades transversales, controlando así por heterogeneidad no observada.
  3. Metodología:
    • Los modelos lineales mixtos se utilizan ampliamente en áreas como la biología, la medicina y la psicología, donde los efectos aleatorios son esenciales para modelar la correlación dentro de los grupos.
    • Los modelos de efectos fijos en datos de panel son comunes en econometría y se enfocan en eliminar los efectos de variables no observadas que no varían con el tiempo.

En resumen, mientras que los efectos fijos en ambos contextos tienen la función de capturar efectos constantes en diferentes niveles de análisis, la naturaleza y aplicación de estos efectos difieren entre los modelos lineales mixtos y los modelos de datos de panel en econometría.

4 Referencias