6.7 Ejercicios
1. Prueba de dos hipótesis nulas por separado
Considere el modelo de regresión estimado
\[ \widehat{TestScore} = \underset{(23.96)}{567.43} - \underset{(0.85)}{7.15} \times STR, \, R^2 = 0.8976, \, SER=15.19 \]
con errores estándar entre paréntesis.
Instrucciones:
- Calcular el valor \(p\) para una prueba \(t\) de la hipótesis de que la intersección es cero frente a la alternativa de dos lados que no es cero. Guardar el resultado en p_int
- Calcular el valor \(p\) para una prueba \(t\) de la hipótesis de que el coeficiente de STR es cero frente a la alternativa bilateral de que no es cero. Guardar el resultado en p_STR
Sugerencia:
- Ambas hipótesis pueden probarse individualmente mediante una prueba de dos caras. Utilizar pnorm() para obtener probabilidades acumuladas de resultados estándar distribuidos normalmente.
2. Dos hipótesis nulas que no puedes rechazar, ¿verdad?
Considere nuevamente el modelo de regresión estimado
\[\widehat{TestScore} = \underset{(23.96)}{567.43} - \underset{(0.85)}{7.15} \times STR, \, R^2 = 0.8976, \,SER=15.19\]
¿Puede rechazar las hipótesis nulas discutidas en el ejercicio de código anterior utilizando pruebas \(t\) individuales al nivel de significancia de \(5\%\)?
Las variables t_int y t_STR son los estadísticos \(t\). Ambos están disponibles en el entorno de trabajo.
Instrucciones:
- Reunir t_int y t_STR en una prueba vectorial y usar operadores lógicos para verificar si se aplica la regla de rechazo correspondiente.
Sugerencias:
- Ambas pruebas son pruebas \(t\) de dos caras. El Concepto clave 5.2 resume cómo se realiza una prueba \(t\) bilateral.
- Utilizar qnorm() para obtener valores críticos normales estándar.
3. Intervalos de confianza
mod, el objeto de la clase lm que contiene el modelo de regresión estimado
\[\widehat{TestScore} = \underset{(23.96)}{567.43} - \underset{(0.85)}{7.15} \times STR, \, R^2 = 0.8976, \,SER=15.19\]
está disponible en el entorno de trabajo.
Instrucciones:
- Calcuar los intervalos de confianza de $90% $ para ambos coeficientes.
Sugerencia:
- Utilizar la función confint(), consultar ?Confint. El argumento level establece el nivel de confianza que se utilizará.
4. Un intervalo de confianza para la media I
Considere el modelo de regresión \[Y_i = \beta_1 + u_i\] donde \(Y_i \sim \mathcal{N}(\mu, \sigma^2)\). Siguiendo la discusión que precede a la ecuación (6.1), un intervalo de confianza de \(95\%\) para la media de \(Y_i\) se puede calcular como
\[CI^{\mu}_{0.95} = \left[\hat\mu - 1.96 \times \frac{\sigma}{\sqrt{n}}; \, \hat\mu + 1.96 \times \frac{\sigma}{\sqrt{n}} \right].\]
Instrucciones:
- Muestra \(n = 100\) observaciones de una distribución normal con varianza \(100\) y media \(10\).
- Utilizar la muestra para estimar \(\beta_1\). Guardar la estimación en mu_hat.
- Suponga que se conoce \(\sigma^2 = 100\). Reemplazar las NA en el código siguiente para obtener un intervalo de confianza de \(95\%\) para la media de \(Y_i\).
Sugerencia:
- Utilizar la función confint(), consultar ?Confint. El argumento level establece el nivel de confianza.
5. Un intervalo de confianza para la media II
Por razones históricas, algunas funciones de R que se usan para obtener inferencias sobre los parámetros del modelo, entre ellas confint() y summary(), se basan en la distribución \(t\) en lugar de utilizar la aproximación normal de muestra grande. Esta es la razón por la que para tamaños de muestra pequeños (y por lo tanto pequeños grados de libertad), los valores de \(p\) y los intervalos de confianza informados por estas funciones se desvían de los calculados utilizando valores críticos o probabilidades acumuladas de la distribución normal estándar.
El intervalo de confianza de \(95\%\) para la media del ejercicio anterior es \([9.13, 13.05]\).
Instrucciones:
- Se han asignado 100 observaciones muestreadas de una distribución normal con \(\mu = 10\) y \(\sigma^2 = 100\) al vector s que está disponible en el entorno de trabajo.
- Configurar un modelo de regresión adecuado para estimar la media de las observaciones en s. Luego usar confint() para calcular un intervalo de confianza de \(95\%\) para la media.
- (Comprobar que el resultado sea diferente del intervalo informado anteriormente).
6. Regresión en una variable ficticia I
El capítulo 6.3 analiza la regresión cuando \(X\) es una variable ficticia. Se ha utilizado un ciclo for() para generar una variable binaria que indica si un distrito escolar en el conjunto de datos de CASchools tiene una proporción alumno-maestro por debajo de \(20\). Aunque es instructivo usar un bucle para esto, existen formas alternativas de lograr lo mismo con menos líneas de código.
Un data.frame DF con \(100\) observaciones de una variable X está disponible en el entorno de trabajo.
Instrucciones:
Use ifelse() para generar un vector binario ficticio que indique si las observaciones en X son positivas.
Agregar dummy al data.frame DF.
7. Regresión en una variable ficticia II
Un data.frame DF con \(100\) observaciones en Y y la variable binaria D del ejercicio anterior está disponible en el entorno de trabajo.
Instrucciones:
Calcular las medias muestrales específicas del grupo de las observaciones en Y: Guardar la media de las observaciones en Y donde dummy == 1 a mu_Y_D1 y asignar la media de esas observaciones con D == 0 a mu_Y_D0.
Usar lm() para retroceder Y en D; es decir, estimar los coeficientes en el modelo \[Y_i = \beta_0 + \beta_1 \times D_i + u_i.\]
Verificar que las estimaciones de los coeficientes \(\beta_0\) y \(\beta_1\) reflejen medias de muestra específicas. ¿Puede decir cuál (no es necesario enviar el código)?
8. Regresión en una variable ficticia III
En este ejercicio, se deben visualizar algunos de los resultados del modelo de regresión ficticia \[\widehat{Y}_i = -0.66 + 1.43 \times D_i\] estimado en el ejercicio anterior.
Un data.frame DF con 100 observaciones en X y la variable binaria dummy así como el objeto modelo dummy_mod del ejercicio anterior están disponibles en el entorno de trabajo.
Instrucciones:
Dibujar un diagrama visualmente atractivo de las observaciones en \(Y\) y \(D\) basado en el fragmento de código proporcionado en Script.R. Reemplazar ??? por las expresiones correctas.
Agregar la línea de regresión al gráfico.
9. Brecha salarial de género I
El conjunto de datos de corte transversal CPS1985 es una submuestra de la Encuesta de población actual de mayo de 1985 realizada por la Oficina del Censo de EE.UU. Que contiene observaciones sobre, entre otras cosas, el salario y el género de los empleados.
CPS1985 es parte del paquete AER.
Instrucciones:
Adjuntar el paquete AER y cargar el conjunto de datos CPS1985.
Estimar el modelo de regresión ficticia \[wage_i = \beta_0 + \beta_1 \cdot female_i + u_i\] donde
\[\begin{align*} female_i = \begin{cases} 1, & \text{si empleada} \, i \, \text{es female,} \\ 0, & \text{si empleado} \, i \, \text{es male.} \end{cases} \end{align*}\]
Guardar el resultado en wage_mod.
10. Brecha salarial de género II
La regresión salarial del ejercicio anterior arroja \[\widehat{wage}_i = 9.995 - 2.116 \cdot female_i.\]
El objeto modelo dummy_mod está disponible en el entorno de trabajo.
Instrucciones:
- Probar la hipótesis de que el coeficiente de \(female_i\) es cero frente a la alternativa de que no es cero. La hipótesis nula implica que no existe brecha salarial de género. Utilizar el estimador robusto de heterocedasticidad propuesto por White (1980).
Sugerencias:
vcovHC() calcula estimaciones robustas a la heterocedasticidad de la matriz de covarianza de los estimadores de coeficientes para el modelo proporcionado. El estimador propuesto por White (1980) se calcula si establece type = “HC0”.
La función coeftest() realiza pruebas de significancia para los coeficientes en los objetos del modelo. Se puede proporcionar una matriz de covarianza usando el argumento vcov..
11. Cálculo de errores estándar robustos de heterocedasticidad
En el modelo de regresión simple, la matriz de covarianza de los estimadores de coeficientes se denota
\[\begin{equation} \text{Var} \begin{pmatrix} \hat\beta_0 \ \hat\beta_1 \end{pmatrix} = \begin{pmatrix} \text{Var}(\hat\beta_0) & \text{Cov}(\hat\beta_0,\hat\beta_1) \\ \text{Cov}(\hat\beta_0,\hat\beta_1) & \text{Var}(\hat\beta_1) \end{pmatrix} \end{equation}\]
La función vcovHC se puede utilizar para obtener estimaciones de esta matriz para un objeto modelo de interés.
dummy_mod, un objeto modelo que contiene la regresión salarial tratada en los Ejercicios 9 y 10 está disponible en el entorno de trabajo.
Instrucciones:
- Calcular errores estándar robustos del tipo HC1 para los estimadores de coeficientes en el objeto modelo dummy_mod. Almacenar los errores estándar en un vector llamado rob_SEs.
Sugerencias
- Los errores estándar que se buscan se pueden obtener tomando la raíz cuadrada de los elementos diagonales de la matriz de covarianza estimada.
- diag(A) devuelve los elementos diagonales de la matriz A.
12. Intervalos de confianza robustos
La función confint() calcula los intervalos de confianza para los modelos de regresión que utilizan errores estándar de solo homocedasticidad, por lo que esta función no es una opción cuando hay heterocedasticidad.
La función Rob_CI() en script.R está destinada a calcular e informar intervalos de confianza robustos a la heterocedasticidad para ambos coeficientes del modelo en un modelo de regresión simple.
gender_mod, un objeto modelo que contiene la regresión salarial tratada en los ejercicios anteriores está disponible en el entorno de trabajo.
Instrucciones:
- Completar el código de Rob_CI() dado en Script.R de modo que se devuelvan los límites superior e inferior de los intervalos de confianza robustos de \(95\%\). Utilizar errores estándar del tipo HC1.
- Utilizar la función Rob_CI() para obtener intervalos de confianza de \(95\%\) para los coeficientes del modelo en dummy_mod.
13. Un pequeño estudio de simulación — I
Considere el proceso de generación de datos (DGP)
\[\begin{align} X_i \sim& \, \mathcal{U}[2,10], \notag \\ e_i \sim& \, \mathcal{N}(0, X_i), \notag \\ Y_i =& \, \beta_1 X_i + e_i, \tag{6.4} \end{align}\]
donde \(\mathcal{U}[2,10]\) denota la distribución uniforme en el intervalo \([2,10]\) y \(\beta_1=2\).
Observe que los errores \(e_i\) son heterocedásticos, ya que la varianza de \(e_i\) es una función de \(X_i\).
Instrucciones:
- Escribir una función DGP_OLS que genere una muestra \((X_i,Y_i)\), \(i=1,…,100\) usando el DGP anterior y devuelva la estimación de MCO de \(\beta_1\) basada en esta muestra.
Sugerencia:
- runif() se puede utilizar para obtener muestras aleatorias de una distribución uniforme, consultar ?runif.
14. Un pequeño estudio de simulación — II
La función DGP_OLS() del ejercicio anterior está disponible en el entorno de trabajo.
Instrucciones:
- Utilizar replicate() para generar una muestra de \(1000\) estimaciones de MCO \(\widehat{\beta}_1\) usando la función DGP_OLS. Almacenar las estimaciones en un vector llamado estimates.
- Luego, estimar la varianza de \(\widehat{\beta}_1\) en (6.4): Calcular la varianza muestral de las estimaciones de \(1000\) MCO en estimates. Almacenar el resultado en est_var_OLS.
15. Un pequeño estudio de simulación — III
Según el teorema de Gauss-Markov, el estimador MCO en modelos de regresión lineal ya no es el estimador más eficiente entre los estimadores lineales condicionalmente insesgados cuando hay heterocedasticidad. En otras palabras, el estimador MCO pierde la propiedad AZUL cuando se viola el supuesto de homocedasticidad.
Resulta que MCO aplicado a las observaciones ponderadas \((w_i X_i, w_i Y_i)\) donde \(w_i=\frac{1}{\sigma_i}\) es el estimador AZUL bajo heterocedasticidad. Este estimador se denomina estimador de Mínimos Cuadrados Ponderados (MCP). Por tanto, cuando hay heterocedasticidad, el estimador MCP tiene una varianza menor que MCO.
La función DGP_OLS() y la varianza estimada est_var_OLS de los ejercicios anteriores están disponibles en el entorno de trabajo.
Instrucciones:
- Escribir una función DGP_WLS() que genere muestras de \(100\) usando el DGP presentado en el ejercicio 13 y devuelva la estimación de MCP de \(\beta_1\). Tratar \(\sigma_i\) como conocido; es decir, establecer \(w_i=\frac{1}{\sqrt{X_i}}\).
- Repetir el ejercicio 14 usando DGP_WLS(). Almacenar la estimación de la varianza en est_var_GLS.
- Comparar las varianzas estimadas est_var_OLS y est_var_GLS utilizando operadores lógicos ( < o > ).
Sugerencias:
- DGP_WLS() se puede obtener usando un código modificado de DGP_OLS().
- Recordar que las funciones son objetos y se puede imprimir el código de una función en la consola.