setwd("D:/Data")
datos <- read.csv("database.csv", header = TRUE, sep = ";", dec =".")
cilindros <- datos$Engine.Cylinders
cilindros <- as.numeric(as.character(cilindros))
## Warning: NAs introducidos por coerción
cilindros <- cilindros[!is.na(cilindros) & cilindros >= 2 & cilindros <= 16 & !(cilindros %in% c(5,7))]
TDF_cilindros <- table(cilindros)
Tabla_cilindros <- as.data.frame(TDF_cilindros)
colnames(Tabla_cilindros) <- c("CILINDROS", "ni_FA")
hi_FR <- Tabla_cilindros$ni_FA / sum(Tabla_cilindros$ni_FA)
Niasc <- cumsum(Tabla_cilindros$ni_FA)
Hiasc <- cumsum(hi_FR)
Nidsc <- rev(cumsum(rev(Tabla_cilindros$ni_FA)))
Hidsc <- rev(cumsum(rev(hi_FR)))
Tabla_cilindrosFinal <- data.frame(
CILINDROS = as.numeric(as.character(Tabla_cilindros$CILINDROS)),
ni_FA = Tabla_cilindros$ni_FA,
hi_FR = round(hi_FR, 4),
Ni_FAAa = Niasc,
Hi_FRAa = round(Hiasc, 4),
Ni_FAAd = Nidsc,
Hi_FRAd = round(Hidsc, 4)
)
Tabla_cilindrosFinal
## CILINDROS ni_FA hi_FR Ni_FAAa Hi_FRAa Ni_FAAd Hi_FRAd
## 1 2 43 0.0012 43 0.0012 34884 1.0000
## 2 3 197 0.0056 240 0.0069 34841 0.9988
## 3 4 13522 0.3876 13762 0.3945 34644 0.9931
## 4 6 12733 0.3650 26495 0.7595 21122 0.6055
## 5 8 7677 0.2201 34172 0.9796 8389 0.2405
## 6 10 145 0.0042 34317 0.9837 712 0.0204
## 7 12 559 0.0160 34876 0.9998 567 0.0163
## 8 16 8 0.0002 34884 1.0000 8 0.0002
barplot(
height = Tabla_cilindrosFinal$ni_FA,
main = "Gráfica N°1: Frecuencia Absoluta de Cilindros",
xlab = "Número de Cilindros",
ylab = "Cantidad",
names.arg = Tabla_cilindrosFinal$CILINDROS,
col = "skyblue"
)
grupo <- cilindros[cilindros %in% c(2,3,4,6,8,10,12)]
tabla_grupo <- table(grupo)
df_grupo <- as.data.frame(tabla_grupo)
colnames(df_grupo) <- c("X", "FO")
df_grupo$X <- as.numeric(as.character(df_grupo$X))
FO_absoluta <- df_grupo$FO
total <- sum(FO_absoluta)
hi <- FO_absoluta / total
lambda <- mean(grupo)
P <- dpois(df_grupo$X, lambda)
FE_absoluta <- P * total
P_normalizado <- P / sum(P)
barplot(
rbind(hi, P_normalizado),
beside = TRUE,
col = c("skyblue", "darkblue"),
legend = c("FO (hi)", "FE (P)"),
names.arg = df_grupo$X,
main = "Gráfica N°2: Modelo Poisson - Probabilidades por Cilindros",
xlab = "Cilindros",
ylab = "Probabilidad"
)
boxplot(grupo, horizontal = TRUE, col = "lightblue",
main = "Gráfica N°2.1: Diagrama de Caja - Número de Cilindros",
xlab = "Cilindros")
cor_poisson <- cor(hi, P_normalizado)
plot(hi, P_normalizado,
main = "Gráfica N°3: Correlación FO vs FE (Poisson)",
xlab = "FO (Prob. Observada)",
ylab = "FE (Prob. Esperada)",
pch = 19, col = "blue")
abline(lm(P_normalizado ~ hi), col = "red", lwd = 2)
text(min(hi), max(P), labels = paste("r =", round(cor_poisson, 3)), pos = 4, col = "blue")
x2 <- sum((FO_absoluta - FE_absoluta)^2 / FE_absoluta)
gl <- length(df_grupo$X) - 1
vc <- qchisq(0.955555555, df = gl)
Variable <- c("Cilindros")
tabla_resumen <- data.frame(
Variable,
Test_Pearson = round(cor_poisson * 100, 2),
Chi_Cuadrado = round(x2, 2),
Umbral_aceptacion = round(vc, 2)
)
kable(tabla_resumen, format = "markdown", caption = "Tabla Nº25: Resumen de test de bondad al modelo de probabilidad")
Variable | Test_Pearson | Chi_Cuadrado | Umbral_aceptacion |
---|---|---|---|
Cilindros | 85.39 | 35268.36 | 12.91 |
#Modelo no aprobado
media_cil <- mean(cilindros)
desv_cil <- sd(cilindros)
n <- length(cilindros)
error <- qnorm(0.955) * (desv_cil / sqrt(n))
LI <- media_cil - error
LS <- media_cil + error
cat("Intervalo de confianza (95%): [", round(LI, 2), ",", round(LS, 2), "]\n")
## Intervalo de confianza (95%): [ 5.74 , 5.77 ]
desv_poblacional <- sqrt(sum((cilindros - mean(cilindros))^2) / length(cilindros))
cat("\nDesviación estándar poblacional:", round(desv_poblacional, 4), "\n")
##
## Desviación estándar poblacional: 1.7633
La variable Número de cilindros se explica mediante una distribución de Poisson, con un intervalo de confianza que se encuentra entre 5.74 y 5.77 lo que afirmamos con un 95% de confianza.Además la desviación estándar poblacional es de 1.76 lo que representa la variabilidad en numero de cilindros observados, indicando que los valores tienden a estar muy cerca de la media calculada.