8.3 Prueba de hipótesis conjunta utilizando el estadístico F
El modelo estimado es
\[ \widehat{TestScore} = \underset{(15.21)}{649.58} -\underset{(0.48)}{0.29} \times size - \underset{(0.04)}{0.66} \times english + \underset{(1.41)}{3.87} \times expenditure. \]
Ahora bien, ¿se puede rechazar la hipótesis de que el coeficiente de \(size\) y el coeficiente de \(expenditure\) son cero? Para responder a esto, se tiene que recurrir a pruebas de hipótesis conjuntas. Una hipótesis conjunta impone restricciones a los coeficientes de regresión múltiple. Esto es diferente de realizar pruebas de \(t\) individuales en las que se impone una restricción sobre un solo coeficiente.
El estadístico \(F\) de homocedasticidad está dado por
\[ F = \frac{(SSR_{\text{restricted}} - SSR_{\text{unrestricted}})/q}{SSR_{\text{unrestricted}} / (n-k-1)} \]
siendo \(SSR_{restricted}\) la suma de los residuos al cuadrado de la regresión restringida; es decir, la regresión en la que se impone la restricción. \(SSR_{unrestricted}\) es la suma de los residuos al cuadrado del modelo completo, \(q\) es el número de restricciones bajo el valor nulo y \(k\) es el número de regresores en la regresión sin restricciones.
Es bastante fácil realizar pruebas \(F\) en R. Se puede usar la función linearHypothesis() contenida en el paquete car.
# estimar el modelo de regresión múltiple
<- lm(score ~ size + english + expenditure, data = CASchools)
model
# ejecutar la función en el objeto modelo y proporcionar ambas restricciones lineales
# para ser probadas como cadenas
linearHypothesis(model, c("size=0", "expenditure=0"))
#> Linear hypothesis test
#>
#> Hypothesis:
#> size = 0
#> expenditure = 0
#>
#> Model 1: restricted model
#> Model 2: score ~ size + english + expenditure
#>
#> Res.Df RSS Df Sum of Sq F Pr(>F)
#> 1 418 89000
#> 2 416 85700 2 3300.3 8.0101 0.000386 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
El resultado revela que el estadístico \(F\) para esta prueba de hipótesis conjunta es de aproximadamente \(8.01\) y el valor correspondiente \(p\) es \(0.0004\). Por tanto, se puede rechazar la hipótesis nula de que ambos coeficientes son cero en cualquier nivel de significación comúnmente utilizado en la práctica.
Una versión robusta a la heterocedasticidad de esta prueba \(F\) (que lleva a la misma conclusión) se puede realizar de la siguiente manera.
# prueba F robusta de la heterocedasticidad
linearHypothesis(model, c("size=0", "expenditure=0"), white.adjust = "hc1")
#> Linear hypothesis test
#>
#> Hypothesis:
#> size = 0
#> expenditure = 0
#>
#> Model 1: restricted model
#> Model 2: score ~ size + english + expenditure
#>
#> Note: Coefficient covariance matrix supplied.
#>
#> Res.Df Df F Pr(>F)
#> 1 418
#> 2 416 2 5.4337 0.004682 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
La salida estándar del resumen de un modelo también informa un estadístico \(F\) y el valor de \(p\) correspondiente. La hipótesis nula que pertenece a esta prueba \(F\) es que todos los coeficientes de población en el modelo, excepto la intersección, son cero, por lo que las hipótesis son
\[H_0: \beta_1=0, \ \beta_2 =0, \ \beta_3 =0 \quad \text{vs.} \quad H_1: \beta_j \neq 0 \ \text{for at least one} \ j=1,2,3.\]
Esto también se denomina estadístico \(F\) de la regresión general y la hipótesis nula es obviamente diferente de probar si solo \(\beta_1\) y \(\beta_3\) son cero.
Ahora se verifica si el estadístico \(F\) perteneciente al valor \(p\) listado en el resumen del modelo coincide con el resultado reportado por linearHypothesis().
# ejecutar la función en el objeto modelo y proporcionar las restricciones
# para ser probado como vector de caracteres
linearHypothesis(model, c("size=0", "english=0", "expenditure=0"))
#> Linear hypothesis test
#>
#> Hypothesis:
#> size = 0
#> english = 0
#> expenditure = 0
#>
#> Model 1: restricted model
#> Model 2: score ~ size + english + expenditure
#>
#> Res.Df RSS Df Sum of Sq F Pr(>F)
#> 1 419 152110
#> 2 416 85700 3 66410 107.45 < 2.2e-16 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# acceda a la estadística F general desde el resumen del modelo
summary(model)$fstatistic
#> value numdf dendf
#> 107.4547 3.0000 416.0000
La entrada value es el estadístico \(F\) general y es igual al resultado de linearHypothesis(). La prueba \(F\) rechaza la hipótesis nula de que el modelo no tiene poder para explicar los puntajes de las pruebas. Es importante saber que el estadístico \(F\) informado por summary no es robusto a la heterocedasticidad.