Carga de datos y librerías Extraer variable Conclusión

1. CARGA DE DATOS Y LIBRERÍAS

library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gt)
library(e1071)

datos_nuevoartes <- read_excel("datos_nuevoartes_.xlsx")
## New names:
## • `` -> `...34`
## • `` -> `...35`

2. EXTRAER LA VARIABLE

hora <- datos_nuevoartes$hora
hora <- hora[!is.na(hora)]
N_total <- length(hora)

3. CONTEO

La variable hora corresponde a la hora de ocurrencia de los deslizamientos. Debido a que sus valores únicamente pueden variar entre 0 y 23 horas, se establecieron 12 intervalos de clase de amplitud 2 horas, lo que permite representar adecuadamente la distribución sin generar un número excesivo de barras.

3.1 Parámetros de clasificación

N_total <- length(hora)
xmin <- 0
xmax <- 23

k <- 12
A <- 2

parametros <- data.frame(
  Observaciones = N_total,
  Minimo = xmin,
  Maximo = xmax,
  Clases = k,
  Amplitud = A
)

parametros
##   Observaciones Minimo Maximo Clases Amplitud
## 1         11033      0     23     12        2

3.2 Definición de clases

Li <- seq(0,22,by=2)
Ls <- c(seq(2,22,by=2),23)

clases_etiquetas <- c(
  "0 - 2","2 - 4","4 - 6","6 - 8",
  "8 - 10","10 - 12","12 - 14","14 - 16",
  "16 - 18","18 - 20","20 - 22","22 - 23"
)

MC <- (Li+Ls)/2

3.3 Cálculo de frecuencias

breaks <- c(Li,24)

histograma <- hist(
  hora,
  breaks=breaks,
  include.lowest=TRUE,
  right=FALSE,
  plot=FALSE
)

ni <- histograma$counts
hi <- round(ni/sum(ni)*100,2)

Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))

Hi_asc <- round(cumsum(hi),2)
Hi_dsc <- round(rev(cumsum(rev(hi))),2)

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias simple

TDF_final <- data.frame(
  Clase = clases_etiquetas,
  Li = Li,
  Ls = Ls,
  MC = MC,
  ni = ni,
  hi = hi,
  Ni_asc = Ni_asc,
  Ni_dsc = Ni_dsc,
  Hi_asc = Hi_asc,
  Hi_dsc = Hi_dsc
)

4.2 Tabla de presentación

tabla_presentacion <- TDF_final %>%
  rbind(
    data.frame(
      Clase = "TOTAL",
      Li = NA,
      Ls = NA,
      MC = NA,
      ni = sum(ni),
      hi = 100,
      Ni_asc = NA,
      Ni_dsc = NA,
      Hi_asc = NA,
      Hi_dsc = NA
    )
  ) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 12**"),
    subtitle = md("Distribución de frecuencias de la hora de ocurrencia de\n los deslizamientos a nivel mundial")
  ) %>%
  fmt_number(
    columns = c(MC, hi, Hi_asc, Hi_dsc),
    decimals = 2
  ) %>%
  sub_missing(
    columns = everything(),
    missing_text = ""
  ) %>%
  cols_label(
    Clase = "Rango",
    Li = "Li",
    Ls = "Ls",
    MC = "MC",
    ni = "ni",
    hi = "hi (%)",
    Ni_asc = "Ascendente",
    Ni_dsc = "Descendente",
    Hi_asc = "Ascendente",
    Hi_dsc = "Descendente"
  ) %>%
  tab_spanner(
    label = "NI",
    columns = c(Ni_asc, Ni_dsc)
  ) %>%
  tab_spanner(
    label = "HI (%)",
    columns = c(Hi_asc, Hi_dsc)
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Clase == "TOTAL")
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
  )

tabla_presentacion
Tabla N° 12
Distribución de frecuencias de la hora de ocurrencia de los deslizamientos a nivel mundial
Rango Li Ls MC ni hi (%)
NI
HI (%)
Ascendente Descendente Ascendente Descendente
0 - 2 0 2 1.00 229 2.08 229 11033 2.08 100.00
2 - 4 2 4 3.00 199 1.80 428 10804 3.88 97.92
4 - 6 4 6 5.00 212 1.92 640 10605 5.80 96.12
6 - 8 6 8 7.00 414 3.75 1054 10393 9.55 94.20
8 - 10 8 10 9.00 900 8.16 1954 9979 17.71 90.45
10 - 12 10 12 11.00 5590 50.67 7544 9079 68.38 82.29
12 - 14 12 14 13.00 537 4.87 8081 3489 73.25 31.62
14 - 16 14 16 15.00 837 7.59 8918 2952 80.84 26.75
16 - 18 16 18 17.00 456 4.13 9374 2115 84.97 19.16
18 - 20 18 20 19.00 596 5.40 9970 1659 90.37 15.03
20 - 22 20 22 21.00 373 3.38 10343 1063 93.75 9.63
22 - 23 22 23 22.50 690 6.25 11033 690 100.00 6.25
TOTAL


11033 100.00



Elaborado por: Grupo 1 – Carrera de Geología

5. GRÁFICAS

5.1 Distribución local de la hora de ocurrencia de los deslizamientos a nivel mundial

par(mar=c(8,5,4,2))

max_ni_real <- max(ni)

pos_x <- barplot(
  ni,
  col="grey",
  border="black",
  space=0,
  las=1,
  ylim=c(0,max_ni_real),
  yaxt="n",
  xaxt="n",
  main="Gráfica 19: Distribución local de la hora de ocurrencia de los\ndeslizamientos a nivel mundial",
  xlab="",
  ylab="Cantidad"
)

ticks_y_ni <- pretty(c(0,max_ni_real))

axis(2,at=ticks_y_ni,labels=ticks_y_ni,las=1)
axis(1,at=pos_x,labels=clases_etiquetas,las=2,cex.axis=.75)

mtext("Hora del día",side=1,line=6)

text(pos_x,ni,labels=ni,pos=3,cex=.8,font=2)

5.2 Distribución global de la hora de ocurrencia de los deslizamientos a nivel mundial

par(mar=c(8,5,4,2))

n_max_global <- N_total

barplot(
  ni,
  col="grey",
  border="black",
  space=0,
  las=1,
  ylim=c(0,n_max_global*1.10),
  yaxt="n",
  xaxt="n",
  main="Gráfica 20: Distribución global de la hora de ocurrencia de los\ndeslizamientos a nivel mundial",
  xlab="",
  ylab="Cantidad"
)

ticks_global <- pretty(c(0,n_max_global))

axis(2,at=ticks_global,labels=ticks_global,las=1)
axis(1,at=pos_x,labels=clases_etiquetas,las=2,cex.axis=.75)

mtext("Hora del día",side=1,line=5)

abline(h=N_total,col="red",lty=2)

text(pos_x,ni,labels=ni,pos=3,cex=.8,font=2)

5.3 Distribución local porcentual de la hora de ocurrencia de los deslizamientos

par(mar=c(8,5,4,2))

max_hi <- max(hi)

barplot(
  hi,
  col="#CDB79E",
  border="black",
  space=0,
  las=1,
  ylim=c(0,max_hi*1.10),
  yaxt="n",
  xaxt="n",
  main="Gráfica 21: Distribución local porcentual de la hora de ocurrencia\n de los deslizamientos",
  xlab="",
  ylab="Porcentaje (%)"
)

ticks_hi <- pretty(c(0,max_hi))

axis(2,at=ticks_hi,labels=round(ticks_hi,2),las=1)
axis(1,at=pos_x,labels=clases_etiquetas,las=2,cex.axis=.75)

mtext("Hora del día",side=1,line=5)

text(pos_x,hi,labels=round(hi,2),pos=3,cex=.8,font=2)

5.4 Distribución global porcentual de la hora de ocurrencia de los deslizamientos

par(mar=c(8,5,4,2))

barplot(
  hi,
  col="#CDB79E",
  border="black",
  space=0,
  las=1,
  ylim=c(0,100),
  yaxt="n",
  xaxt="n",
  main="Gráfica 22: Distribución global porcentual de la hora de ocurrencia\n de los deslizamientos",
  xlab="",
  ylab="Porcentaje (%)"
)

ticks_hi_global <- seq(0,100,20)

axis(2,at=ticks_hi_global,labels=paste0(ticks_hi_global,"%"),las=1)
axis(1,at=pos_x,labels=clases_etiquetas,las=2,cex.axis=.75)

mtext("Hora del día",side=1,line=6)

abline(h=100,col="blue",lty=2)

text(pos_x,hi,labels=round(hi,2),pos=3,cex=.8,font=2)

5.5 Diagrama de Caja (Boxplot)

par(mfrow=c(1,1),mar=c(5,4,4,2))

boxplot(
  hora,
  col="bisque",
  horizontal=TRUE,
  outline=TRUE,
  xlab="Hora del día",
  main="Gráfica 24: Diagrama de caja de la hora de ocurrencia\nde los deslizamientos"
)

5.6 Diagrama de Ojivas Combinadas

par(mar=c(8,5,4,11))

plot(
  1:length(ni),
  Ni_asc,
  type="b",
  pch=17,
  col="black",
  xaxt="n",
  xlab="",
  ylab="Frecuencia acumulada",
  ylim=c(0,max(Ni_asc)),
  main="Gráfica 25: Ojivas combinadas de la hora de ocurrencia"
)

lines(
  1:length(ni),
  Ni_dsc,
  type="b",
  pch=16,
  col="blue"
)

axis(1,at=1:length(ni),labels=clases_etiquetas,las=2,cex.axis=.75)

mtext("Intervalos de hora",side=1,line=6)

legend(
  "topright",
  inset=c(-0.28,0),
  xpd=TRUE,
  legend=c("Ascendente","Descendente"),
  col=c("black","blue"),
  pch=c(17,16),
  lty=1,
  bty="n"
)

6. INDICADORES

6.1 Indicadores estadísticos

x_bar <- mean(hora)
Me <- median(hora)
Mo <- as.numeric(names(sort(table(hora), decreasing = TRUE)[1]))
SD <- sd(hora)
CV <- (SD/x_bar)*100
As <- skewness(hora)
K <- kurtosis(hora)

6.2 Tabla de indicadores estadísticos

tabla_indicadores <- data.frame(
  Variable = "Hora",
  Min = min(hora),
  Max = max(hora),
  Media = x_bar,
  Mediana = Me,
  Moda = Mo,
  `Desv. Est.` = SD,
  `CV (%)` = CV,
  Asimetría = As,
  Curtosis = K
)

tabla_indicadores_gt <- tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 13**"),
    subtitle = md("Indicadores estadísticos de la hora de ocurrencia de los deslizamientos")
  ) %>%
  fmt_number(
    columns = 4:10,
    decimals = 2
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
  )

tabla_indicadores_gt
Tabla N° 13
Indicadores estadísticos de la hora de ocurrencia de los deslizamientos
Variable Min Max Media Mediana Moda Desv..Est. CV.... Asimetría Curtosis
Hora 0 23 12.19 11.00 11.00 4.61 37.87 0.41 0.88
Elaborado por: Grupo 2 – Carrera de Geología

6.3 Detección de outliers

Q1 <- quantile(hora,0.25)
Q3 <- quantile(hora,0.75)
IQR_h <- Q3-Q1

lim_inf <- Q1-1.5*IQR_h
lim_sup <- Q3+1.5*IQR_h

outliers_vec <- hora[
  hora < lim_inf |
  hora > lim_sup
]

6.4 Tabla de outliers

tabla_outliers <- data.frame(
  Variable = "Hora",
  Outliers_Detectados = length(outliers_vec),
  Limite_Inferior = lim_inf,
  Limite_Superior = lim_sup,
  Q1 = Q1,
  Q3 = Q3
)

tabla_outliers_gt <- tabla_outliers %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 14**"),
    subtitle = md("Detección de valores atípicos de la hora de ocurrencia de los deslizamientos")
  ) %>%
  fmt_number(
    columns = 3:6,
    decimals = 2
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
  )

tabla_outliers_gt
Tabla N° 14
Detección de valores atípicos de la hora de ocurrencia de los deslizamientos
Variable Outliers_Detectados Limite_Inferior Limite_Superior Q1 Q3
Hora 2012 6.50 18.50 11.00 14.00
Elaborado por: Grupo 2 – Carrera de Geología

7. CONCLUSIÓN

La variable hora fluctúa entre 0 y 23, y sus valores giran entorno a la mediana que es 11, con una desviación estándar de 33.83, siendo un conjunto de datos muy heterogéneo. El conjunto de valores se concentra fuertemente en la parte media de la variable. Con la presencia de 2012 valores atípicos que van desde 0 hasta 6.50 y desde 18.50 hasta 23 horas. Por lo tanto, esta distribución resulta perjudicial porque indica que los eventos pueden ocurrir tanto en horas tempranas como nocturnas.