Carga de datos
library(wooldridge)
data("hprice1")
head(force(hprice1), n=5)## price assess bdrms lotsize sqrft colonial lprice lassess llotsize lsqrft
## 1 300 349.1 4 6126 2438 1 5.703783 5.855359 8.720297 7.798934
## 2 370 351.5 3 9903 2076 1 5.913503 5.862210 9.200593 7.638198
## 3 191 217.7 3 5200 1374 0 5.252274 5.383118 8.556414 7.225482
## 4 195 231.8 3 4600 1448 1 5.273000 5.445875 8.433811 7.277938
## 5 373 319.1 4 6095 2514 1 5.921578 5.765504 8.715224 7.829630
Estimar el modelo
modelo_est <- lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice1)
library(stargazer)
stargazer(modelo_est, title = "Modelo estimado", type = "text")##
## Modelo estimado
## ===============================================
## Dependent variable:
## ---------------------------
## price
## -----------------------------------------------
## lotsize 0.002***
## (0.001)
##
## sqrft 0.123***
## (0.013)
##
## bdrms 13.853
## (9.010)
##
## Constant -21.770
## (29.475)
##
## -----------------------------------------------
## Observations 88
## R2 0.672
## Adjusted R2 0.661
## Residual Std. Error 59.833 (df = 84)
## F Statistic 57.460*** (df = 3; 84)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
# Para información adicional
summary(modelo_est)##
## Call:
## lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -120.026 -38.530 -6.555 32.323 209.376
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.177e+01 2.948e+01 -0.739 0.46221
## lotsize 2.068e-03 6.421e-04 3.220 0.00182 **
## sqrft 1.228e-01 1.324e-02 9.275 1.66e-14 ***
## bdrms 1.385e+01 9.010e+00 1.537 0.12795
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 59.83 on 84 degrees of freedom
## Multiple R-squared: 0.6724, Adjusted R-squared: 0.6607
## F-statistic: 57.46 on 3 and 84 DF, p-value: < 2.2e-16
Prueba de White
Nota: Incluir los términos cruzados. Se trata de un modelo de 3 variables explicativas.
Hipótesis
\(H_o\): La varianza de los residuos es homocedástica. Todos los paramétros del modelo son simultáneamente cero.
\(H_1\): La varianza de los residuos es heterocedástica. No todos los coeficientes del modelo son cero.
Regla de rechazo
\(LM_W ≥VC\) rechazar \(H_o\)
\(p-value ≤ α\) rechazar \(H_o\)
Usando lmtest
library(lmtest)
White_test <- bptest(modelo_est, ~ I(lotsize^2) + I(sqrft^2) + I(bdrms^2) +
(lotsize*sqrft*bdrms), data = hprice1)
print(White_test)##
## studentized Breusch-Pagan test
##
## data: modelo_est
## BP = 33.803, df = 10, p-value = 0.0001995
El p-value es menor que el nivel de significancia 0.0001995 < 0.05, se rechaza \(H_o\). Se tiene evidencia de una varianza heterocedástica en los residuos. No todos los coeficientes del modelo son simultáneamente cero.
Graficando con fastGraph
options(scipen = 999999)
library(fastGraph)
# Calcular el VC
gl_w <- 3 + 3 + 3
VC_w <- qchisq(p=0.95, df=gl_w)
shadeDist(xshade = White_test$statistic,
ddist = "dchisq",
parm1 = gl_w,
lower.tail = FALSE,
sub = paste("LMw:", White_test$statistic,
"VC:", VC_w),
main = "Prueba de White")Conclusión: Se rechaza la hipótesis nula dado que el estadístico LMw es mayor al valor crítico. Se tiene evidencia de una varianza heterocedástica en los residuos. No todos los coeficientes del modelo son simultáneamente cero.