# install.packages("wooldridge")
# install.packages("lmtest")
# install.packages("fastGraph")

library(fastGraph)
## Warning: package 'fastGraph' was built under R version 4.5.3
library(wooldridge)
## Warning: package 'wooldridge' was built under R version 4.5.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.3
## Cargando paquete requerido: zoo
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(fastGraph)

2. Cargar y preparar los datos

data("hprice1")
# Mostrar las primeras 5 observaciones para verificar [cite: 5, 6]
head(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

3. Estimar el modelo de regresión lineal

# El nombre correcto de la columna es 'bdrms' 
modelo <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)

4. Prueba de White (inciso a)

# IMPORTANTE: No olvides los paréntesis de I() y las comas entre variables
prueba_white <- bptest(modelo, ~ lotsize + sqrft + bdrms + 
                         I(lotsize^2) + I(sqrft^2) + I(bdrms^2) + 
                         lotsize:sqrft + lotsize:bdrms + sqrft:bdrms, 
                       data = hprice1)

# Mostrar el resultado en la consola
print(prueba_white)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 33.732, df = 9, p-value = 9.953e-05

5. Representación gráfica con fastGraph (Inciso b)

library(fastGraph)

shadeDist(xcoord = prueba_white$statistic, ddist = "dchisq", parm1 = prueba_white$parameter, 
          main = "Distribución de la Prueba de White")