1 .JUSTIFICACIÓN

La variable Tipo de Tubería es fundamental en el análisis de incidentes, ya que permite identificar qué tipo de infraestructura presenta mayor riesgo de accidentes. Esta información es crucial para enfocar los recursos preventivos y establecer protocolos de seguridad específicos según el tipo de tubería involucrada.

2 .CARGA DE DATOS

Se importa el archivo de datos desde la ruta local especificada. Se utiliza la función read.csv2() porque el archivo tiene separador punto y coma (;) y decimales con coma (,), formato típico de la región.

# Cargar los datos 
datos <- read.csv2("C:/Users/chipr/Downloads/dataset proyecto.csv")

2.1 .EXTRACCIÓN DE LA VARIABLE

En este paso se extrae la variable “Pipeline.Type” de la base de datos original. Se filtran los valores nulos o vacíos para trabajar únicamente con registros válidos. Además, se traducen las categorías del inglés al español para facilitar la interpretación de los resultados.

#  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 .TABLA DE FRECUENCIAS

Se construye una tabla que resume la distribución de los incidentes por tipo de tubería. Incluye frecuencias absolutas (ni) y frecuencias relativas porcentuales (hi). Se agrega una fila con los totales para completar el análisis descriptivo.

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

# 5. Asignar nombres a las columnas 
colnames(tabla_frecuencia) <- c("Tipo de Tubería", "ni", "hi(%)")

# 6. Agregar la fila de TOTAL
fila_total <- data.frame(
  Tipo_de_Tuberia = "TOTAL", 
  ni = sum(tabla_frecuencia$ni), 
  hi = sum(tabla_frecuencia$hi)
)

colnames(fila_total) <- c("Tipo de Tubería", "ni", "hi(%)")

tabla_final <- rbind(tabla_frecuencia, fila_total)

# Mostrar resultado final
knitr::kable(tabla_final, caption = "Tabla de Frecuencias Final")
Tabla de Frecuencias Final
Tipo de Tubería 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

4 .GRÁFICAS DE BARRAS

Las gráficas de barras permiten visualizar de manera intuitiva la distribución de los incidentes por tipo de tubería. Se presentan dos versiones: una con frecuencias absolutas y otra con porcentajes, facilitando la comparación entre categorías.

4.1 .Gráfica de distribución de frecuencia (ni)

 library(ggplot2)
 
 ggplot(tabla_frecuencia, aes(x = `Tipo de Tubería`, 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")

4.2 .Gráfica de distribución de frecuencia (hi)

 ggplot(tabla_frecuencia, aes(x = `Tipo de Tubería`, 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 (%)"
   )
## Don't know how to automatically pick scale for object of type <table>.
## Defaulting to continuous.

5 .MODELO DE PROBABILIDAD

A partir de las frecuencias observadas, se calcula la probabilidad empírica de cada tipo de tubería. Este modelo probabilístico permite estimar la chance de que un futuro incidente ocurra en una categoría específica, asumiendo que el patrón histórico se mantiene.

 # Calcular probabilidad 
 tabla_frecuencia$pi <- tabla_frecuencia$ni / sum(tabla_frecuencia$ni)
 
 # Gráfica de probabilidades
 ggplot(tabla_frecuencia, aes(x = `Tipo de Tubería`, 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"
   )

6 .CÁLCULO DE PROBABILIDADES

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), podemos responder preguntas específicas sobre la probabilidad de ocurrencia en diferentes escenarios.

6.1 .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 Tubería` == "SUBTERRÁNEA"] / 
   tabla_final$ni[tabla_final$`Tipo de Tubería` == "TOTAL"]
 
 print(paste("La probabilidad es:", round(p_subterranea, 4)))
## [1] "La probabilidad es: 0.3547"
 # [1] "La probabilidad es: 0.3547"
 # Resultado esperado: 0.3547 (o 35.47%)

6.2 .Probabilidad de que el accidente haya ocurrido en un TANQUE o en un ÁREA DE TRANSICIÓN

# Probabilidad de TANQUE o ÁREA DE TRANSICIÓN
p_tanque_o_transicion <- (tabla_final$ni[tabla_final$`Tipo de Tubería` == "TANQUE"] + 
                            tabla_final$ni[tabla_final$`Tipo de Tubería` == "ÁREA DE TRANSICIÓN"]) / 
  tabla_final$ni[tabla_final$`Tipo de Tubería` == "TOTAL"]

print(paste("La probabilidad es:", round(p_tanque_o_transicion, 4)))
## [1] "La probabilidad es: 0.1142"
# [1] "La probabilidad es: 0.1142"

6.3 .Probabilidad de que el accidente NO haya sido en una tubería SUPERFICIAL

# Probabilidad de NO SUPERFICIAL (1 - P(SUPERFICIAL))
p_no_superficial <- 1 - (tabla_final$ni[tabla_final$`Tipo de Tubería` == "SUPERFICIAL"] / 
                           tabla_final$ni[tabla_final$`Tipo de Tubería` == "TOTAL"])

print(paste("La probabilidad es:", round(p_no_superficial, 4)))
## [1] "La probabilidad es: 0.4689"
# [1] "La probabilidad es: 0.4689"

7 .CONCLUSIONES

La variable Tipo de Tubería presenta un comportamiento que permite identificar patrones claros. Mediante un análisis de frecuencias, se observa que los incidentes se distribuyen en cuatro categorías: SUPERFICIAL (53.11%), SUBTERRÁNEA (35.47%), TANQUE (10.84%) y ÁREA DE TRANSICIÓN (0.58%), lo cual fue validado estadísticamente. Esta estructura permite predecir, POR EJEMPLO, ¿Cuál es la probabilidad de que, ante un nuevo incidente, este ocurra en una tubería SUBTERRÁNEA? (0.3547) , ¿Cuál es la probabilidad de que el accidente haya ocurrido en un TANQUE o en un ÁREA DE TRANSICIÓN? (0.1142) , ¿Cuál es la probabilidad de que el accidente NO haya sido en una tubería SUPERFICIAL? (0.4689) , facilitando la toma de decisiones preventivas basadas en la probabilidad de cada tipo de tubería.