Importamos el archivo “database (1).csv” desde una ruta local y lo almacena en el objeto datos, usando espacios o tabulaciones como separador.
Extraemos la variable Tipo de Tubería, omitimos las celdas en blanco o valores iguales a cero .
# 1. Extraer la variable
T_tuberia <- datos$Pipeline.Type[
!is.na(datos$Pipeline.Type) & datos$Pipeline.Type != ""
]
# 2. Traducir a Español y convertir a Factor
T_tuberia <- factor(T_tuberia,
levels = c("ABOVEGROUND", "UNDERGROUND", "TANK", "TRANSITION AREA"),
labels = c("SUPERFICIAL", "SUBTERRÁNEA", "TANQUE", "ÁREA DE TRANSICIÓN"))# 3. Crear las frecuencias ni (absoluta) y hi (relativa %)
ni <- table(T_tuberia)
hi <- prop.table(ni) * 100
# 4. Construir la tabla base
tabla_frecuencia <- data.frame(
Tipo_de_Tuberia = names(ni),
ni = as.vector(ni),
hi = round(as.vector(hi), 2)
)
# 6. Agregar la fila de TOTAL
fila_total <- data.frame(
Tipo_de_Tuberia = "TOTAL",
ni = sum(tabla_frecuencia$ni),
hi = sum(tabla_frecuencia$hi)
)
tabla_final <- rbind(tabla_frecuencia, fila_total)
# Mostrar resultado final
knitr::kable(tabla_final, caption = "Tabla de Frecuencias Final")| Tipo_de_Tuberia | ni | hi |
|---|---|---|
| SUPERFICIAL | 1475 | 53.11 |
| SUBTERRÁNEA | 985 | 35.47 |
| TANQUE | 301 | 10.84 |
| ÁREA DE TRANSICIÓN | 16 | 0.58 |
| TOTAL | 2777 | 100.00 |
ggplot(tabla_frecuencia, aes(x = Tipo_de_Tuberia, y = ni)) +
geom_bar(stat = "identity", fill = "skyblue", color = "black") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 10)) +
labs(title = "Gráfica N° 1:Distribución general por tipo de tubería",
x = "Tipo de Tubería", y = "cantidad")# Crear la gráfica para la frecuencia relativa porcentual (hi)
ggplot(tabla_frecuencia, aes(x = Tipo_de_Tuberia, y = hi)) +
geom_bar(stat = "identity", fill = "skyblue", color = "black") +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
legend.position = "none"
) +
labs(
title = "Gráfica N° 2: Distribución porcentual por tipo de tubería",
x = "Tipo de Tubería",
y = "Porcentaje (%)"
)# Calcular probabilidad pi
tabla_frecuencia$pi <- tabla_frecuencia$ni / sum(tabla_frecuencia$ni)
ggplot(tabla_frecuencia, aes(x = Tipo_de_Tuberia, y = pi)) +
geom_bar(stat = "identity", fill = "skyblue", color = "black") +
scale_y_continuous(breaks = seq(0, 1, by = 0.1), limits = c(0, max(tabla_frecuencia$pi) + 0.05)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 10)) +
labs(title = "Gráfica N° 3: Distribución de Probabilidad por tipo de tubería ",
x = "Tipo de Tubería", y = "Probabilidad")Si seleccionamos un accidente al azar de los registros históricos de la base de datos (considerando el total de 2,777 incidentes válidos):
¿Cuál es la probabilidad de que el accidente seleccionado haya ocurrido en una tubería SUBTERRÁNEA?
# Probabilidad de que sea Subterránea
p_subterranea <- tabla_final$ni[tabla_final$Tipo_de_Tuberia == "SUBTERRÁNEA"] /
tabla_final$ni[tabla_final$Tipo_de_Tuberia == "TOTAL"]
print(paste("La probabilidad es:", round(p_subterranea, 4)))## [1] "La probabilidad es: 0.3547"
¿Cuál es la probabilidad de que el accidente haya ocurrido en un TANQUE o en un ÁREA DE TRANSICIÓN?
# Sumamos las probabilidades de ambas categorías
p_tanque_o_transicion <- (tabla_final$ni[tabla_final$Tipo_de_Tuberia == "TANQUE"] +
tabla_final$ni[tabla_final$Tipo_de_Tuberia == "ÁREA DE TRANSICIÓN"]) /
tabla_final$ni[tabla_final$Tipo_de_Tuberia == "TOTAL"]
print(paste("La probabilidad es:", round(p_tanque_o_transicion, 4)))## [1] "La probabilidad es: 0.1142"
¿Cuál es la probabilidad de que el accidente NO haya sido en una tubería SUPERFICIAL?
p_no_superficial <- 1 - (tabla_final$ni[tabla_final$Tipo_de_Tuberia == "SUPERFICIAL"] /
tabla_final$ni[tabla_final$Tipo_de_Tuberia == "TOTAL"])
print(paste("La probabilidad es:", round(p_no_superficial, 4)))## [1] "La probabilidad es: 0.4689"