Pruebas individuales

Author

Rubén Cool

Pruebas sobre coeficientes individuales de regresión

Una vez determinado que al menos uno de los regresores es importante, la pregunta lógica es ¿cuál(es) sirve(n) de ellos? Si se agrega una variable a un modelo de regresión, la suma de cuadrados de la regresión aumenta, y la suma de cuadrados residuales disminuye. Se debe decidir si el aumento de la suma de cuadrados de la regresión es suficiente para garantizar el uso del regresor adicional en el modelo. La adición de un regresor también aumenta la varianza del valor ajustado \hat{y}, por lo que se debe tener cuidado de incluir sólo regresores que tengan valor para explicar la respuesta. Además, si se agrega un regresor no importante se puede aumentar el cuadrado medio de residuales, y con eso se disminuye la utilidad del modelo.

Las hipótesis para probar la significancia de cualquier coeficiente individual de regresión, como por ejemplo \beta_j, son:

H_0: \beta_j =0 \hspace{0.5cm} vs. \hspace{0.5cm} H_1: \beta_j \neq 0

Si no se rechaza H_0: \beta_j = 0, quiere decir que se puede eliminar el regresor x_j del modelo. El estadístico de prueba para esta hipótesis es:

t_0 = \frac{\hat{\beta}_j}{\sqrt{\hat{\sigma}^2 C_{jj}}} = \frac{\hat{\beta}_j}{\text{se}(\hat{\beta}_j)}

donde C_{jj} es el elemento diagonal de (\mathbf{X}^t\mathbf{X})^{-1} que corresponde a \hat{\beta}_j. Se rechaza la hipótesis nula H_0: \beta_j = 0 si \vert{}t_0\vert{} > t_{\alpha/2, n-k-1}. Nótese que ésta es en realidad una prueba parcial o marginal, porque el coeficiente de regresión \hat{\beta}_j depende de todas las demás variables regresoras x_i (i \neq j), que hay en el modelo. Así, se trata de una prueba de la contribución de x_j dados los demás regresores del modelo.

Ejemplo 1.

La base de datos longley, incluida en el paquete datasets de R, contiene información macroeconómica histórica de Estados Unidos correspondiente al periodo de 1947 a 1962. Estos datos permiten analizar la relación entre el número de personas empleadas y diversos indicadores económicos y demográficos. En este ejercicio, se debe construir un modelo de regresión lineal múltiple para explicar el comportamiento del empleo a partir de seis variables explicativas. Realiza un análisis estadístico que permita identificar qué variables económicas y demográficas están asociadas con el número de personas empleadas en Estados Unidos durante el periodo estudiado.

Descripción de las variables

Employed: Número de personas empleadas; variable dependiente.

GNP.deflator: Deflactor del producto nacional bruto, indicador del nivel de precios.

GNP: Producto nacional bruto nominal.

Unemployed: Número de personas desempleadas.

Armed.Forces: Número de personas pertenecientes a las fuerzas armadas.

Population: Población total de referencia.

Year: Año de observación.

Análisis de Multicolinealidad

# Cargar librerías y datos
library(datasets)
data(longley)

# Ajuste del modelo de regresión lineal múltiple
modelo0 <- lm(Employed ~ GNP.deflator + GNP + Unemployed + Armed.Forces + Population + Year, data = longley)


# Evaluación de Multicolinealidad (VIF)
# Requiere el paquete 'car'
if(!require(car)) install.packages("car")
library(car)
library(stats)
vif(modelo0)
GNP.deflator          GNP   Unemployed Armed.Forces   Population         Year 
   135.53244   1788.51348     33.61889      3.58893    399.15102    758.98060 

Con base en el VIF, se puede observar una presencia de multicolinealidad severa, ya que se obtiene que en diversas variables el VIF >5. Se decide eliminar la variable GNP ya que tiene el VIF mas alto.

# Ajuste del modelo de regresión lineal múltiple
modelo1 <- lm(Employed ~ GNP.deflator + Unemployed + Armed.Forces + Population + Year, data = longley)


vif(modelo1)
GNP.deflator   Unemployed Armed.Forces   Population         Year 
   78.372376     3.557776     2.800835   122.047678   271.189670 

Se sigue presentando un problema severo de multicolinealidad, ahora la variable a eliminar es Year debido a que tiene el VIF mas alto.

# Ajuste del modelo de regresión lineal múltiple
modelo2 <- lm(Employed ~ GNP.deflator + Unemployed + Armed.Forces + Population, data = longley)


vif(modelo2)
GNP.deflator   Unemployed Armed.Forces   Population 
   35.970754     3.147600     2.497795    34.588299 

Ahora. los VIF se han reducido bastante, pero aún tenemos el VIF>5 para la variable GNP.deflator. Por lo que decidimos eliminarla también.

# Ajuste del modelo de regresión lineal múltiple
modelo3 <- lm(Employed ~ Unemployed + Armed.Forces + Population, data = longley)


vif(modelo3)
  Unemployed Armed.Forces   Population 
    3.146686     1.918225     3.514335 

Podemos observar ahora que los valores de VIF<5, por lo que la multicolinealidad ahora no es alarmante. Por lo tanto el modelo inicial de regresión lineal múltiple es:

y=\beta_0 + \beta_1x_1+\beta_2x_2+\beta_3x_3 +\varepsilon

donde x_1: Unemployed, x_2: Armed.Forces y x_3: Population.

Prueba de significancia del Modelo

Ahora procedemos a realizar la prueba de significancia del modelo de regresión:

summary(modelo3)

Call:
lm(formula = Employed ~ Unemployed + Armed.Forces + Population, 
    data = longley)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.3835 -0.2868 -0.1353  0.3596  1.3382 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -1.323091   4.211566  -0.314  0.75880    
Unemployed   -0.012292   0.003354  -3.665  0.00324 ** 
Armed.Forces -0.001893   0.003516  -0.538  0.60019    
Population    0.605146   0.047617  12.709 2.55e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.6843 on 12 degrees of freedom
Multiple R-squared:  0.9696,    Adjusted R-squared:  0.962 
F-statistic: 127.7 on 3 and 12 DF,  p-value: 2.272e-09
  • Contraste de hipótesis H_0: \beta_1=\beta_2=\beta_3=0 \hspace{1cm} vs. \hspace{1cm} H_1: \beta_j\neq 0 para alguna j=1,2,3.

  • Estadístico de Prueba F_0=\frac{MS_{Reg}}{MS_{Res}}=127.7

  • Región de Rechazo

    Con un p-valor de 2.27 \times 10^{-9} y una significancia de \alpha=0.05, se cumple que p-valor es menor a \alpha, por lo que se rechaza H_0. Esto quiere decir que existe al menos una variable predictora entre Unemployed, Armed.Forces y Population que se relaciona de manera lineal con Employed.

Pruebas de hipótesis para los coeficientes individuales de regresión

Primero realizamos la prueba de significancia para las variables predictoras. Escogemos Armed.Forces porque es la que tiene un mayor p-valor.

  • Contraste de hipótesis

    H_0: \beta_2 =0 \hspace{0.5cm} vs. \hspace{0.5cm} H_1: \beta_2 \neq 0

  • Estadístico de prueba

    t_0=-0.538

  • Decisión

    Con una significancia de \alpha=0.05 y un p-valor de 0.60019 se cumple que p-valor es mayor a \alpha, por lo que no existe evidencia suficiente para rechazar H_0. Y la conclusión es que el regresor $x_2: $Armed.Forces no contribuye en forma significativa al modelo, dado que Unemployed y Population ya está también en el modelo.

Tomando en consideración la prueba de hipótesis individual, entonces el modelo de regresión lineal múltiple no debería considerar a la variable Armed.Forces, por lo que decidimos eliminarla. Esto conduce a un nuevo modelo con la siguiente estructura:

y=\beta_0 + \beta_1x_1+\beta_3x_3 +\varepsilon

Ahora analizaremos el summary de este nuevo modelo

modelo4 <- lm(Employed ~ Unemployed + Population, data = longley)
summary(modelo4)

Call:
lm(formula = Employed ~ Unemployed + Population, data = longley)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.2975 -0.3420 -0.1206  0.4006  1.3560 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.135325   3.487991  -0.039 0.969641    
Unemployed  -0.011151   0.002528  -4.410 0.000704 ***
Population   0.587728   0.033967  17.303 2.34e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.6654 on 13 degrees of freedom
Multiple R-squared:  0.9689,    Adjusted R-squared:  0.9641 
F-statistic: 202.5 on 2 and 13 DF,  p-value: 1.598e-10

Prueba de significancia del Modelo sin Armed.Forces

Ahora procedemos a realizar la prueba de significancia del modelo de regresión:

  • Contraste de hipótesis H_0: \beta_1=\beta_3=0 \hspace{1cm} vs. \hspace{1cm} H_1: \beta_j\neq 0 para alguna j=1,3.

  • Estadístico de Prueba F_0=\frac{MS_{Reg}}{MS_{Res}}=202.5

  • Región de Rechazo

    Con un p-valor de 1.59 \times 10^{-10} y una significancia de \alpha=0.05, se cumple que el p-valor es menor a \alpha, por lo que se rechaza H_0. Esto quiere decir que existe al menos una variable predictora entre Unemployed y Population que se relaciona de manera lineal con Employed.

Pruebas de hipótesis para los coeficientes individuales de regresión (Intercepto)

Ahora realizamos la prueba de significancia para el intercepto.

  • Contraste de hipótesis

    H_0: \beta_0 =0 \hspace{0.5cm} vs. \hspace{0.5cm} H_1: \beta_0 \neq 0

  • Estadístico de prueba

    t_0=-0.039

  • Decisión

    Con una significancia de \alpha=0.05 y un p-valor de 0.9696 se cumple que p-valor es mayor a \alpha, por lo que no existe evidencia suficiente para rechazar H_0.

Important

El intercepto no resulta estadísticamente significativo (p > 0.05), la recomendación estándar en regresión lineal múltiple es mantener el intercepto en el modelo y no eliminarlo, salvo que exista una razón técnica muy específica.

¿Por qué ocurre esto en este modelo en particular?

En la base de datos longley:

  • Los valores de Población (Population) están en el rango de 107,608 a 130,081 (en miles).

  • Los valores de Desempleo (Unemployed) están entre 1,870 y 4,806 (en miles).

El intercepto (\hat{\beta}_0) representa el valor esperado del número de empleados (Employed) cuando Población = 0 y Desempleo = 0.

Dado que una población de 0 está lejos de los datos observados en la muestra (107,000 – 130,000), el intercepto es una extrapolación extrema. Su estimación tiene una varianza/error estándar muy elevado, lo que hace que no sea significativamente distinto de cero. Es un comportamiento totalmente normal cuando las variables independientes no están centradas en cero.

¿Qué debes hacer?

Mantener el intercepto (La mejor opción y recomendada)

  • Conservarlo: Deja el término del intercepto en tu código (lm(Employed ~ Population + Unemployed, data = longley) en R incluye el intercepto de forma predeterminada).

  • Cómo reportarlo: En el análisis concluyes que:

    “El intercepto no resultó estadísticamente significativo (p > 0.05) dado que Population y Unemployed están en el modelo, lo cual es esperado dado que no existen observaciones con una población o desempleo igual a cero. Sin embargo, se mantiene en el modelo para garantizar que los errores tengan media cero y que las estimaciones de las pendientes de Population y Unemployed se mantengan insesgadas.”

Análisis de MS_{RES} y R^2_{adj}

summary(modelo3)

Call:
lm(formula = Employed ~ Unemployed + Armed.Forces + Population, 
    data = longley)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.3835 -0.2868 -0.1353  0.3596  1.3382 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -1.323091   4.211566  -0.314  0.75880    
Unemployed   -0.012292   0.003354  -3.665  0.00324 ** 
Armed.Forces -0.001893   0.003516  -0.538  0.60019    
Population    0.605146   0.047617  12.709 2.55e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.6843 on 12 degrees of freedom
Multiple R-squared:  0.9696,    Adjusted R-squared:  0.962 
F-statistic: 127.7 on 3 and 12 DF,  p-value: 2.272e-09
anova(modelo3)
Analysis of Variance Table

Response: Employed
             Df Sum Sq Mean Sq F value    Pr(>F)    
Unemployed    1 46.716  46.716   99.76 3.628e-07 ***
Armed.Forces  1 57.043  57.043  121.81 1.221e-07 ***
Population    1 75.631  75.631  161.51 2.545e-08 ***
Residuals    12  5.619   0.468                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(modelo4)

Call:
lm(formula = Employed ~ Unemployed + Population, data = longley)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.2975 -0.3420 -0.1206  0.4006  1.3560 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.135325   3.487991  -0.039 0.969641    
Unemployed  -0.011151   0.002528  -4.410 0.000704 ***
Population   0.587728   0.033967  17.303 2.34e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.6654 on 13 degrees of freedom
Multiple R-squared:  0.9689,    Adjusted R-squared:  0.9641 
F-statistic: 202.5 on 2 and 13 DF,  p-value: 1.598e-10
anova(modelo4)
Analysis of Variance Table

Response: Employed
           Df  Sum Sq Mean Sq F value    Pr(>F)    
Unemployed  1  46.716  46.716  105.53 1.316e-07 ***
Population  1 132.538 132.538  299.39 2.343e-10 ***
Residuals  13   5.755   0.443                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Modelo MS_{RES} R^2_{adj}
y=\beta_0 + \beta_1x_1+\beta_3x_3 +\varepsilon 0.443 0.9641
y=\beta_0 + \beta_1x_1+\beta_2x_2+\beta_3x_3 +\varepsilon 0.468 0.962

Modelo Final

y=\beta_0 + \beta_1x_1+\beta_3x_3 +\varepsilon