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
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
# 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")
# 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")
# 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.