Este taller está basado en los ejemplos del libro Data Analysis Using Regression and Multilevel/Hierarchical Models. Los autores del libro dispusieron los datos y los scripts de R en el siguiente enlace http://www.stat.columbia.edu/~gelman/arm/. Visite el enlace para descargar el material necesario.
\[\begin{align*} y_{ij} &\sim N(\mu_{ij}, \sigma^2_y) \\ \mu_{ij} &= 4 - 5 x_{ij} + b_{1i} x_{ij} \\ \sigma^2_y &= 4 \\ b_{1} &\sim N(0, \sigma^2_{b1}=1000) \\ x_{ij} &\sim Beta(\alpha=2, \beta=4) \end{align*}\]
Escriba los 4 elementos del vector de parámetros \(\boldsymbol{\Theta}\) del modelo.
&&& por el código correcto para simular los datos solicitados.ni <- &&&
G <- &&&
nobs <- &&& * &&& # Numero total de observaciones
grupo <- factor(rep(x=1:G, &&&=ni)) # Para crear la variable grupal
obs <- rep(x=1:ni, times=G) # Para identificar las obs por grupo
&&& <- rbeta(n=nobs, &&&=2, &&&=&&&) # La covariable x
b1 <- rnorm(n=&&&, mean=&&&, sd=sqrt(&&&)) # La pendiente aleatoria
&&& <- rep(x=b1, &&&=&&&) # La pendiente repetida
media <- &&& + &&& * x + b1 * x # La media
y <- &&&(n=nobs, mean=&&&, sd=sqrt(&&&)) # La variable respuesta
datos <- &&&(grupo, obs, b1, x, &&&) # Organizando el dataframe
El objeto datos contendrá los datos simulados. Imprima en pantalla los datos y mire explore las variables, encuéntrele sentido a los números.
¿Logra ver en la figura el efecto de \(b_1\) para inducir pendientes aleatorias?
En este ejemplo con datos artificiales (simulados) se usó \(\sigma^2_{b1}=1000\) y por eso las nubes tienen pendientes muy diferentes, este patrón en la figura es un indicio claro que un modelo mixto con pendiente aleatoria es apropiado. En la práctica esa varianza no es tan grande y es necesario usar una prueba de hipótesis (\(H_0: \sigma^2_{b1}=0\) vs \(H_1: \sigma^2_{b1}>0\)) en lugar del dibujo para determinar si el modelo con pendiente aleatoria es el que se necesita.
Encuentre las estimaciones \(\hat{\boldsymbol{\Theta}}\) del vector \(\boldsymbol{\Theta}\). ¿Qué tan cerca está su estimación del vector real?
Encuentre las predicciones de los \(b_1\) y compárelas con los valores verdaderos.
Vuelva a simular un dataframe datos2 pero con \(\sigma^2_{b1}=0\) y dibuje los datos. ¿Qué observa ahora con las nubes de puntos.