Utilizando los datos del dataframe hprice1: disponible en el paquete wooldridge Use el siguiente código para generar el dataframe

library(wooldridge)
data(hprice1)
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
model <- lm(price ~ assess + bdrms + lotsize + sqrft+colonial, data = hprice1)
summary(model)
## 
## Call:
## lm(formula = price ~ assess + bdrms + lotsize + sqrft + colonial, 
##     data = hprice1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -105.137  -22.348   -0.817   21.688  203.357 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.045e+01  2.159e+01  -1.873   0.0646 .  
## assess       9.041e-01  1.043e-01   8.671 3.25e-13 ***
## bdrms        9.630e+00  6.916e+00   1.392   0.1676    
## lotsize      5.993e-04  4.971e-04   1.206   0.2314    
## sqrft        1.071e-03  1.720e-02   0.062   0.9505    
## colonial     9.548e+00  1.065e+01   0.897   0.3725    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43.51 on 82 degrees of freedom
## Multiple R-squared:  0.8309, Adjusted R-squared:  0.8206 
## F-statistic: 80.56 on 5 and 82 DF,  p-value: < 2.2e-16
  1. Estime el siguiente modelo, price = ˆα + ˆα1(lotsize) + ˆα2(sqrft) + ˆα3(bdrms) +
library(wooldridge)
data(hprice1)
model <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)
summary(model)
## 
## 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
  1. Verique el supuesto de normalidad, a través de: a) La prueba JB
# Ajustar modelo de regresión
model <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)
# Obtener residuos del modelo
residuals <- residuals(model)

# Histograma de los residuos con densidad normal superpuesta
hist(residuals, probability = TRUE, main = "Histograma de Residuos con Densidad Normal")
curve(dnorm(x, mean = mean(residuals), sd = sd(residuals)), 
      col = "blue", lwd = 2, add = TRUE)

# Gráfico Q-Q de los residuos
qqnorm(residuals)
qqline(residuals, col = "blue")

  1. Verique el supuesto de normalidad, a través de: b) La prueba KS Kolmogorov-Smirnov (KS) sobre los residuos del modelo de regresión lineal múltiple ajustado, necesitamos verificar si estos residuos siguen una distribución normal. La prueba KS compara la distribución empírica de los datos con una distribución teórica (en este caso, l
# Ajustar modelo de regresión
model <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)

# Obtener residuos del modelo
residuals <- residuals(model)

# Histograma de los residuos con densidad normal superpuesta
hist(residuals, probability = TRUE, main = "Histograma de Residuos con Densidad Normal")
curve(dnorm(x, mean = mean(residuals), sd = sd(residuals)), 
      col = "blue", lwd = 2, add = TRUE)
legend("topright", legend = "Densidad Normal", col = "blue", lwd = 2)

# Gráfico Q-Q de los residuos
qqnorm(residuals)
qqline(residuals, col = "blue")

  1. Verique el supuesto de normalidad, a través de: c) La prueba SW Shapiro-Wilk (SW) sobre los residuos del modelo de regresión lineal múltiple ajustado
# Ajustar modelo de regresión
model <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)

# Obtener residuos del modelo
residuals <- residuals(model)

# Histograma de los residuos con densidad normal superpuesta
hist(residuals, probability = TRUE, main = "Histograma de Residuos con Densidad Normal")
curve(dnorm(x, mean = mean(residuals), sd = sd(residuals)), 
      col = "blue", lwd = 2, add = TRUE)
legend("topright", legend = "Densidad Normal", col = "blue", lwd = 2)

# Realizar la prueba de Shapiro-Wilk
sw_test <- shapiro.test(residuals)

# Crear tabla de resultados
sw_result <- data.frame(
  Statistic = "Shapiro-Wilk",
  W_statistic = sw_test$statistic,
  P_value = sw_test$p.value
)
print(sw_result)
##      Statistic W_statistic      P_value
## W Shapiro-Wilk   0.9413208 0.0005937472

Esta prueba es útil para verificar la normalidad de los residuos del modelo. Un valor p bajo (generalmente menor que 0.05) indica que los residuos no siguen una distribución normal, lo cual puede tener implicaciones en la validez de las inferencias basadas en el modelo de regresión.