# install.packages(c("wooldridge", "tseries", "nortest", "lmtest"))
library(fastGraph)
## Warning: package 'fastGraph' was built under R version 4.5.3
library(wooldridge) # Para datos hprice1
## Warning: package 'wooldridge' was built under R version 4.5.3
library(tseries) # Para prueba Jarque-Bera
## Warning: package 'tseries' was built under R version 4.5.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(nortest) # Para prueba Lilliefors (KS)
library(lmtest) # Para prueba de autocorrelación Durbin-Watson
## 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
2. CARGA DE DATOS (Ejercicio hprice1)
data(hprice1)
# Visualizar las primeras 5 observaciones
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
3. ESTIMACION DEL MODELO LINEAL
# Se define el modelo según las variables del dataset (ejemplo estándar)
modelo_lineal <- lm(price ~ assess + bdrms + lotsize + sqrft, data = hprice1)
summary(modelo_lineal)
##
## Call:
## lm(formula = price ~ assess + bdrms + lotsize + sqrft, data = hprice1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -102.911 -19.148 -1.947 20.926 197.270
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.889e+01 2.150e+01 -1.809 0.0741 .
## assess 9.083e-01 1.040e-01 8.730 2.26e-13 ***
## bdrms 1.160e+01 6.550e+00 1.772 0.0801 .
## lotsize 5.867e-04 4.963e-04 1.182 0.2405
## sqrft -5.175e-04 1.708e-02 -0.030 0.9759
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 43.46 on 83 degrees of freedom
## Multiple R-squared: 0.8292, Adjusted R-squared: 0.821
## F-statistic: 100.7 on 4 and 83 DF, p-value: < 2.2e-16
4. PRUEBAS DE NORMALIDAD (Ho: Los errores son normales)
# Extraemos los residuales para las pruebas
u_hat <- resid(modelo_lineal)
# A. Prueba de Jarque-Bera [cite: 108, 109]
# Reemplaza jb.norm.test si te da error
jarque.bera.test(u_hat)
##
## Jarque Bera Test
##
## data: u_hat
## X-squared = 83.477, df = 2, p-value < 2.2e-16
# B. Prueba de Kolmogorov-Smirnov (Lilliefors)
lillie.test(u_hat)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: u_hat
## D = 0.092256, p-value = 0.06179
# C. Prueba de Shapiro-Wilk
shapiro.test(u_hat)
##
## Shapiro-Wilk normality test
##
## data: u_hat
## W = 0.93302, p-value = 0.0002052
5. PRUEBA DE AUTOCORRELACIÓN (Ho: No hay autocorrelación)
# Prueba de Durbin-Watson para detectar autocorrelación
dwtest(modelo_lineal)
##
## Durbin-Watson test
##
## data: modelo_lineal
## DW = 2.1212, p-value = 0.7021
## alternative hypothesis: true autocorrelation is greater than 0
6. GRAFICOS
# Histograma para ver la distribución de los errores
hist(u_hat, breaks = 15, main = "Distribución de Residuales", col = "gray")

# Gráfico Q-Q para normalidad
qqnorm(u_hat); qqline(u_hat, col = "red")
