1 Cargar Datos

Descargamos los datos de nuestro datase

datos <- read.csv("database-_1_.csv")
zona<-datos$Liquid.Ignition
library(dplyr)
library(knitr)
library(kableExtra)

2 tabla de frecuencia

# 1. Procesamiento de datos (Variable Liquid Ignition)
liq_ign <- datos$Liquid.Ignition
freq_LI <- table(liq_ign)
Tabla_LI <- as.data.frame(freq_LI)
colnames(Tabla_LI) <- c("x", "ni")
Tabla_LI$hi <- round(Tabla_LI$ni / sum(Tabla_LI$ni), 4)

# 2. Crear fila de TOTAL
fila_total_LI <- data.frame(x = "TOTAL", ni = sum(Tabla_LI$ni), hi = 1.00)
TablaFinal_LI <- rbind(Tabla_LI, fila_total_LI)

# 3. Generar tabla con formato kableExtra
TablaFinal_LI %>%
  kable(
    caption = "Tabla 2: Distribución de Frecuencias de Ignición del Líquido",
    align = "c", 
    col.names = c("Estado de Ignición", "Frecuencia Absoluta (ni)", "Frecuencia Relativa (hi)")
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"), 
    full_width = F, 
    position = "center"
  ) %>%
  row_spec(0, bold = T, color = "white", background = "#2c3e50") %>% # Encabezado
  row_spec(nrow(TablaFinal_LI), bold = T, color = "white", background = "#34495e") %>% # Fila TOTAL
  column_spec(1, italic = T, border_right = T)
Tabla 2: Distribución de Frecuencias de Ignición del Líquido
Estado de Ignición Frecuencia Absoluta (ni) Frecuencia Relativa (hi)
NO 2700 0.966
YES 95 0.034
TOTAL 2795 1.000

3 Barras de cantidad porcentual de Ignición líquida

Desde el punto de vista de la teoría de la probabilidad, la gráfica representa la función de masa de una variable aleatoria discreta con una marcada concentración de probabilidad en el estado de no-ignición. La brecha de magnitudes entre ambas barras (\(0.9188\) vs \(0.0812\)) indica un sistema con alta resiliencia térmica o fluidos con puntos de inflamación elevados.

library(ggplot2)
library(scales) 

ggplot(Tabla_LI, aes(x = x, y = hi, fill = x)) +
  geom_bar(stat = "identity", width = 0.6, show.legend = FALSE) +
  scale_y_continuous(labels = percent_format(), limits = c(0, 1)) +
  scale_fill_manual(values = c("skyblue", "#a1c4fd")) + # Azul para NO, Rojo para YES
  labs(
    title = "Distribución Porcentual de Ignición del Líquido",
    x = "Ignición",
    y = "Proporción de Accidentes"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    panel.grid.major.x = element_blank()
  )

4 Barras de densidad de Ignición líquida

La visualización de la frecuencia relativa local evidencia la naturaleza de los accidentes en la red de oleoductos, donde la categoría “NO” domina de forma absoluta el espacio muestral con un 91.88%.

library(ggplot2)

# Gráfica de Densidad de Masa de Probabilidad
ggplot(datos, aes(x = Liquid.Ignition, fill = Liquid.Ignition)) +
  geom_bar(aes(y = after_stat(count)/sum(after_stat(count))), width = 0.5) +
  geom_text(aes(y = after_stat(count)/sum(after_stat(count)), 
                label = round(after_stat(count)/sum(after_stat(count)), 4)), 
            stat = "count", vjust = -0.5, fontface = "bold") +
  scale_fill_manual(values = c("skyblue", "#a1c4fd")) +
  labs(
    title = "Densidad de Masa de Probabilidad: Ignición del Líquido",
    subtitle = "Distribución Normalizada (Suma de Densidades = 1.0)",
    x = "Estado de Ignición",
    y = "Densidad"
  ) +
  theme_classic(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", color = "#2c3e50"),
    legend.position = "none"
  )

5 Barras de cantidad abosluta local de Ignición líquida

Al ajustar el eje Y al valor de 2765, la gráfica revela la escala real de la siniestralidad. Se observa que la categoría “NO” se aproxima al techo del eje, mientras que la categoría “YES” representa apenas un pequeño segmento de la capacidad total de la muestra.

library(ggplot2)
ggplot(Tabla_LI, aes(x = x, y = ni, fill = x)) +
  geom_bar(stat = "identity", width = 0.6, show.legend = FALSE) +
  scale_y_continuous(limits = c(0, 2765), breaks = seq(0, 2765, by = 500)) +
  scale_fill_manual(values = c("skyblue", "#a1c4fd")) + 
  labs(
    title = "Magnitud de Ignición en el Total de Accidentes",
    x = "Ignición",
    y = "Cantidad"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    panel.grid.major.x = element_blank()
  )

6 Diagrama circular

El diagrama circular de la variable ignición del líquido resalta visualmente la hegemonía de la categoría “NO”, que ocupa más del 90% de la superficie total, reflejando su predominancia absoluta en la siniestralidad. El sector restante, correspondiente a la ignición positiva (“YES”), aparece como una porción marginal, evidenciando que la gran mayoría de los incidentes no escalan a eventos de combustión. Esta representación permite confirmar que el riesgo predominante es de carácter mecánico y ambiental, y no térmico.

library(ggplot2)
library(dplyr)

# Preparar datos para el gráfico circular
df_pie <- Tabla_LI %>% filter(x != "TOTAL")

ggplot(df_pie, aes(x = "", y = hi, fill = x)) +
  geom_bar(stat = "identity", width = 1, color = "white") +
  coord_polar("y", start = 0) +
  geom_text(aes(label = paste0(round(hi * 100, 1), "%")), 
            position = position_stack(vjust = 0.5), 
            color = "white", fontface = "bold", size = 6) +
  scale_fill_manual(values = c("skyblue", "#a1c4fd"), 
                    name = "¿Ignición?") +
  labs(title = "Composición de Densidad: Ignición del Líquido",
       subtitle = "Distribución Probabilística del Espacio Muestral") +
  theme_void() +
  theme(plot.title = element_text(face = "bold", hjust = 0.5, size = 16),
        plot.subtitle = element_text(hjust = 0.5, size = 12))

7 Indicadores Estadísticos

Bajo un enfoque de teoría de la decisión, la variable se comporta como un ensayo de Bernoulli donde el parámetro de éxito (ignición) es \(\hat{p} \approx 0.0812\). La esperanza matemática del sistema indica que, ante un evento de ruptura aleatorio, el resultado esperado es la no-ignición en más de 9 de cada 10 casos. Matemáticamente, la distribución presenta una asimetría positiva extrema en términos de riesgo, lo que implica que la masa de probabilidad está “secuestrada” por el estado de reposo térmico, clasificando a la ignición como un evento de baja frecuencia pero potencialmente de alta severidad en la cola de la distribución.

# Calcular la Moda (categoría más frecuente)
moda_LI <- names(which.max(table(liq_ign)))

# Calcular la proporción de la categoría dominante
proporcion_dominante <- max(Tabla_LI$hi) * 100

# Mostrar indicadores en consola
cat("Indicadores Estadísticos:",
    "\n- Moda:", moda_LI,
    "\n- Frecuencia Absoluta Máxima:", max(Tabla_LI$ni),
    "\n- Concentración de Datos:", proporcion_dominante, "%")
## Indicadores Estadísticos: 
## - Moda: NO 
## - Frecuencia Absoluta Máxima: 2700 
## - Concentración de Datos: 96.6 %

8 Conclusión

el análisis estadístico de la variable ignición de líquidos revela una distribución con una marcada asimetría hacia el estado de no-ignición, lo que representa una densidad de masa de probabilidad del 91.88% (\(n = 2,568\)). Matemáticamente, este comportamiento confirma que la siniestralidad en oleoductos se caracteriza predominantemente por eventos de pérdida de contención física (derrames fríos) y no por desastres térmicos, situando a la ignición como un evento estocásticamente raro (\(p \approx 0.08\)). Por tanto, la gestión de riesgos debe priorizar protocolos de contención ambiental y limpieza, ya que, aunque la frecuencia de incendios es baja, la saturación de incidentes sin fuego exige una respuesta operativa enfocada en la integridad mecánica de la red.