library(readxl)
insurance <- read_excel("C:/Users/gisel/Downloads/insurance.xlsx")
View(insurance)
# install.packages("readxl")
# install.packages("tseries")
library(readxl)
library(tseries)
## Warning: package 'tseries' was built under R version 4.5.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
modelo_seguro <- lm(charges ~ age + bmi + children + smoker + region, data = insurance)
residuos <- residuals(modelo_seguro)
# A) Prueba de Shapiro-Wilk
shapiro_test <- shapiro.test(residuos)
print(shapiro_test)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.89909, p-value < 2.2e-16
# B) Prueba de Jarque-Bera
jb_test <- jarque.bera.test(residuos)
print(jb_test)
##
## Jarque Bera Test
##
## data: residuos
## X-squared = 720.52, df = 2, p-value < 2.2e-16
# C) Prueba de Kolmogorov-Smirnov con residuos estandarizados
residuos_estandarizados <- as.vector(scale(residuos))
ks_test <- ks.test(residuos_estandarizados, "pnorm")
## Warning in ks.test.default(residuos_estandarizados, "pnorm"): ties should not
## be present for the one-sample Kolmogorov-Smirnov test
print(ks_test)
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: residuos_estandarizados
## D = 0.16124, p-value < 2.2e-16
## alternative hypothesis: two-sided
hist(residuos,
freq = FALSE,
main = "Histograma de los Residuos con Curva Normal",
xlab = "Residuos del modelo",
ylab = "Densidad",
breaks = 30)
x_seq <- seq(min(residuos), max(residuos), length = 100)
y_seq <- dnorm(x_seq, mean = mean(residuos), sd = sd(residuos))
lines(x_seq, y_seq, col = "black", lwd = 2)
Conclusion: El comportamiento de los residuos es idéntico: todas las pruebas estadísticas arrojan un p-valor menor a 0.05, confirmando el rechazo de la hipótesis nula de normalidad. Esto se valida visualmente en el histograma, donde la distribución empírica de los residuos no se ajusta de manera simétrica a la curva normal teórica superpuesta, evidenciando la falta de normalidad en los errores del modelo.