6.3 Regresión cuando X es una variable binaria
En lugar de usar un regresor continuo X, de podría estar interesados en ejecutar la regresión
Yi=β0+β1Di+ui
donde Di es una variable binaria, una llamada variable ficticia (dummy variable). Por ejemplo, se puede definir Di de la siguiente manera:
Di={1 si STR en iésimo distrito escolar < 200 si STR en iésimo distrito escolar ≥ 20
El modelo de regresión ahora es
TestScorei=β0+β1Di+ui.
Es momento de ver cómo se comportan estos datos en un diagrama de dispersión:
# Cree la variable ficticia como se define arriba
$D <- CASchools$STR < 20
CASchools
# Graficar los datos
plot(CASchools$D, CASchools$score, # proporciona los datos que se trazarán
pch = 20, # utilizar círculos rellenos como símbolos de la gráfica
cex = 0.5, # establecer el tamaño de los símbolos de la gráfica en 0.5
col = "Steelblue", # establece el color de los símbolos en "Steelblue"
xlab = expression(D[i]), # establecer el título y los nombres de los ejes
ylab = "Resultado de la prueba",
main = "Regresión ficticia")
Con D como regresor, no es útil pensar en β1 como un parámetro de pendiente, ya que Di∈{0,1}; es decir, solo se observan dos valores discretos en lugar de un continuo de valores regresores. No hay una línea continua que represente la función de expectativa condicional E(TestScorei|Di), teniendo en cuenta que esta función está definida únicamente para x - en las posiciones 0 y 1.
Por tanto, la interpretación de los coeficientes en este modelo de regresión es la siguiente:
E(Yi|Di=0)=β0, por lo que β0 es la puntuación de prueba esperada en los distritos donde Di=0 donde STR está por encima de 20.
E(Yi|Di=1)=β0+β1 o, usando el resultado anterior, β1=E(Yi|Di=1)−E(Yi|Di=0). Por lo tanto, β1 es la diferencia en las expectativas específicas del grupo; es decir, la diferencia en la puntuación esperada de la prueba entre los distritos con STR<20 y aquellos con STR≥20.
Ahora se usará R para estimar un modelo de regresión ficticio según lo definido por las ecuaciones (5.2) y (5.3).
# estimar el modelo de regresión ficticia
<- lm(score ~ D, data = CASchools)
dummy_model summary(dummy_model)
#>
#> Call:
#> lm(formula = score ~ D, data = CASchools)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -50.496 -14.029 -0.346 12.884 49.504
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 650.077 1.393 466.666 < 2e-16 ***
#> DTRUE 7.169 1.847 3.882 0.00012 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 18.74 on 418 degrees of freedom
#> Multiple R-squared: 0.0348, Adjusted R-squared: 0.0325
#> F-statistic: 15.07 on 1 and 418 DF, p-value: 0.0001202
El vector CASchools$D tiene el tipo logical (para ver esto, usar typeof (CASchools$D)) que es mostrado en la salida de summary (modelo_dummy): la etiqueta DTRUE establece que todas las entradas TRUE están codificadas como 1 y todas las entradas FALSE se codifican como 0. Por lo tanto, la interpretación del coeficiente DTRUE es como se indicó anteriormente para β1.
Se puede ver como predecir el puntaje de prueba esperado en distritos con STR<20 (Di=1) será 650.1+7.17=657.27 mientras que los distritos con STR≥20 (Di=0) se espera que tenga un puntaje promedio de prueba de solo 650.1.
Las predicciones específicas de grupo se pueden agregar al gráfico mediante la ejecución del siguiente fragmento de código.
# agregar predicciones específicas de grupo a la gráfica
points(x = CASchools$D,
y = predict(dummy_model),
col = "red",
pch = 20)
Aquí se usa la función predict() para obtener estimaciones de las medias específicas del grupo. Los puntos rojos representan los promedios de estos grupos de muestra. En consecuencia, ˆβ1=7.17 puede verse como la diferencia en los promedios del grupo.
summary(dummy_model) también responde a la pregunta de si existe una diferencia estadísticamente significativa en las medias de los grupos. Esto, a su vez, apoyaría la hipótesis de que los estudiantes se desempeñan de manera diferente cuando se les enseña en clases pequeñas. Se puede evaluar esto mediante una prueba de dos colas de la hipótesis H0:β1=0. Convenientemente, el estadístico t y el valor p correspondiente para esta prueba se calculan mediante summary().
Dado que el valor t =3.88>1.96, se rechaza la hipótesis nula en el nivel de significancia de 5%. Se obtiene la misma conclusión cuando se usa el valor p, que reporta significancia hasta el nivel 0.00012%.
Como se hizo con linear_model, alternativamente se puede usar la función confint() para calcular un intervalo de confianza de 95% para la verdadera diferencia en las medias y ver si el valor hipotético es un elemento de este conjunto de confianza.
# intervalos de confianza para coeficientes en el modelo de regresión ficticia
confint(dummy_model)
#> 2.5 % 97.5 %
#> (Intercept) 647.338594 652.81500
#> DTRUE 3.539562 10.79931
Se rechaza la hipótesis de que no existe diferencia entre las medias de los grupos en el nivel de significancia de 5%, ya que β1,0=0 se encuentra fuera de [3.54,10.8], el intervalo de confianza de 95% para el coeficiente de D.