1. Carga de librerías y datos 2. Caracterización estadística 9. Conclusiones

1. Carga de librerías y datos


En esta sección se cargan las librerías necesarias para el análisis, se importa la base de datos y se preparan los subconjuntos correspondientes a los periodos de estudio utilizados en la modelación estadística.

#============================================================
# 1. CARGA DE LIBRERÍAS Y DATOS
#============================================================

#------------------------------------------------------------
# Librerías
#------------------------------------------------------------

library(readxl)
library(dplyr)
library(tidyr)
library(ggplot2)
library(gt)
library(knitr)

#------------------------------------------------------------
# Importación de la base de datos
#------------------------------------------------------------

datos <- read_excel("datos_nuevoartes_separado_año_mes.xlsx")

#------------------------------------------------------------
# Preparación de la variable Año
#------------------------------------------------------------

datos$Año <- as.numeric(datos$Año)

datos <- datos %>%
  filter(!is.na(Año))

#------------------------------------------------------------
# Subconjuntos para la modelación
#------------------------------------------------------------

# Modelo Poisson (2007–2009)
datos_poisson <- datos %>%
  filter(Año >= 2007 & Año <= 2009)

# Modelo Uniforme (2013–2017)
datos_uniforme <- datos %>%
  filter(Año >= 2013 & Año <= 2017)

#------------------------------------------------------------
# Verificación
#------------------------------------------------------------

cat("Total de registros:", nrow(datos), "\n")
## Total de registros: 11033
cat("Periodo Poisson:", nrow(datos_poisson), "registros\n")
## Periodo Poisson: 1486 registros
cat("Periodo Uniforme:", nrow(datos_uniforme), "registros\n")
## Periodo Uniforme: 5888 registros

2. Caracterización estadística de la variable Año


En esta sección se presenta la distribución de frecuencias de la variable Año para el periodo 2007–2017, mediante una tabla y una representación gráfica que permiten describir su comportamiento general.

#============================================================
# 2. CARACTERIZACIÓN ESTADÍSTICA
#============================================================

#------------------------------------------------------------
# Tabla de frecuencias
#------------------------------------------------------------

TDF_anio <- datos %>%
  count(Año, name = "Frecuencia") %>%
  arrange(Año) %>%
  mutate(
    Frecuencia_Relativa = Frecuencia / sum(Frecuencia),
    Porcentaje = Frecuencia_Relativa * 100,
    Frecuencia_Acumulada = cumsum(Frecuencia),
    Porcentaje_Acumulado = cumsum(Porcentaje)
  )

#------------------------------------------------------------
# Tabla de presentación
#------------------------------------------------------------

TDF_anio %>%
  mutate(
    Frecuencia_Relativa = round(Frecuencia_Relativa,4),
    Porcentaje = round(Porcentaje,2),
    Porcentaje_Acumulado = round(Porcentaje_Acumulado,2)
  ) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 1. Distribución de frecuencias de la variable Año**")
  ) %>%
  cols_label(
    Año = "Año",
    Frecuencia = "Frecuencia",
    Frecuencia_Relativa = "Fr. relativa",
    Porcentaje = "%",
    Frecuencia_Acumulada = "Fr. acumulada",
    Porcentaje_Acumulado = "% acumulado"
  )
Tabla 1. Distribución de frecuencias de la variable Año
Año Frecuencia Fr. relativa % Fr. acumulada % acumulado
1988 1 0.0001 0.01 1 0.01
1993 1 0.0001 0.01 2 0.02
1995 1 0.0001 0.01 3 0.03
1996 2 0.0002 0.02 5 0.05
1997 10 0.0009 0.09 15 0.14
1998 12 0.0011 0.11 27 0.24
2003 2 0.0002 0.02 29 0.26
2004 1 0.0001 0.01 30 0.27
2005 2 0.0002 0.02 32 0.29
2006 13 0.0012 0.12 45 0.41
2007 408 0.0370 3.70 453 4.11
2008 699 0.0634 6.34 1152 10.44
2009 379 0.0344 3.44 1531 13.88
2010 1528 0.1385 13.85 3059 27.73
2011 1304 0.1182 11.82 4363 39.55
2012 782 0.0709 7.09 5145 46.63
2013 1117 0.1012 10.12 6262 56.76
2014 1034 0.0937 9.37 7296 66.13
2015 1339 0.1214 12.14 8635 78.27
2016 1171 0.1061 10.61 9806 88.88
2017 1227 0.1112 11.12 11033 100.00
#------------------------------------------------------------
# Gráfico de frecuencias
#------------------------------------------------------------

ggplot(TDF_anio,
       aes(x = factor(Año),
           y = Frecuencia)) +

  geom_col(
    fill = "#6D213C",
    color = "black",
    width = 0.70
  ) +

  geom_text(
    aes(label = Frecuencia),
    vjust = -0.35,
    size = 4
  ) +

  labs(
    title = "Gráfica 1. Distribución de frecuencias de la variable Año",
    x = "Año",
    y = "Frecuencia"
  ) +

  theme_minimal()

Interpretación

La frecuencia de deslizamientos varía entre los años del periodo 2007–2017, evidenciando un comportamiento temporal no uniforme que justifica la evaluación de diferentes modelos probabilísticos.

3. Conjetura del modelo


En esta sección se plantea un modelo probabilístico para cada periodo de estudio, con base en el comportamiento observado de las frecuencias anuales de deslizamientos.

3.1 Modelo Poisson (2007–2009)

Durante el periodo 2007–2009 la variable corresponde al número de deslizamientos registrados por año, por lo que se propone una distribución de Poisson como modelo probabilístico.

#============================================================
# 3.1 MODELO POISSON
#============================================================

TDF_poisson <- datos_poisson %>%
  count(Año, name = "Frecuencia") %>%
  arrange(Año)

TDF_poisson %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 2. Frecuencia anual (2007–2009)**")
  )
Tabla 2. Frecuencia anual (2007–2009)
Año Frecuencia
2007 408
2008 699
2009 379
ggplot(TDF_poisson,
       aes(x = factor(Año),
           y = Frecuencia)) +

  geom_col(
    fill = "#6D213C",
    color = "black",
    width = 0.70
  ) +

  geom_text(
    aes(label = Frecuencia),
    vjust = -0.35,
    size = 4
  ) +

  labs(
    title = "Gráfica 2. Frecuencia anual (2007–2009)",
    x = "Año",
    y = "Frecuencia"
  ) +

  theme_minimal()

Interpretación

La distribución de frecuencias presenta un comportamiento compatible con un modelo de Poisson, al tratarse del conteo de eventos registrados en intervalos anuales.


3.2 Modelo Uniforme (2013–2017)

Para el periodo 2013–2017 se propone un modelo Uniforme, considerando que las frecuencias registradas presentan una variación moderada entre las categorías.

#============================================================
# 3.2 MODELO UNIFORME
#============================================================

TDF_uniforme <- datos_uniforme %>%
  count(Año, name = "Frecuencia") %>%
  arrange(Año)

TDF_uniforme %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 3. Frecuencia anual (2013–2017)**")
  )
Tabla 3. Frecuencia anual (2013–2017)
Año Frecuencia
2013 1117
2014 1034
2015 1339
2016 1171
2017 1227
ggplot(TDF_uniforme,
       aes(x = factor(Año),
           y = Frecuencia)) +

  geom_col(
    fill = "#6D213C",
    color = "black",
    width = 0.70
  ) +

  geom_text(
    aes(label = Frecuencia),
    vjust = -0.35,
    size = 4
  ) +

  labs(
    title = "Gráfica 3. Frecuencia anual (2013–2017)",
    x = "Año",
    y = "Frecuencia"
  ) +

  theme_minimal()

Interpretación

La distribución de frecuencias presenta una variación moderada entre los años, por lo que se propone un modelo Uniforme para evaluar su ajuste.

4. Cálculo de parámetros


En esta sección se estiman los parámetros necesarios para definir los modelos probabilísticos propuestos para cada periodo de estudio.

4.1 Modelo Poisson (2007–2009)

El parámetro del modelo de Poisson corresponde a la media de la frecuencia anual de deslizamientos registrada durante el periodo 2007–2009.

#============================================================
# 4.1 PARÁMETROS DEL MODELO POISSON
#============================================================

lambda_poisson <- mean(TDF_poisson$Frecuencia)

varianza_poisson <- var(TDF_poisson$Frecuencia)

desviacion_poisson <- sd(TDF_poisson$Frecuencia)

tabla_parametros_poisson <- data.frame(

  Parámetro = c(
    "Lambda (λ)",
    "Varianza",
    "Desviación estándar"
  ),

  Valor = round(
    c(
      lambda_poisson,
      varianza_poisson,
      desviacion_poisson
    ),
    2
  )

)

tabla_parametros_poisson %>%

gt() %>%

tab_header(

title = md("**Tabla 4. Parámetros del modelo Poisson**")

)
Tabla 4. Parámetros del modelo Poisson
Parámetro Valor
Lambda (λ) 495.33
Varianza 31320.33
Desviación estándar 176.98

Interpretación

El parámetro λ representa la frecuencia media anual de deslizamientos durante el periodo 2007–2009.


4.2 Modelo Uniforme (2013–2017)

Para el modelo Uniforme se determina el número de categorías y la probabilidad teórica asignada a cada una.

#============================================================
# 4.2 PARÁMETROS DEL MODELO UNIFORME
#============================================================

n_categorias <- nrow(TDF_uniforme)

probabilidad_uniforme <- 1 / n_categorias

tabla_parametros_uniforme <- data.frame(

  Parámetro = c(
    "Número de categorías",
    "Probabilidad por categoría"
  ),

  Valor = c(
    n_categorias,
    round(probabilidad_uniforme,4)
  )

)

tabla_parametros_uniforme %>%

gt() %>%

tab_header(

title = md("**Tabla 5. Parámetros del modelo Uniforme**")

)
Tabla 5. Parámetros del modelo Uniforme
Parámetro Valor
Número de categorías 5.0
Probabilidad por categoría 0.2

Interpretación

En el modelo Uniforme todas las categorías presentan la misma probabilidad de ocurrencia.

5. Comparación entre el modelo teórico y los datos observados


En esta sección se comparan las frecuencias observadas con las frecuencias estimadas por cada modelo probabilístico, con el fin de evaluar de manera preliminar su capacidad para representar el comportamiento de los datos.

5.1 Modelo Poisson (2007–2009)

Las frecuencias teóricas se obtienen a partir de la distribución de Poisson utilizando el parámetro λ estimado previamente.

#============================================================
# 5.1 COMPARACIÓN - MODELO POISSON
#============================================================

modelo_poisson <- TDF_poisson %>%
  mutate(
    Probabilidad_Modelo = dpois(Frecuencia,
                                lambda = lambda_poisson),
    Frecuencia_Modelo = Probabilidad_Modelo *
                        sum(Frecuencia),
    Diferencia = Frecuencia - Frecuencia_Modelo
  )

modelo_poisson %>%
  mutate(
    Probabilidad_Modelo = round(Probabilidad_Modelo,4),
    Frecuencia_Modelo = round(Frecuencia_Modelo,2),
    Diferencia = round(Diferencia,2)
  ) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 6. Comparación entre las frecuencias observadas y las frecuencias del modelo Poisson**")
  ) %>%
  cols_label(
    Frecuencia = "Frecuencia observada",
    Probabilidad_Modelo = "Probabilidad",
    Frecuencia_Modelo = "Frecuencia teórica"
  )
Tabla 6. Comparación entre las frecuencias observadas y las frecuencias del modelo Poisson
Año Frecuencia observada Probabilidad Frecuencia teórica Diferencia
2007 408 0 0.01 407.99
2008 699 0 0.00 699.00
2009 379 0 0.00 379.00
datos_grafico_poisson <- modelo_poisson %>%
  pivot_longer(
    cols = c(Frecuencia, Frecuencia_Modelo),
    names_to = "Tipo",
    values_to = "Valor"
  )

ggplot(datos_grafico_poisson,
       aes(factor(Año),
           Valor,
           fill = Tipo)) +

  geom_col(
    position = "dodge",
    width = 0.70
  ) +

  labs(
    title = "Gráfica 4. Comparación del modelo Poisson",
    x = "Año",
    y = "Frecuencia",
    fill = ""
  ) +

  theme_minimal()

Interpretación

Las frecuencias estimadas por el modelo de Poisson permiten comparar el comportamiento teórico con las frecuencias registradas durante el periodo 2007–2009.


5.2 Modelo Uniforme (2013–2017)

En el modelo Uniforme todas las categorías poseen la misma probabilidad de ocurrencia.

#============================================================
# 5.2 COMPARACIÓN - MODELO UNIFORME
#============================================================

modelo_uniforme <- TDF_uniforme %>%
  mutate(
    Probabilidad_Modelo = 1/n(),
    Frecuencia_Modelo = Probabilidad_Modelo *
                        sum(Frecuencia),
    Diferencia = Frecuencia - Frecuencia_Modelo
  )

modelo_uniforme %>%
  mutate(
    Probabilidad_Modelo = round(Probabilidad_Modelo,4),
    Frecuencia_Modelo = round(Frecuencia_Modelo,2),
    Diferencia = round(Diferencia,2)
  ) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 7. Comparación entre las frecuencias observadas y las frecuencias del modelo Uniforme**")
  ) %>%
  cols_label(
    Frecuencia = "Frecuencia observada",
    Probabilidad_Modelo = "Probabilidad",
    Frecuencia_Modelo = "Frecuencia teórica"
  )
Tabla 7. Comparación entre las frecuencias observadas y las frecuencias del modelo Uniforme
Año Frecuencia observada Probabilidad Frecuencia teórica Diferencia
2013 1117 0.2 1177.6 -60.6
2014 1034 0.2 1177.6 -143.6
2015 1339 0.2 1177.6 161.4
2016 1171 0.2 1177.6 -6.6
2017 1227 0.2 1177.6 49.4
datos_grafico_uniforme <- modelo_uniforme %>%
  pivot_longer(
    cols = c(Frecuencia, Frecuencia_Modelo),
    names_to = "Tipo",
    values_to = "Valor"
  )

ggplot(datos_grafico_uniforme,
       aes(factor(Año),
           Valor,
           fill = Tipo)) +

  geom_col(
    position = "dodge",
    width = 0.70
  ) +

  labs(
    title = "Gráfica 5. Comparación del modelo Uniforme",
    x = "Año",
    y = "Frecuencia",
    fill = ""
  ) +

  theme_minimal()

Interpretación

Las frecuencias teóricas obtenidas mediante el modelo Uniforme permiten comparar el comportamiento esperado con las frecuencias registradas para el periodo 2013–2017.