Heterocedasticidad

EC19003 Escolán Chávez, Diana Alejandra GT03

27/5/2021

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.