UNIVERSIDAD CENTRAL DEL ECUADOR

ESTUDIO ESTADÍSTICO DEL CLIMA EN EL VOLCAN ANTISANA

FECHA: 24/01/2026

#INTEGRANTES: JUAN ARTEAGA, RONALD CARRERA, ANDRE LABANDA, ALEXANDER SAILEMA

#INTRODUCCIÓN

#Planteamiento del problema:
#Las variaciones de las condiciones meteorológicas constituyen un fenómeno ambiental de gran importancia, 
#ya que influyen directamente en los ecosistemas, los recursos hídricos y diversas actividades humanas. 
#Con el paso del tiempo, factores como la temperatura, la precipitación, el viento y la radiación solar pueden presentar cambios significativos que afectan el equilibrio ambiental y climático. 
#En este contexto, el uso de herramientas estadísticas permite analizar los datos meteorológicos registrados en la estación Antisana, 
#identificando patrones y tendencias que contribuyen a comprender el comportamiento del clima y su impacto en el entorno natural durante el período de estudio.

#Mapa de Ubicación


library(magick)
library(cowplot)

img <- image_read("C:/Users/JOSUE/Downloads/ESTADISTICA/img/Mapa Antisana.jpeg")

ggdraw() + draw_image(img)

#Objetivo General 
#Aplicar la estadística para el estudio de las variables meteorológicas registradas en la estación Antisana durante todo el año 2012, mediante el uso de herramientas para la medición, análisis e interpretación de datos climáticos.

#Objetivos Especificos
#Conocer el comportamiento de las variables meteorológicas registradas en la estación Antisana, identificando sus principales características mediante el uso de medidas estadísticas descriptivas.
#Emplear modelos de probabilidad para establecer conclusiones sobre la variabilidad de las condiciones meteorológicas a partir de los resultados obtenidos en la muestra analizada.
#Deducir relaciones entre las variables meteorológicas con el fin de realizar estimaciones y análisis que contribuyan a la interpretación del comportamiento climático en el período de estudio.


#Para esta base de datos las primeras variables no se ocupan ya que tienen valores constantes y se van a ocupar para hacer el mapa de ubicación
#así que se va a trabajar con las demás Variables para realizar el análisis estadístico.

#ESTADÍSTICA DESCRIPTIVA



#Poblacion
#Todos los días del año en la estación meteorológica Antisana.
#P={x∣x ∈ dias de registro meteorologico ∧ Estacion(x)="Antisana"}


#Individuo
#Cada día de registro meteorológico en la estación Antisana.
#Individuo: xi,i=1,2,3,…,n

#Muestra
#Los datos disponibles corresponden a una muestra de días registrados en la estación meteorológica Antisana durante el período observado.
#M={x∣x∈dıas de registro meteorologico ∧ Estacioˊn(x)="Antisana" ∧ Año(x)=2012}



#Tabla de variables

Tabla_de_variables<-read.csv("tabla_variables_Antisana.csv",header = TRUE,dec = ".",
                             sep = ";")
Tabla_de_variables
datos<-read.csv("weatherdataANTISANA.csv",header = TRUE,dec = ".",
                sep = ",")


#Variables Cuantitativas continuas 
# Temperatura Máxima 





#Extracción Variable Cuantitativa Continua

Temp_max<- datos$Max.Temperature

min <-min(Temp_max)
max <-max(Temp_max)
R <-max-min
K <- floor(1+3.33*log10(length(Temp_max)))
A <-R/K

Li <-round(seq(from=min,to=max-A,by=A),2)
Ls <-round(seq(from=min+A,to=max,by=A),2)
Mc <-(Li+Ls)/2

ni<-c()
for (i in 1:K) {
  if (i < K) {
    ni[i] <- length(subset(Temp_max, Temp_max >= Li[i] & Temp_max < Ls[i]))
  } else {
    ni[i] <- length(subset(Temp_max, Temp_max >= Li[i] & Temp_max <= Ls[i]))
  }
}

sum(ni)
## [1] 366
hi <-ni/sum(ni)*100
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))

TDF_Temp_max <- data.frame(
  Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)

colnames(TDF_Temp_max) <- c("Li","Ls","Mc","ni","hi","Ni_asc","Ni_desc","Hi_asc(%)","Hi_desc(%)")

#Crear fila de totales

totales<-c(
  Li="TOTAL",
  Ls="-",
  Mc="-",
  ni=sum(ni),
  hi=sum(hi),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDF_Temp_max_final <-rbind(TDF_Temp_max,totales)

library(dplyr)
library(gt)

TDF_Temp_max_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 1"),
    subtitle = md("*Tabla de distribución de la Temperatura Máxima (°C)*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 1
Tabla de distribución de la Temperatura Máxima (°C)
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
10.32 11.82 11.07 26 7.1 26 366 7.1 100
11.82 13.31 12.565 60 16.39 86 340 23.5 92.9
13.31 14.81 14.06 71 19.4 157 280 42.9 76.5
14.81 16.31 15.56 60 16.39 217 209 59.29 57.1
16.31 17.8 17.055 62 16.94 279 149 76.23 40.71
17.8 19.3 18.55 44 12.02 323 87 88.25 23.77
19.3 20.8 20.05 23 6.28 346 43 94.54 11.75
20.8 22.29 21.545 14 3.83 360 20 98.36 5.46
22.29 23.79 23.04 6 1.64 366 6 100 1.64
TOTAL - - 366 100 - - - -
Autor: Grupo 3
# Histograma
histoT <- hist(
  Temp_max,
  main = "Gráfica Nº1: Distribución de la Temperatura Máxima",
  xlab = "Temperatura  Máxima(°C)",
  ylab = "Cantidad",
  col = "blue"
)

#Simplificación con el histograma

Hist_Temp_Max<-hist(Temp_max,breaks = 8,plot = F)
k<-length(Hist_Temp_Max$breaks)
Li<-Hist_Temp_Max$breaks[1:(length(Hist_Temp_Max$breaks)-1)]
Ls<-Hist_Temp_Max$breaks[2:length(Hist_Temp_Max$breaks)]
ni<-Hist_Temp_Max$counts
sum(ni)
## [1] 366
Mc<-Hist_Temp_Max$mids
hi<-(ni/sum(ni))
sum(hi)
## [1] 1
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))
TDF_Temp_Maxima<-data.frame(Li=round(Li,2),
                            Ls=round(Ls,2),
                            Mc=round(Mc,2),
                            ni=ni,
                            hi=round(hi*100,2),
                            Ni_asc=Ni_asc,
                            Ni_desc=Ni_desc,
                            Hi_asc=round(Hi_asc*100,2),
                            Hi_desc=round(Hi_desc*100,2))
colnames(TDF_Temp_Maxima)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<-c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDF_Temp_Maxima$ni)),
           hi = sum(as.numeric(TDF_Temp_Maxima$hi)),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-")

TDF_Temp_Maxima_final<-rbind(TDF_Temp_Maxima,totales)
library(dplyr)
library(gt)

TDF_Temp_Maxima_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 2"),
    subtitle = md("*Tabla Simplificada de distribución de la Temperatura Máxima en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 2
Tabla Simplificada de distribución de la Temperatura Máxima en el volcan Antisana
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
10 12 11 30 8.2 30 366 8.2 100
12 14 13 94 25.68 124 336 33.88 91.8
14 16 15 78 21.31 202 242 55.19 66.12
16 18 17 82 22.4 284 164 77.6 44.81
18 20 19 50 13.66 334 82 91.26 22.4
20 22 21 25 6.83 359 32 98.09 8.74
22 24 23 7 1.91 366 7 100 1.91
TOTAL - - 366 99.99 - - - -
Autor: Grupo 3
#Gráficas


hist(Temp_max, breaks = 10,
     main = "Gráfica N°3 Distribución para la Temperatura Máxima en el Volcan Antisana ",
     xlab = "Temperatura Máxima (°C)",
     ylab = "Cantidad",
     ylim = c(0,max(ni)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")

axis(1, at = Hist_Temp_Max$breaks,
     labels = Hist_Temp_Max$breaks, las = 1,
     cex.axis = 0.9)

hist(Temp_max, breaks = 10,
     main = "Gráfica N°4: Distribución de la Temperatura Máxima en el volcan Antisana ",
     xlab = "Temperatura Máxima (°C)",
     ylab = "Cantidad",
     ylim = c(0, length(Temp_max)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Temp_Max$breaks,
     labels = Hist_Temp_Max$breaks, las = 1,
     cex.axis = 0.9)

TDF_Temp_Maxima_final$hi <- as.numeric(TDF_Temp_Maxima_final$hi)
datos_grafico <- subset(TDF_Temp_Maxima_final, !(MC %in% c("-", "TOTAL")))


barplot(datos_grafico$hi,
        space = 0,
        col = "blue",
        main = "Gráfica N°5: Distribución porcentual de la Temperatura Máxima en el Volcan Antisana",
        xlab = "Temperatura Máxima (°C)",
        ylab = "Porcentaje (%)",
        names.arg = datos_grafico$MC,
        ylim = c(0, 30))

barplot(datos_grafico$hi,
        space = 0,
        col = "skyblue",
        main = "Gráfica N°6: Distribución porcentual de la Temperatura Máxima en el Volcan Antisana",
        xlab = "Temperatura °C",
        ylab = "Porcentaje (%)",
        names.arg = datos_grafico$MC,
        ylim = c(0, 100))

# Boxplot 
boxplot(
  Temp_max,
  horizontal = TRUE,
  col = "pink",
  main = "Gráfica Nº7: Distribución de la Temperatura Máxima",
  xlab = "Temperatura Máxima (°C)",
  outline = TRUE,
  pch = 19
)

# Ojivas
plot(
  Li, Ni_desc,
  main = "Gráfica Nº8: Distribución Ascendente y Descendente de la Temperatura Máxima",
  xlab = "Temperatura Máxima(°C)",
  ylab = "Cantidad",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 3
)

lines(
  Ls, Ni_asc,
  col = "green",
  type = "o",
  lwd = 3
)

# Ojiva Porcentual
plot(
  Li, Hi_desc,
  main = "Gráfica Nº9: Distribución Ascendente y Descendente de la Temperatura Máxima",
  xlab = "Temperatura Máxima (°C)",
  ylab = "Porcentaje (%)",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 2
)

lines(
  Ls, Hi_asc,
  col = "blue",
  type = "o",
  lwd = 3
)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Temp_max), 0)
media
## [1] 16
# Moda
# Moda
max_frecuencia <- max(TDF_Temp_Maxima_final$ni)
moda <- TDF_Temp_Maxima_final$MC[TDF_Temp_Maxima_final$ni == max_frecuencia]
moda
## [1] "13"
# Mediana
mediana <- median(Temp_max)
mediana
## [1] 15.51
# INDICADORES DE DISPERSIÓN #
# Desviación Estándar

# Varianza
varianza <- var(Temp_max)
varianza
## [1] 8.222732
sd <- sd(Temp_max)
sd
## [1] 2.867531
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 17.92
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetria <- skewness(Temp_max, type = 2)
asimetria
## [1] 0.3905542
#Curtosis
curtosis <- kurtosis(Temp_max)
curtosis
## [1] -0.5581832
# TABLA RESUMEN FINAL
tabla_indicadores <- data.frame(
  "Variable" = c("Temperatura Máxima"),
  "Rango" = c(paste0("[", min(Temp_max), " ; ", max(Temp_max), "]")),
  "X" = c(round(media, 0)),
  "Me" = c(round(mediana, 0)),
  "Mo" = c(paste(moda, collapse = ", ")),
  "V" =  c(round(varianza,2)),
  "Sd" = c(round(sd, 0)),
  "Cv" = c(cv),
  "As" = c(round(asimetria, 2)),
  "K" = c(round(curtosis, 2)),
  "Valores Atípicos" = "-"
)

library(gt)

tabla_indicadores_gt <- tabla_indicadores %>% 
  gt() %>% 
  tab_header(
    title = md("Tabla N°2.1"),
    subtitle = md("*Indicadores estadísticos de la variable Temperatura Máxima*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black"
  ) %>% 
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Variable == "Temperatura Máxiima"
    )
  )

tabla_indicadores_gt
Tabla N°2.1
Indicadores estadísticos de la variable Temperatura Máxima
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Temperatura Máxima [10.32 ; 23.79] 16 16 13 8.22 3 17.92 0.39 -0.56 -
Autor: Grupo 3
#Temperatura Mínima 

Temp_min<- datos$Min.Temperature


min2 <-min(Temp_min)
max2 <-max(Temp_min)
R2 <-max2-min2
K2 <- floor(1+3.33*log10(length(Temp_min)))
A2 <-R2/K2

Li2 <-round(seq(from=min2,to=max2-A2,by=A2),2)
Ls2 <-round(seq(from=min2+A2,to=max2,by=A2),2)
Mc2 <-(Li2+Ls2)/2

ni2<-c()
for (i in 1:K2) {
  if (i < K2) {
    ni2[i] <- length(subset(Temp_min, Temp_min >= Li2[i] & Temp_min < Ls2[i]))
  } else {
    ni2[i] <- length(subset(Temp_min, Temp_min >= Li2[i] & Temp_min <= Ls2[i]))
  }
}

sum(ni2)
## [1] 366
hi2 <-ni2/sum(ni2)*100
Ni_asc2<-cumsum(ni2)
Hi_asc2<-cumsum(hi2)
Ni_desc2<-rev(cumsum(rev(ni2)))
Hi_desc2<-rev(cumsum(rev(hi2)))

TDF_Temp_min <- data.frame(
  Li2, Ls2, Mc2, ni2, round(hi2, 2), Ni_asc2, Ni_desc2, round(Hi_asc2, 2), round(Hi_desc2, 2)
)

colnames(TDF_Temp_min) <- c("Li","Ls","Mc","ni","hi","Ni_asc","Ni_desc","Hi_asc(%)","Hi_desc(%)")

#Crear fila de totales

totales<-c(
  Li="TOTAL",
  Ls="-",
  Mc="-",
  ni=sum(ni2),
  hi=sum(hi2),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDF_Temp_min_final <-rbind(TDF_Temp_min,totales)

library(dplyr)
library(gt)

TDF_Temp_min_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 3"),
    subtitle = md("*Tabla de distribución de la Temperatura Mínima en el Volcan Antisana (°C)*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 3
Tabla de distribución de la Temperatura Mínima en el Volcan Antisana (°C)
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
2.65 3.56 3.105 1 0.27 1 366 0.27 100
3.56 4.47 4.015 4 1.09 5 365 1.37 99.73
4.47 5.38 4.925 6 1.64 11 361 3.01 98.63
5.38 6.29 5.835 21 5.74 32 355 8.74 96.99
6.29 7.21 6.75 55 15.03 87 334 23.77 91.26
7.21 8.12 7.665 108 29.51 195 279 53.28 76.23
8.12 9.03 8.575 80 21.86 275 171 75.14 46.72
9.03 9.94 9.485 60 16.39 335 91 91.53 24.86
9.94 10.85 10.395 31 8.47 366 31 100 8.47
TOTAL - - 366 100 - - - -
Autor: Grupo 3
# Histograma
histoT <- hist(
  Temp_min,
  main = "Gráfica Nº10: Distribución de la Temperatura Mínima",
  xlab = "Temperatura  Mínima(°C)",
  ylab = "Cantidad",
  col = "blue"
)

#Simplificación con el histograma

Hist_Temp_Min<-hist(Temp_min,breaks = 8,plot = F)
k2<-length(Hist_Temp_Min$breaks)
Li2<-Hist_Temp_Min$breaks[1:(length(Hist_Temp_Min$breaks)-1)]
Ls2<-Hist_Temp_Min$breaks[2:length(Hist_Temp_Min$breaks)]
ni2<-Hist_Temp_Min$counts
sum(ni2)
## [1] 366
Mc2<-Hist_Temp_Min$mids
hi2<-(ni2/sum(ni2))
sum(hi2)
## [1] 1
Ni_asc2<-cumsum(ni2)
Hi_asc2<-cumsum(hi2)
Ni_desc2<-rev(cumsum(rev(ni2)))
Hi_desc2<-rev(cumsum(rev(hi2)))
TDF_Temp_Mínima<-data.frame(Li=round(Li2,2),
                            Ls=round(Ls2,2),
                            Mc=round(Mc2,2),
                            ni=ni2,
                            hi=round(hi2*100,2),
                            Ni_asc=Ni_asc2,
                            Ni_desc=Ni_desc2,
                            Hi_asc=round(Hi_asc2*100,2),
                            Hi_desc=round(Hi_desc2*100,2))
colnames(TDF_Temp_Mínima)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<- c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDF_Temp_Mínima$ni)),
           hi = sum(as.numeric(TDF_Temp_Mínima$hi)),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-"
           )


TDF_Temp_Mínima_final<-rbind(TDF_Temp_Mínima,totales)
library(dplyr)
library(gt)

TDF_Temp_Mínima_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 4"),
    subtitle = md("*Tabla Simplificada de distribución de la Temperatura Mínima en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 4
Tabla Simplificada de distribución de la Temperatura Mínima en el volcan Antisana
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
2 3 2.5 1 0.27 1 366 0.27 100
3 4 3.5 2 0.55 3 365 0.82 99.73
4 5 4.5 7 1.91 10 363 2.73 99.18
5 6 5.5 16 4.37 26 356 7.1 97.27
6 7 6.5 48 13.11 74 340 20.22 92.9
7 8 7.5 109 29.78 183 292 50 79.78
8 9 8.5 90 24.59 273 183 74.59 50
9 10 9.5 66 18.03 339 93 92.62 25.41
10 11 10.5 27 7.38 366 27 100 7.38
TOTAL - - 366 99.99 - - - -
Autor: Grupo 3
#Gráficas


hist(Temp_min, breaks = 10,
     main = "Gráfica N°11 Distribución para la Temperatura Mínima en el Volcan Antisana ",
     xlab = "Temperatura Mínima (°C)",
     ylab = "Cantidad",
     ylim = c(0,max(ni2)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")

axis(1, at = Hist_Temp_Min$breaks,
     labels = Hist_Temp_Min$breaks, las = 1,
     cex.axis = 0.9)

hist(Temp_min, breaks = 10,
     main = "Gráfica N°12: Distribución de la Temperatura Mínima en el volcan Antisana ",
     xlab = "Temperatura Mínima (°C)",
     ylab = "Cantidad",
     ylim = c(0, length(Temp_min)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Temp_Min$breaks,
     labels = Hist_Temp_Min$breaks, las = 1,
     cex.axis = 0.9)

df <- TDF_Temp_min_final 


df$hi <- as.numeric(df$hi)


datos_grafico <- df[1:(nrow(df)-1), ]


barplot(
  datos_grafico$hi,
  space = 0,
  col = "blue",
  main = "Gráfica N°13: Distribución porcentual de la Temperatura Mínima en el Volcán Antisana",
  xlab = "Temperatura Mínima (°C)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico$Mc,   # si tu columna se llama MC, cámbialo por datos_grafico$MC
  ylim = c(0, max(datos_grafico$hi, na.rm = TRUE) + 5)
)

datos_grafico$hi <- as.numeric(datos_grafico$hi)


sum(datos_grafico$hi)
## [1] 100
barplot(
  datos_grafico$hi,
  space = 0,
  col = "skyblue",
  main = "Gráfica N°14: Distribución porcentual de la Temperatura Mínima en el Volcán Antisana",
  xlab = "Temperatura Mínima (°C)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico$MC,
  ylim = c(0, 100)
)

# Boxplot 
boxplot(
  Temp_min,
  horizontal = TRUE,
  col = "pink",
  main = "Gráfica Nº15: Distribución de la Temperatura Mínima",
  xlab = "Temperatura Mínima (°C)",
  outline = TRUE,
  pch = 19
)

# Ojivas
plot(
  Li2, Ni_desc2,
  main = "Gráfica Nº16: Distribución Ascendente y Descendente de la Temperatura Mínima",
  xlab = "Temperatura Mínima(°C)",
  ylab = "Cantidad",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 3
)

lines(
  Ls2, Ni_asc2,
  col = "green",
  type = "o",
  lwd = 3
)

# Ojiva Porcentual
plot(
  Li2, Hi_desc2,
  main = "Gráfica Nº17: Distribución Ascendente y Descendente de la Temperatura Mínima",
  xlab = "Temperatura Mínima (°C)",
  ylab = "Porcentaje (%)",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 2
)

lines(
  Ls2, Hi_asc2,
  col = "blue",
  type = "o",
  lwd = 3
)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media2 <- round(mean(Temp_min), 0)
media2
## [1] 8
# Moda
# Moda
max_frecuencia2 <- max(TDF_Temp_Mínima_final$ni)
moda2 <- TDF_Temp_Mínima_final$Mc[TDF_Temp_Mínima_final$ni == max_frecuencia2]
moda2
## NULL
# Mediana
mediana2 <- median(Temp_min)
mediana2
## [1] 8.005
# INDICADORES DE DISPERSIÓN #
# Desviación Estándar

# Varianza
varianza2 <- var(Temp_min)
varianza2
## [1] 1.888054
sd2 <- sd(Temp_min)
sd2
## [1] 1.374065
# Coeficiente de Variación
cv2 <- round((sd2 / media2) * 100, 2)
cv2
## [1] 17.18
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetria2 <- skewness(Temp_min, type = 2)
asimetria2
## [1] -0.4376627
#Curtosis
curtosis2 <- kurtosis(Temp_min)
curtosis2
## [1] 0.5662281
# TABLA RESUMEN FINAL
tabla_indicadores2 <- data.frame(
  "Variable" = c("Temperatura Mínima"),
  "Rango" = c(paste0("[", min(Temp_min), " ; ", max(Temp_min), "]")),
  "X" = c(round(media2, 0)),
  "Me" = c(round(mediana2, 0)),
  "Mo" = c(paste(moda2, collapse = ", ")),
  "V" =  c(round(varianza2,2)),
  "Sd" = c(round(sd2, 0)),
  "Cv" = c(cv2),
  "As" = c(round(asimetria2, 2)),
  "K" = c(round(curtosis2, 2)),
  "Valores Atípicos" = "7"
)

library(gt)

tabla_indicadores_gt2 <- tabla_indicadores2 %>% 
  gt() %>% 
  tab_header(
    title = md("Tabla N°3.1"),
    subtitle = md("*Indicadores estadísticos de la variable Temperatura Mínima*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black"
  ) %>% 
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Variable == "Temperatura Mínima"
    )
  )

tabla_indicadores_gt2
Tabla N°3.1
Indicadores estadísticos de la variable Temperatura Mínima
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Temperatura Mínima [2.65 ; 10.85] 8 8 1.89 1 17.18 -0.44 0.57 7
Autor: Grupo 3
#Precipitación


#Extracción Variable Cuantitativa Continua

Precipitacion<- datos$Precipitation

minp <-min(Precipitacion)
maxp <-max(Precipitacion)
Rp <-maxp-minp
Kp <- floor(1+3.33*log10(length(Precipitacion)))
Ap<-Rp/Kp

Lip <-round(seq(from=minp,to=maxp-Ap,by=Ap),2)
Lsp <-round(seq(from=minp+Ap,to=maxp,by=Ap),2)
Mcp <-(Lip+Lsp)/2

nip<-c()
for (i in 1:Kp) {
  if (i < Kp) {
    nip[i] <- length(subset(Precipitacion, Precipitacion >= Lip[i] & Precipitacion < Lsp[i]))
  } else {
    nip[i] <- length(subset(Precipitacion, Precipitacion >= Lip[i] & Precipitacion <= Lsp[i]))
  }
}

sum(nip)
## [1] 366
hip <-nip/sum(nip)*100
Ni_ascp<-cumsum(nip)
Hi_ascp<-cumsum(hip)
Ni_descp<-rev(cumsum(rev(nip)))
Hi_descp<-rev(cumsum(rev(hip)))

TDF_Precipitacion <- data.frame(
  Lip, Lsp, Mcp, nip, round(hip, 2), Ni_ascp, Ni_descp, round(Hi_ascp, 2), round(Hi_descp, 2)
)

colnames(TDF_Precipitacion) <- c("Li","Ls","Mc","ni","hi","Ni_asc","Ni_desc","Hi_asc(%)","Hi_desc(%)")

#Crear fila de totales

totales<-c(
  Li="TOTAL",
  Ls="-",
  Mc="-",
  ni=sum(nip),
  hi=sum(hip),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDF_Precipitacion_final <-rbind(TDF_Precipitacion,totales)

library(dplyr)
library(gt)

TDF_Precipitacion_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 5"),
    subtitle = md("*Tabla de distribución de la Precipitación en el Volcan Antisana (mm)*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 5
Tabla de distribución de la Precipitación en el Volcan Antisana (mm)
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
0.01 10.53 5.27 158 43.17 158 366 43.17 100
10.53 21.06 15.795 89 24.32 247 208 67.49 56.83
21.06 31.58 26.32 56 15.3 303 119 82.79 32.51
31.58 42.1 36.84 33 9.02 336 63 91.8 17.21
42.1 52.63 47.365 16 4.37 352 30 96.17 8.2
52.63 63.15 57.89 9 2.46 361 14 98.63 3.83
63.15 73.67 68.41 3 0.82 364 5 99.45 1.37
73.67 84.2 78.935 0 0 364 2 99.45 0.55
84.2 94.72 89.46 2 0.55 366 2 100 0.55
TOTAL - - 366 100 - - - -
Autor: Grupo 3
# Histograma
histoP <- hist(
  Precipitacion,
  main = "Gráfica Nº1: Distribución de la Precipitación en el Volcan Antisana",
  xlab = "Precitación(°C)",
  ylab = "Cantidad",
  col = "blue"
)

#Simplificación con el histograma

Hist_Precipitacion<-hist(Precipitacion,breaks = 8,plot = F)
kp<-length(Hist_Precipitacion$breaks)
Lip<-Hist_Precipitacion$breaks[1:(length(Hist_Precipitacion$breaks)-1)]
Lsp<-Hist_Precipitacion$breaks[2:length(Hist_Precipitacion$breaks)]
nip<-Hist_Precipitacion$counts
sum(nip)
## [1] 366
Mcp<-Hist_Precipitacion$mids
hip<-(nip/sum(nip))
sum(hip)
## [1] 1
Ni_ascp<-cumsum(nip)
Hi_ascp<-cumsum(hip)
Ni_descp<-rev(cumsum(rev(nip)))
Hi_descp<-rev(cumsum(rev(hip)))
TDF_Precipitacion_F<-data.frame(Li=round(Lip,2),
                            Ls=round(Lsp,2),
                            Mc=round(Mcp,2),
                            ni=nip,
                            hi=round(hip*100,2),
                            Ni_asc=Ni_ascp,
                            Ni_desc=Ni_descp,
                            Hi_asc=round(Hi_ascp*100,2),
                            Hi_desc=round(Hi_descp*100,2))
colnames(TDF_Precipitacion_F)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<-c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDF_Precipitacion_F$ni)),
           hi = sum(as.numeric(TDF_Precipitacion_F$hi)),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-")

TDF_Precipitacion_F<-rbind(TDF_Precipitacion_F,totales)
library(dplyr)
library(gt)

TDF_Precipitacion_F %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 6"),
    subtitle = md("*Tabla Simplificada de distribución de la Precipitación en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 6
Tabla Simplificada de distribución de la Precipitación en el volcan Antisana
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0 10 5 150 40.98 150 366 40.98 100
10 20 15 92 25.14 242 216 66.12 59.02
20 30 25 58 15.85 300 124 81.97 33.88
30 40 35 27 7.38 327 66 89.34 18.03
40 50 45 23 6.28 350 39 95.63 10.66
50 60 55 10 2.73 360 16 98.36 4.37
60 70 65 4 1.09 364 6 99.45 1.64
70 80 75 0 0 364 2 99.45 0.55
80 90 85 1 0.27 365 2 99.73 0.55
90 100 95 1 0.27 366 1 100 0.27
TOTAL - - 366 99.99 - - - -
Autor: Grupo 3
#Gráficas


hist(Precipitacion, breaks = 10,
     main = "Gráfica N°3 Distribución para la Precipitación en el Volcan Antisana ",
     xlab = "Precipitación (mm)",
     ylab = "Cantidad",
     ylim = c(0,max(nip)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")

axis(1, at = Hist_Precipitacion$breaks,
     labels = Hist_Precipitacion$breaks, las = 1,
     cex.axis = 0.9)

hist(Precipitacion, breaks = 10,
     main = "Gráfica N°4: Distribución de la Precipitacion en el volcan Antisana ",
     xlab = "Precipitación (mm)",
     ylab = "Cantidad",
     ylim = c(0, length(Precipitacion)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Precipitacion$breaks,
     labels = Hist_Precipitacion$breaks, las = 1,
     cex.axis = 0.9)

TDF_Precipitacion_F$hi <- as.numeric(TDF_Precipitacion_F$hi)
datos_grafico <- TDF_Precipitacion_F[1:(nrow(TDF_Precipitacion_F) - 1), ]

barplot(
  datos_grafico$hi,
  space = 0,
  col = "blue",
  main = "Gráfica N°5: Distribución porcentual de la Precipitación en el Volcán Antisana",
  xlab = "Precipitación (mm)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico$Mcp,
  ylim = c(0, max(datos_grafico$hi) + 5)
)

datos_grafico$hi <- as.numeric(datos_grafico$hi)

barplot(
  datos_grafico$hi,
  space = 0,
  col = "skyblue",
  main = "Gráfica N°6: Distribución porcentual de la Precipitación en el Volcán Antisana",
  xlab = "Precipitación (mm)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico$Mcp,
  ylim = c(0, 100)
)

# Boxplot 
boxplot(
  Precipitacion,
  horizontal = TRUE,
  col = "pink",
  main = "Gráfica Nº7: Distribución de la Precipitación",
  xlab = "Precipitación (mm)",
  outline = TRUE,
  pch = 19
)

# Ojivas
plot(
  Lip, Ni_descp,
  main = "Gráfica Nº8: Distribución Ascendente y Descendente de la Precipitación",
  xlab = "Precipitación(mm)",
  ylab = "Cantidad",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 3
)

lines(
  Lsp, Ni_ascp,
  col = "green",
  type = "o",
  lwd = 3
)

# Ojiva Porcentual
plot(
  Lip, Hi_descp,
  main = "Gráfica Nº9: Distribución Ascendente y Descendente de la Precipitación",
  xlab = "Precipitación(mm)",
  ylab = "Porcentaje (%)",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 2
)

lines(
  Lsp, Hi_ascp,
  col = "blue",
  type = "o",
  lwd = 3
)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
mediap <- round(mean(Precipitacion), 0)
mediap
## [1] 17
# Moda
max_frecuenciap <- max(TDF_Precipitacion_F$ni)
modap <- TDF_Precipitacion_F$MC[TDF_Precipitacion_F$ni == max_frecuenciap]
modap
## [1] "15"
# Mediana
medianap <- median(Precipitacion)
medianap
## [1] 12.94
# INDICADORES DE DISPERSIÓN #
# Desviación Estándar

# Varianza
varianzap <- var(Precipitacion)
varianzap
## [1] 259.6987
sdp <- sd(Precipitacion)
sdp
## [1] 16.11517
# Coeficiente de Variación
cvp <- round((sdp / mediap) * 100, 2)
cvp
## [1] 94.8
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetriap <- skewness(Precipitacion, type = 2)
asimetriap
## [1] 1.305768
#Curtosis
curtosisp <- kurtosis(Precipitacion)
curtosisp
## [1] 1.951113
# TABLA RESUMEN FINAL
tabla_indicadoresp <- data.frame(
  "Variable" = c("Precipitación"),
  "Rango" = c(paste0("[", min(Precipitacion), " ; ", max(Precipitacion), "]")),
  "X" = c(round(mediap, 0)),
  "Me" = c(round(medianap, 0)),
  "Mo" = c(paste(modap, collapse = ", ")),
  "V" =  c(round(varianzap,2)),
  "Sd" = c(round(sdp, 0)),
  "Cv" = c(cvp),
  "As" = c(round(asimetriap, 2)),
  "K" = c(round(curtosisp, 2)),
  "Valores Atípicos" = "8"
)

library(gt)

tabla_indicadores_gtp <- tabla_indicadoresp %>% 
  gt() %>% 
  tab_header(
    title = md("Tabla N°4.1"),
    subtitle = md("*Indicadores estadísticos de la variable Precipitación*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black"
  ) %>% 
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Variable == "Precipitación"
    )
  )

tabla_indicadores_gtp
Tabla N°4.1
Indicadores estadísticos de la variable Precipitación
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Precipitación [0.01 ; 94.72] 17 13 15 259.7 16 94.8 1.31 1.95 8
Autor: Grupo 3
#Viento

Viento<- datos$Wind

minV <-min(Viento)
maxV <-max(Viento)
RV <-maxV-minV
KV <- floor(1+3.33*log10(length(Viento)))
AV<-RV/KV

LiV <-round(seq(from=minV,to=maxV-AV,by=AV),2)
LsV <-round(seq(from=minV+AV,to=maxV,by=AV),2)
McV <-(LiV+LsV)/2

niV<-c()
for (i in 1:KV) {
  if (i < KV) {
    niV[i] <- length(subset(Viento, Viento >= LiV[i] & Viento < LsV[i]))
  } else {
    niV[i] <- length(subset(Viento, Viento >= LiV[i] & Viento <= LsV[i]))
  }
}

sum(niV)
## [1] 366
hiV <-niV/sum(niV)*100
Ni_ascV<-cumsum(niV)
Hi_ascV<-cumsum(hiV)
Ni_descV<-rev(cumsum(rev(niV)))
Hi_descV<-rev(cumsum(rev(hiV)))

TDF_Viento <- data.frame(
  LiV, LsV, McV, niV, round(hiV, 2), Ni_ascV, Ni_descV, round(Hi_ascV, 2), round(Hi_descV, 2)
)

colnames(TDF_Viento) <- c("Li","Ls","Mc","ni","hi","Ni_asc","Ni_desc","Hi_asc(%)","Hi_desc(%)")

#Crear fila de totales

totales<-c(
  Li="TOTAL",
  Ls="-",
  Mc="-",
  ni=sum(niV),
  hi=sum(hiV),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDF_Viento_final <-rbind(TDF_Viento,totales)

library(dplyr)
library(gt)

TDF_Viento_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 7"),
    subtitle = md("*Tabla de distribución del Viento en el Volcan Antisana *")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 7
*Tabla de distribución del Viento en el Volcan Antisana *
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
0.59 0.86 0.725 2 0.55 2 366 0.55 100
0.86 1.12 0.99 23 6.28 25 364 6.83 99.45
1.12 1.39 1.255 56 15.3 81 341 22.13 93.17
1.39 1.66 1.525 78 21.31 159 285 43.44 77.87
1.66 1.92 1.79 71 19.4 230 207 62.84 56.56
1.92 2.19 2.055 62 16.94 292 136 79.78 37.16
2.19 2.46 2.325 48 13.11 340 74 92.9 20.22
2.46 2.72 2.59 23 6.28 363 26 99.18 7.1
2.72 2.99 2.855 3 0.82 366 3 100 0.82
TOTAL - - 366 100 - - - -
Autor: Grupo 3
# Histograma
histoV <- hist(
  Viento,
  main = "Gráfica Nº1: Distribución del Viento en el Volcan Antisana",
  xlab = "Viento(m/s)",
  ylab = "Cantidad",
  col = "blue"
)

#Simplificación con el histograma

Hist_Viento<-hist(Viento,breaks = 8,plot = F)
kV<-length(Hist_Viento$breaks)
LiV<-Hist_Viento$breaks[1:(length(Hist_Viento$breaks)-1)]
LsV<-Hist_Viento$breaks[2:length(Hist_Viento$breaks)]
niV<-Hist_Viento$counts
sum(niV)
## [1] 366
McV<-Hist_Viento$mids
hiV<-(niV/sum(niV))
sum(hiV)
## [1] 1
Ni_ascV<-cumsum(niV)
Hi_ascV<-cumsum(hiV)
Ni_descV<-rev(cumsum(rev(niV)))
Hi_descV<-rev(cumsum(rev(hiV)))
TDF_Viento_F<-data.frame(Li=round(LiV,2),
                            Ls=round(LsV,2),
                            Mc=round(McV,2),
                            ni=niV,
                            hi=round(hiV*100,2),
                            Ni_asc=Ni_ascV,
                            Ni_desc=Ni_descV,
                            Hi_asc=round(Hi_ascV*100,2),
                            Hi_desc=round(Hi_descV*100,2))
colnames(TDF_Viento_F)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<-c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDF_Viento_F$ni)),
           hi = sum(as.numeric(TDF_Viento_F$hi)),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-")

TDF_Viento_F<-rbind(TDF_Viento_F,totales)
library(dplyr)
library(gt)

TDF_Viento_F %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 8"),
    subtitle = md("*Tabla Simplificada de distribución del Viento en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 8
Tabla Simplificada de distribución del Viento en el volcan Antisana
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0.5 1 0.75 12 3.28 12 366 3.28 100
1 1.5 1.25 107 29.23 119 354 32.51 96.72
1.5 2 1.75 130 35.52 249 247 68.03 67.49
2 2.5 2.25 96 26.23 345 117 94.26 31.97
2.5 3 2.75 21 5.74 366 21 100 5.74
TOTAL - - 366 100 - - - -
Autor: Grupo 3
#Gráficas


hist(Viento, breaks = 10,
     main = "Gráfica N°3 Distribución para el Viento en el Volcan Antisana ",
     xlab = "Viento (m/S)",
     ylab = "Cantidad",
     ylim = c(0,max(niV)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")

axis(1, at = Hist_Viento$breaks,
     labels = Hist_Viento$breaks, las = 1,
     cex.axis = 0.9)

hist(Viento, breaks = 10,
     main = "Gráfica N°4: Distribución del Viento en el volcan Antisana ",
     xlab = "Viento (m/s)",
     ylab = "Cantidad",
     ylim = c(0, length(Viento)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Viento$breaks,
     labels = Hist_Viento$breaks, las = 1,
     cex.axis = 0.9)

TDF_Viento_F$`hi(%)` <- as.numeric(TDF_Viento_F$`hi(%)`)


datos_grafico_Viento <- TDF_Viento_F[1:(nrow(TDF_Viento_F)-1), ]


post <- barplot(datos_grafico_Viento$`hi(%)`,
                space = 0,
                col = "blue",
                main = "Gráfica N°5: Distribución porcentual del viento en el volcán Antisana",
                xlab = "Viento (m/s)",
                ylab = "Porcentaje (%)",
                ylim = c(0, max(datos_grafico_Viento$`hi(%)`) + 5))


axis(1, at = post, labels = datos_grafico_Viento$MC, las = 1, cex.axis = 0.8)

datos_grafico_Viento$hi <- as.numeric(datos_grafico_Viento$hi)

barplot(
  datos_grafico_Viento$hi,
  space = 0,
  col = "skyblue",
  main = "Gráfica N°6: Distribución porcentual de la Precipitación en el Volcán Antisana",
  xlab = "Viento (m/S)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico_Viento$McV,
  ylim = c(0, 100)
)

# Boxplot 
boxplot(
  Viento,
  horizontal = TRUE,
  col = "pink",
  main = "Gráfica Nº7: Distribución del Viento",
  xlab = "Viento (m/S)",
  outline = TRUE,
  pch = 19
)

# Ojivas
plot(
  LiV, Ni_descV,
  main = "Gráfica Nº8: Distribución Ascendente y Descendente del Viento",
  xlab = " Viento (m/S)",
  ylab = "Cantidad",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 3
)

lines(
  LsV, Ni_ascV,
  col = "green",
  type = "o",
  lwd = 3
)

# Ojiva Porcentual
plot(
  LiV, Hi_descV,
  main = "Gráfica Nº9: Distribución Ascendente y Descendente del Viento",
  xlab = " Viento",
  ylab = "Porcentaje (%)",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 2
)

lines(
  LsV, Hi_ascV,
  col = "blue",
  type = "o",
  lwd = 3
)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
mediav <- round(mean(Viento), 0)
mediav
## [1] 2
# Moda
max_frecuenciav <- max(TDF_Viento_F$ni)
modaV <- TDF_Viento_F$MC[TDF_Viento_F$ni == max_frecuenciav]
modaV
## [1] "2.25"
# Mediana
medianaV <- median(Viento)
medianaV
## [1] 1.75
# INDICADORES DE DISPERSIÓN #
# Desviación Estándar

# Varianza
varianzaV <- var(Viento)
varianzaV
## [1] 0.2077148
sdV <- sd(Viento)
sdV
## [1] 0.4557574
# Coeficiente de Variación
cvV <- round((sdV / mediav) * 100, 2)
cvV
## [1] 22.79
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetriaV <- skewness(Viento, type = 2)
asimetriaV
## [1] 0.1112888
#Curtosis
curtosisV <- kurtosis(Viento)
curtosisV
## [1] -0.719341
# TABLA RESUMEN FINAL
tabla_indicadoresV <- data.frame(
  "Variable" = c("Viento"),
  "Rango" = c(paste0("[", min(Viento), " ; ", max(Viento), "]")),
  "X" = c(round(mediav, 0)),
  "Me" = c(round(medianaV, 0)),
  "Mo" = c(paste(modaV, collapse = ", ")),
  "V" =  c(round(varianzaV,2)),
  "Sd" = c(round(sdV, 0)),
  "Cv" = c(cvV),
  "As" = c(round(asimetriaV, 2)),
  "K" = c(round(curtosisV, 2)),
  "Valores Atípicos" = "-"
)

library(gt)

tabla_indicadores_gtV <- tabla_indicadoresV %>% 
  gt() %>% 
  tab_header(
    title = md("Tabla N°8.1"),
    subtitle = md("*Indicadores estadísticos de la variable Viento*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black"
  ) %>% 
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Variable == "Precipitación"
    )
  )

tabla_indicadores_gtV
Tabla N°8.1
Indicadores estadísticos de la variable Viento
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Viento [0.59 ; 2.99] 2 2 2.25 0.21 0 22.79 0.11 -0.72 -
Autor: Grupo 3
# Humead Relativa 

Humedad<- datos$Relative.Humidity

minH <-min(Humedad)
maxH <-max(Humedad)
RH <-maxH-minH
KH <- floor(1+3.33*log10(length(Humedad)))
AH<-RH/KH

LiH <-round(seq(from=minH,to=maxH-AH,by=AH),2)
LsH <-round(seq(from=minH+AH,to=maxH,by=AH),2)
McH <-(LiH+LsH)/2

niH<-c()
for (i in 1:KH) {
  if (i < KH) {
    niH[i] <- length(subset(Humedad, Humedad >= LiH[i] & Humedad< LsH[i]))
  } else {
    niH[i] <- length(subset(Humedad, Humedad >= LiH[i] & Humedad <= LsH[i]))
  }
}

sum(niH)
## [1] 366
hiH <-niH/sum(niH)*100
Ni_ascH<-cumsum(niH)
Hi_ascH<-cumsum(hiH)
Ni_descH<-rev(cumsum(rev(niH)))
Hi_descH<-rev(cumsum(rev(hiH)))

TDF_Humedad <- data.frame(
  LiH, LsH, McH, niH, round(hiH, 2), Ni_ascH, Ni_descH, round(Hi_ascH, 2), round(Hi_descH, 2)
)

colnames(TDF_Humedad) <- c("Li","Ls","Mc","ni","hi","Ni_asc","Ni_desc","Hi_asc(%)","Hi_desc(%)")

#Crear fila de totales

totales<-c(
  Li="TOTAL",
  Ls="-",
  Mc="-",
  ni=sum(niH),
  hi=sum(hiH),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDF_Humedad_final <-rbind(TDF_Humedad,totales)

library(dplyr)
library(gt)

TDF_Humedad_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 9"),
    subtitle = md("*Tabla de distribución de la Humedad Relativa en el Volcan Antisana *")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 9
*Tabla de distribución de la Humedad Relativa en el Volcan Antisana *
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
0.56 0.61 0.585 2 0.55 2 366 0.55 100
0.61 0.66 0.635 15 4.1 17 364 4.64 99.45
0.66 0.7 0.68 16 4.37 33 349 9.02 95.36
0.7 0.75 0.725 20 5.46 53 333 14.48 90.98
0.75 0.8 0.775 19 5.19 72 313 19.67 85.52
0.8 0.85 0.825 20 5.46 92 294 25.14 80.33
0.85 0.89 0.87 28 7.65 120 274 32.79 74.86
0.89 0.94 0.915 53 14.48 173 246 47.27 67.21
0.94 0.99 0.965 193 52.73 366 193 100 52.73
TOTAL - - 366 100 - - - -
Autor: Grupo 3
# Histograma
histoH <- hist(
  Humedad,
  main = "Gráfica Nº1: Distribución de la Humedad Relativa en el Volcan Antisana",
  xlab = "Humedad(%)",
  ylab = "Cantidad",
  col = "blue"
)

#Simplificación con el histograma

Hist_Humedad<-hist(Humedad,breaks = 8,plot = F)
kH<-length(Hist_Viento$breaks)
LiH<-Hist_Humedad$breaks[1:(length(Hist_Humedad$breaks)-1)]
LsH<-Hist_Humedad$breaks[2:length(Hist_Humedad$breaks)]
niH<-Hist_Humedad$counts
sum(niH)
## [1] 366
McH<-Hist_Humedad$mids
hiH<-(niH/sum(niH))
sum(hiH)
## [1] 1
Ni_ascH<-cumsum(niH)
Hi_ascH<-cumsum(hiH)
Ni_descH<-rev(cumsum(rev(niH)))
Hi_descH<-rev(cumsum(rev(hiH)))
TDF_Humedad_F<-data.frame(Li=round(LiH,2),
                         Ls=round(LsH,2),
                         Mc=round(McH,2),
                         ni=niH,
                         hi=round(hiH*100,2),
                         Ni_asc=Ni_ascH,
                         Ni_desc=Ni_descH,
                         Hi_asc=round(Hi_ascH*100,2),
                         Hi_desc=round(Hi_descH*100,2))
colnames(TDF_Humedad_F)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<-c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDF_Humedad_F$ni)),
           hi = sum(as.numeric(TDF_Humedad_F$hi)),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-")

TDF_Humedad_F<-rbind(TDF_Humedad_F,totales)
library(dplyr)
library(gt)

TDF_Humedad_F %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 10"),
    subtitle = md("*Tabla Simplificada de distribución de la Humedad Relativa en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 10
Tabla Simplificada de distribución de la Humedad Relativa en el volcan Antisana
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0.55 0.6 0.58 2 0.55 2 366 0.55 100
0.6 0.65 0.62 15 4.1 17 364 4.64 99.45
0.65 0.7 0.68 18 4.92 35 349 9.56 95.36
0.7 0.75 0.73 21 5.74 56 331 15.3 90.44
0.75 0.8 0.78 18 4.92 74 310 20.22 84.7
0.8 0.85 0.83 25 6.83 99 292 27.05 79.78
0.85 0.9 0.88 41 11.2 140 267 38.25 72.95
0.9 0.95 0.92 59 16.12 199 226 54.37 61.75
0.95 1 0.98 167 45.63 366 167 100 45.63
TOTAL - - 366 100.01 - - - -
Autor: Grupo 3
#Gráficas


hist(Humedad, breaks = 10,
     main = "Gráfica N°3 Distribución para la Humedad Relativa en el Volcan Antisana ",
     xlab = "Humedad Relativa (%)",
     ylab = "Cantidad",
     ylim = c(0,max(niH)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")

axis(1, at = Hist_Humedad$breaks,
     labels = Hist_Humedad$breaks, las = 1,
     cex.axis = 0.9)

hist(Humedad, breaks = 10,
     main = "Gráfica N°4: Distribución de la Humedad Relativa en el volcan Antisana ",
     xlab = "Humedad Relativa (%)",
     ylab = "Cantidad",
     ylim = c(0, length(Humedad)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Humedad$breaks,
     labels = Hist_Humedad$breaks, las = 1,
     cex.axis = 0.9)

TDF_Humedad_F$hi <- as.numeric(TDF_Humedad_F$hi)
datos_grafico <- subset(TDF_Humedad_F, !(McH %in% c("-", "TOTAL")))


barplot(datos_grafico$hi,
        space = 0,
        col = "blue",
        main = "Gráfica N°5: Distribución porcentual de la Humedad Relativa en el Volcan Antisana",
        xlab = "Humedad (%)",
        ylab = "Porcentaje (%)",
        names.arg = datos_grafico$McH,
        ylim = c(0, 100))

barplot(datos_grafico$hi,
        space = 0,
        col = "skyblue",
        main = "Gráfica N°6: Distribución porcentual de de la Humedad Relativa en el Volcan Antisana",
        xlab = "Humedad (%)",
        ylab = "Porcentaje (%)",
        names.arg = datos_grafico$McH,
        ylim = c(0, 100))

# Boxplot 
boxplot(
  Humedad,
  horizontal = TRUE,
  col = "pink",
  main = "Gráfica Nº7: Distribución de la Humedad Relativa",
  xlab = "Humedad Relativa (%)",
  outline = TRUE,
  pch = 19
)

# Ojivas
plot(
  LiH, Ni_descH,
  main = "Gráfica Nº8: Distribución Ascendente y Descendente de la Humedad Relativa",
  xlab = " Humedad Relativa (%)",
  ylab = "Cantidad",
  xlim = c(0, 10),
  col = "red",
  type = "o",
  lwd = 3
)

lines(
  LsH, Ni_ascH,
  col = "green",
  type = "o",
  lwd = 3
)

# Ojiva Porcentual
plot(
  LiH, Hi_descH,
  main = "Gráfica Nº9: Distribución Ascendente y Descendente de la Humedad Relativa",
  xlab = " Humedad (%)",
  ylab = "Porcentaje (%)",
  xlim = c(0, 10),
  col = "red",
  type = "o",
  lwd = 2
)

lines(
  LsH, Hi_ascH,
  col = "blue",
  type = "o",
  lwd = 3
)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
mediaH <- round(mean(Humedad), 0)
mediaH
## [1] 1
# Moda
max_frecuenciaH <- max(TDF_Humedad_F$ni)
modaH <- TDF_Humedad_F$MC[TDF_Humedad_F$ni == max_frecuenciaH]
modaH
## [1] "0.92"
# Mediana
medianaH <- median(Humedad)
medianaH
## [1] 0.94
# INDICADORES DE DISPERSIÓN #
# Desviación Estándar

# Varianza
varianzaH <- var(Humedad)
varianzaH
## [1] 0.0118026
sdH <- sd(Humedad)
sdH
## [1] 0.1086398
# Coeficiente de Variación
cvH <- round((sdH / mediaH) * 100, 2)
cvH
## [1] 10.86
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetriaH <- skewness(Humedad, type = 2)
asimetriaH
## [1] -1.186766
#Curtosis
curtosisH <- kurtosis(Humedad)
curtosisH
## [1] 0.2001903
# TABLA RESUMEN FINAL
tabla_indicadoresH <- data.frame(
  "Variable" = c("Viento"),
  "Rango" = c(paste0("[", min(Humedad), " ; ", max(Humedad), "]")),
  "X" = c(round(mediaH, 0)),
  "Me" = c(round(medianaH, 0)),
  "Mo" = c(paste(modaH, collapse = ", ")),
  "V" =  c(round(varianzaH,2)),
  "Sd" = c(round(sdH, 0)),
  "Cv" = c(cvH),
  "As" = c(round(asimetriaH, 2)),
  "K" = c(round(curtosisH, 2)),
  "Valores Atípicos" = "3"
)

library(gt)

tabla_indicadores_gtH <- tabla_indicadoresH %>% 
  gt() %>% 
  tab_header(
    title = md("Tabla N°10.1"),
    subtitle = md("*Indicadores estadísticos de la variable Humedad*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black"
  ) %>% 
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Variable == "Precipitación"
    )
  )

tabla_indicadores_gtH
Tabla N°10.1
Indicadores estadísticos de la variable Humedad
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Viento [0.56 ; 0.99] 1 1 0.92 0.01 0 10.86 -1.19 0.2 3
Autor: Grupo 3
#Radiación Solar

Radiacion<- datos$Solar

minS <-min(Radiacion)
maxS <-max(Radiacion)
RS <-maxS-minS
KS <- floor(1+3.33*log10(length(Radiacion)))
AS<-RS/KS

LiS <-round(seq(from=minS,to=maxS-AS,by=AS),2)
LsS <-round(seq(from=minS+AS,to=maxS,by=AS),2)
McS <-(LiS+LsS)/2

niS<-c()
for (i in 1:KS) {
  if (i < KS) {
    niS[i] <- length(subset(Radiacion, Radiacion >= LiS[i] & Radiacion< LsS[i]))
  } else {
    niS[i] <- length(subset(Radiacion, Radiacion >= LiS[i] & Radiacion <= LsS[i]))
  }
}

sum(niS)
## [1] 366
hiS <-niS/sum(niS)*100
Ni_ascS<-cumsum(niS)
Hi_ascS<-cumsum(hiS)
Ni_descS<-rev(cumsum(rev(niS)))
Hi_descS<-rev(cumsum(rev(hiS)))

TDF_Radiacion <- data.frame(
  LiS, LsS, McS, niS, round(hiS, 2), Ni_ascS, Ni_descS, round(Hi_ascS, 2), round(Hi_descS, 2)
)

colnames(TDF_Radiacion) <- c("Li","Ls","Mc","ni","hi","Ni_asc","Ni_desc","Hi_asc(%)","Hi_desc(%)")

#Crear fila de totales

totales<-c(
  Li="TOTAL",
  Ls="-",
  Mc="-",
  ni=sum(niS),
  hi=sum(hiS),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDF_Radiacion_final <-rbind(TDF_Radiacion,totales)

library(dplyr)
library(gt)

TDF_Radiacion_final %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 11"),
    subtitle = md("*Tabla de distribución de la Radiación Solar en el Volcan Antisana *")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 11
*Tabla de distribución de la Radiación Solar en el Volcan Antisana *
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
1.26 4.48 2.87 40 10.93 40 366 10.93 100
4.48 7.71 6.095 57 15.57 97 326 26.5 89.07
7.71 10.93 9.32 55 15.03 152 269 41.53 73.5
10.93 14.15 12.54 55 15.03 207 214 56.56 58.47
14.15 17.38 15.765 30 8.2 237 159 64.75 43.44
17.38 20.6 18.99 17 4.64 254 129 69.4 35.25
20.6 23.82 22.21 35 9.56 289 112 78.96 30.6
23.82 27.05 25.435 48 13.11 337 77 92.08 21.04
27.05 30.27 28.66 29 7.92 366 29 100 7.92
TOTAL - - 366 100 - - - -
Autor: Grupo 3
# Histograma
histoS<- hist(
  Radiacion,
  main = "Gráfica Nº1: Distribución de la Radiacion Solar en el Volcan Antisana",
  xlab = "Radiación (J/m2)",
  ylab = "Cantidad",
  col = "blue"
)

#Simplificación con el histograma

Hist_Radiacion<-hist(Radiacion,breaks = 8,plot = F)
kS<-length(Hist_Radiacion$breaks)
LiS<-Hist_Radiacion$breaks[1:(length(Hist_Radiacion$breaks)-1)]
LsS<-Hist_Radiacion$breaks[2:length(Hist_Radiacion$breaks)]
niS<-Hist_Radiacion$counts
sum(niS)
## [1] 366
McS<-Hist_Radiacion$mids
hiS<-(niS/sum(niS))
sum(hiS)
## [1] 1
Ni_ascS<-cumsum(niS)
Hi_ascS<-cumsum(hiS)
Ni_descS<-rev(cumsum(rev(niS)))
Hi_descS<-rev(cumsum(rev(hiS)))
TDF_Radiacion_F<-data.frame(Li=round(LiS,2),
                          Ls=round(LsS,2),
                          Mc=round(McS,2),
                          ni=niS,
                          hi=round(hiS*100,2),
                          Ni_asc=Ni_ascS,
                          Ni_desc=Ni_descS,
                          Hi_asc=round(Hi_ascS*100,2),
                          Hi_desc=round(Hi_descS*100,2))
colnames(TDF_Radiacion_F)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<-c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDF_Radiacion_F$ni)),
           hi = sum(as.numeric(TDF_Radiacion_F$hi)),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-")

TDF_Radiacion_F<-rbind(TDF_Radiacion_F,totales)
library(dplyr)
library(gt)

TDF_Radiacion_F %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 11"),
    subtitle = md("*Tabla Simplificada de distribución de la Radiacion Solar en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 11
Tabla Simplificada de distribución de la Radiacion Solar en el volcan Antisana
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0 5 2.5 51 13.93 51 366 13.93 100
5 10 7.5 86 23.5 137 315 37.43 86.07
10 15 12.5 79 21.58 216 229 59.02 62.57
15 20 17.5 33 9.02 249 150 68.03 40.98
20 25 22.5 57 15.57 306 117 83.61 31.97
25 30 27.5 58 15.85 364 60 99.45 16.39
30 35 32.5 2 0.55 366 2 100 0.55
TOTAL - - 366 100 - - - -
Autor: Grupo 3
#Gráficas


hist(Radiacion, breaks = 10,
     main = "Gráfica N°3 Distribución para la Radiacion Solar Relativa en el Volcan Antisana ",
     xlab = "Radiación Solar (J/m2)",
     ylab = "Cantidad",
     ylim = c(0,max(niS)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")

axis(1, at = Hist_Radiacion$breaks,
     labels = Hist_Radiacion$breaks, las = 1,
     cex.axis = 0.9)

hist(Radiacion, breaks = 10,
     main = "Gráfica N°4: Distribución de la Radiación Solar en el volcan Antisana ",
     xlab = "Radiación Solar (J/m2)",
     ylab = "Cantidad",
     ylim = c(0, length(Radiacion)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Radiacion$breaks,
     labels = Hist_Radiacion$breaks, las = 1,
     cex.axis = 0.9)

TDF_Radiacion_F$hi <- as.numeric(TDF_Radiacion_F$hi)
datos_grafico <- TDF_Radiacion_F[1:(nrow(TDF_Radiacion_F) - 1), ]
barplot(
  datos_grafico$hi,
  space = 0,
  col = "blue",
  main = "Gráfica N°5: Distribución porcentual de la Radiación Solar en el Volcán Antisana",
  xlab = "Radiación Solar (J/m²)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico$McS,
  ylim = c(0, max(datos_grafico$hi) + 5)
)

datos_grafico$hi <- as.numeric(datos_grafico$hi)


hi_100 <- datos_grafico$hi / max(datos_grafico$hi) * 100

barplot(
  hi_100,
  space = 0,
  col = "skyblue",
  main = "Gráfica N°6: Distribución porcentual de la Radiación Solar en el Volcán Antisana",
  xlab = "Radiación Solar (J/m²)",
  ylab = "Porcentaje relativo (%)",
  names.arg = datos_grafico$McS,
  ylim = c(0, 100)
)

# Boxplot 
boxplot(
  Radiacion,
  horizontal = TRUE,
  col = "pink",
  main = "Gráfica Nº7: Distribución de la Radiación Solar",
  xlab = "Radiación Solar (J/m2)",
  outline = TRUE,
  pch = 19
)

# Ojivas
plot(
  LiS, Ni_descS,
  main = "Gráfica Nº8: Distribución Ascendente y Descendente de la Radiación Solar",
  xlab = " Radiación Solar (J/m2)",
  ylab = "Cantidad",
  xlim = c(0, 100),
  col = "red",
  type = "o",
  lwd = 3
)

lines(
  LsS, Ni_ascS,
  col = "green",
  type = "o",
  lwd = 3
)

# Ojiva Porcentual
plot(
  LiS, Hi_descS,
  main = "Gráfica Nº9: Distribución Ascendente y Descendente de la Radiación Solar",
  xlab = " Radiación Solar (J/m2)",
  ylab = "Porcentaje (%)",
  xlim = c(0,100),
  col = "red",
  type = "o",
  lwd = 2
)

lines(
  LsS, Hi_ascS,
  col = "blue",
  type = "o",
  lwd = 3
)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
mediaS <- round(mean(Radiacion), 0)
mediaS
## [1] 14
# Moda
max_frecuenciaS <- max(TDF_Radiacion_F$ni)
modaS <- TDF_Radiacion_F$McS[TDF_Radiacion_F$ni == max_frecuenciaS]
modaS
## NULL
# Mediana
medianaS <- median(Radiacion)
medianaS
## [1] 12.655
# INDICADORES DE DISPERSIÓN #
# Desviación Estándar

# Varianza
varianzaS <- var(Radiacion)
varianzaS
## [1] 69.3595
sdS <- sd(Radiacion)
sdS
## [1] 8.328235
# Coeficiente de Variación
cvS <- round((sdS / mediaS) * 100, 2)
cvS
## [1] 59.49
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetriaS <- skewness(Radiacion, type = 2)
asimetriaS
## [1] 0.2996237
#Curtosis
curtosiss <- kurtosis(Radiacion)
curtosiss
## [1] -1.244028
# TABLA RESUMEN FINAL
tabla_indicadoresS <- data.frame(
  "Variable" = c("Viento"),
  "Rango" = c(paste0("[", min(Radiacion), " ; ", max(Radiacion), "]")),
  "X" = c(round(mediaS, 0)),
  "Me" = c(round(medianaS, 0)),
  "Mo" = c(paste(modaS, collapse = ", ")),
  "V" =  c(round(varianzaS,2)),
  "Sd" = c(round(sdS, 0)),
  "Cv" = c(cvS),
  "As" = c(round(asimetriaS, 2)),
  "K" = c(round(curtosiss, 2)),
  "Valores Atípicos" = "-"
)

library(gt)

tabla_indicadores_gtS <- tabla_indicadoresS %>% 
  gt() %>% 
  tab_header(
    title = md("Tabla N°12.1"),
    subtitle = md("*Indicadores estadísticos de la variable Radiación Solar*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black"
  ) %>% 
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Variable == "Precipitación"
    )
  )

tabla_indicadores_gtS
Tabla N°12.1
Indicadores estadísticos de la variable Radiación Solar
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Viento [1.26 ; 30.27] 14 13 69.36 8 59.49 0.3 -1.24 -
Autor: Grupo 3
#MODELO DE DISTRIBUCUIÓN NORMAL


#PASO 1: ESCOGER LA VARIABLE Y JUSTIFICAR POR QUE ES CONTINUA

#La variable velocidad del viento es una variable continua ya que puede tomar cualquier valor real, incluido decimales dentro
#de un intervalo determinado ya que su dominio es : D={x|x ∈ R+,0}, excepto valores negativos ya que esta variable no puede
#ser negativa

#PASO 2: TABLA DE DISTRIBUCIÓN DE FRECUENCIA
Viento <- datos$Wind
Hist_Viento <- hist(Viento, breaks = 8, plot = FALSE)

LiV <- Hist_Viento$breaks[-length(Hist_Viento$breaks)]
LsV <- Hist_Viento$breaks[-1]
niV <- Hist_Viento$counts
hiV <- (niV / sum(niV)) * 100

TDF_Viento_simple <- data.frame(
  Lim_inf = round(LiV, 2),
  Lim_sup = round(LsV, 2),
  ni = niV,
  hi_pct = round(hiV, 2)
)


TDF_Viento_simple <- rbind(
  TDF_Viento_simple,
  data.frame(Lim_inf = "Totales", Lim_sup = "", ni = sum(niV), hi_pct = 100)
)

library(gt)

TDF_Viento_simple %>%
  gt() %>%
  cols_label(
    Lim_inf = "Lim inf",
    Lim_sup = "Lim sup",
    ni = "ni",
    hi_pct = "hi (%)"
  ) %>%
  fmt_number(columns = c(ni), decimals = 0) %>%
  fmt_number(columns = c(hi_pct), decimals = 2) %>%
  tab_header(
    title = md("Tabla Nro. 8"),
    subtitle = md("*Tabla simplificada de distribución del viento en el volcán Antisana*")
  ) %>%
  tab_source_note(source_note = md("Autor: Grupo 3")) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 8
Tabla simplificada de distribución del viento en el volcán Antisana
Lim inf Lim sup ni hi (%)
0.5 1 12 3.28
1 1.5 107 29.23
1.5 2 130 35.52
2 2.5 96 26.23
2.5 3 21 5.74
Totales 366 100.00
Autor: Grupo 3
#PASO 3: HISTOGRAMA

datos_grafico_Viento$hi <- as.numeric(datos_grafico_Viento$hi)

barplot(
  datos_grafico_Viento$hi,
  space = 0,
  col = "skyblue",
  main = "Gráfica N°6: Distribución porcentual de la Precipitación en el Volcán Antisana",
  xlab = "Viento (m/S)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico_Viento$McV,
  ylim = c(0, 100)
)

#PASO 4: CONJETURA
#Gracias a la grafica de barras podemos asumir que las barras se comportan como un modelo de distribución normal

#PASO 5: CÁLCULO DE PARAMETROS


U <- mean(Viento)
U
## [1] 1.767787
Sigma <- sd(Viento)
Sigma
## [1] 0.4557574
#PASO 6 : GRÁFICA DE REALIDAD COMPARADA CON EL MODELO

breaks <- hist(Viento, breaks = 8, plot = FALSE)$breaks


hist(Viento,
     breaks = breaks,
     freq = FALSE,
     main = "Gráfica N°2: Comparación modelo normal con la realidad de la velocidad del viento Estudio en el volcán Antisana)",
     xlab = "Viento (m/s)",
     ylab = "Densidad de probabilidad",
     col = "lightblue",
     xlim = range(breaks)
)

axis(1, at = breaks)

x <- seq(min(Viento, na.rm = TRUE), max(Viento, na.rm = TRUE), by = 0.01)
lines(x, dnorm(x, mean = U, sd = Sigma), lwd = 3, col = "black")

#PASO 7: TESTS DE BONDAD

#PASO 7.1: TEST DE PEARSON

#Frecuencia observada
FoV<-as.numeric(table(cut(Viento, breaks = breaks, include.lowest = TRUE)))
FoV
## [1]  12 107 130  96  21
nV <- length(Viento)

pV <- diff(pnorm(breaks, mean = U, sd = Sigma))

# Fe = Probabilidad * n
FeV <- pV * nV
FeV
## [1]  15.85712  85.05226 152.39889  91.91160  18.53558
CorrelaciónV<-cor(FoV,FeV)*100
CorrelaciónV
## [1] 96.0468
#PASO 7.2: TEST DE CHI CUADRADO

breaks_chi <- quantile(Viento, probs = seq(0, 1, length.out = 6))
chi2 <- sum((FoV - FeV)^2 / FeV)
chi2
## [1] 10.40343
k <- length(FoV)
gl <- kV - 1 - 2
gl
## [1] 3
umbrall_aceptacion <- qchisq(0.999, df = gl)
umbrall_aceptacion
## [1] 16.26624
chi2 < umbrall_aceptacion
## [1] TRUE
#PASO 8: CÁLCULO DE PROBABILIDADES

#¿Cuál es la probabilidad de que en 2027 la velocidad del viento en el volcán Antisana esté entre 1.8 y 2.2 m/s?
pnorm(2.2, U, Sigma) - pnorm(1.8, U, Sigma)
## [1] 0.3003479
#¿Cuál es la probabilidad de que en 2030 la velocidad del viento en el volcán Antisana sea mayor o igual a 2.5 m/s?
1 - pnorm(2.5, U, Sigma)
## [1] 0.05407269
# 9. INTERVALO DE CONFIANZA
media <-mean(Viento)
sigma<-sd(Viento)
n<-length(Viento)
error<- 2*(sigma/sqrt(n))
#Límites intevalo de cofianza
lim_infer<- round(media-error,2)
lim_super<- round(media+error,2)
tabla_intervalo <- data.frame(Intervalo = "P [1.72< µ < 1.82] = 95%")

tabla_intervalo %>%
  gt() %>%
  tab_header(
    title = md("*Tabla Nro. 2*"),
    subtitle = md("**Intervalo de confianza del viento en el estudio del clima en el volcán Antisana en 2012 **")
  ) %>%
  tab_source_note(
    source_note = md("Autor: GRUPO 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black")
Tabla Nro. 2
**Intervalo de confianza del viento en el estudio del clima en el volcán Antisana en 2012 **
Intervalo
P [1.72< µ < 1.82] = 95%
Autor: GRUPO 3
# PASO 10: CONCLUSIÓN

# La variable Velocidad del Viento en (m/s) se explica con un modelo normal con parametro µ= 1,76 y σ= 0.45 y
#podemos afirmar con el 95% de confianza que la media aritmética de está variable se encuentra entre 1.71 y 1.82 (m/s) 
#con una desviación estándar de 0.455 (m/s).



#MODELO EXPONENCIAL
#PASO 1: DEFINIR LA VARIABLE DE INTERÉS
#La variable precipitación (mm) es continua porque su dominio corresponde al conjunto de los números reales no negativos incluido el cero. 
#Esto se debe a que la cantidad de lluvia puede tomar infinitos valores posibles dentro de un intervalo.

precipitación<-datos$Precipitation

#PASO 2: TABLA DE DISTRIBUCIÓN DE FRECUENCIAS

Histograma_precipitación<-hist(precipitación,plot=FALSE)
breaks <- Histograma_precipitación$breaks
Li <- breaks[1:(length(breaks)-1)]
Ls <- breaks[2:length(breaks)]
ni<-Histograma_precipitación$counts
n<-length(precipitación)
hi <- (ni / n) * 100
TDF_precipitacion <- data.frame(
  Intervalo = paste0("[", round(Li,2), " - ", round(Ls,2), ")"),
  ni = ni,
  hi= round(hi, 2)
)
colnames(TDF_precipitacion) <- c(
  "Intervalo",
  "ni",
  "hi(%)"
)
totaless <- data.frame(
  Intervalo = "Totales",
  ni = sum(ni),          
  hi = sum(hi)         
)
colnames(totaless) <- c(
  "Intervalo",
  "ni",
  "hi(%)"
)

TDF_precipitacion <- rbind(TDF_precipitacion, totaless)
TDF_precipitacion %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 1"),
    subtitle = md("*Distribucion de frecuencia simplificado de la precipitación, estudio del clima volcán Antisana en 2012 *")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 1
*Distribucion de frecuencia simplificado de la precipitación, estudio del clima volcán Antisana en 2012 *
Intervalo ni hi(%)
[0 - 10) 150 40.98
[10 - 20) 92 25.14
[20 - 30) 58 15.85
[30 - 40) 27 7.38
[40 - 50) 23 6.28
[50 - 60) 10 2.73
[60 - 70) 4 1.09
[70 - 80) 0 0.00
[80 - 90) 1 0.27
[90 - 100) 1 0.27
Totales 366 100.00
Autor: Grupo 3
#PASO 3: HISTOGRAMA

TDF_precipitacion$hi  <- as.numeric(TDF_precipitacion$`hi(%)`)
TDF_precipitacion_graf <- TDF_precipitacion[TDF_precipitacion$Intervalo != "Totales", ]
par(mar = c(9, 5, 4, 2)) 
post <- barplot(
  TDF_precipitacion_graf$hi,
  space = 0,
  col = "blue",
  ylim = c(0, 100),
  xaxt = "n",
  ylab = "Porcentaje",
  main = "Gráfica N°1:Distribución de la precipitación en el estudio
del clima en el volcán Antisana en 2012"
)
axis(
  side = 1,
  at = post,
  labels = TDF_precipitacion_graf$Intervalo,
  las = 2,
  cex.axis = 0.8
)
mtext(
  "Precipitación (mm)",
  side = 1,
  line = 7
)

#PASO 4: CONJETURA DE MODELO

#MI VARIABLE Y SUS BARRAS SE COMPORTAN COMO UN MODELO DE DISTRIBUCIÓN EXPONENCIAL

# 5. CÁLCULO DE PARÁMETROS DISTRIBUCIÓN EXPONELCIAL

media_exp <- mean(precipitación)
media_exp
## [1] 17.10478
lambda<-1/media_exp
lambda
## [1] 0.05846318
Histograma_precipitación <- hist(precipitación,
                                 breaks = breaks,
                                 freq = FALSE,          
                                 main = "Gráfica Nº2: Comparación modelo exponelcial realidad de la precipitación\n en el estudio del clima en el volcán Antisana", 
                                 xlab = " Precipitación (mm)",
                                 ylab = "Densidad probabilidad ",
                                 col = "lightblue", ylim = c(0,0.06),xaxt = "n"
)  
axis(1, at = breaks)
# Curva exponencial
curve(dexp(x,rate = lambda),
      from = 0, to = 100,
      col = "orange", lwd = 2, add = TRUE)

#PASO 6: APLICACIÓN DE TESTS

#PASO 6.1: Test de Pearson

fo <- hist(precipitación, breaks=breaks, plot=FALSE)$counts
fo
##  [1] 150  92  58  27  23  10   4   0   1   1
n <- length(precipitación)
p <- diff(pexp(breaks, rate=lambda))

fe <- p * n
fe
##  [1] 162.0241746  90.2978545  50.3239874  28.0461117  15.6304065   8.7109974
##  [7]   4.8547347   2.7055970   1.5078590   0.8403464
Correlación<-cor(fo,fe)*100
Correlación
## [1] 99.55797
#PASO 6.2 Test Chi-cuadrado
x2 <- sum((fo - fe)^2 / fe)
x2
## [1] 8.857184
k <- length(fo)
grados_libertad <- k - 2
grados_libertad
## [1] 8
umbral_aceptacion <- qchisq(0.95, df = grados_libertad)
umbral_aceptacion
## [1] 15.50731
x2<umbral_aceptacion
## [1] TRUE
#PASO 7: CÁLCULO DE PROBABILIDADES

#¿Cuál es la probabilidad de que la precipitación esté entre 20 y 50 mm en un día cualquiera?
probabilidad_20_50 <- pexp(50, rate = lambda) - pexp(20, rate = lambda)

probabilidad_20_50 * 100
## [1] 25.6832
#PASO 8: INTERVALO DE CONFIANZĀ

media <-mean(precipitación)
sigma<-sd(precipitación)
n<-length(precipitación)
error<- 2*(sigma/sqrt(n))

#Límites intevalo de cofianza
limite_inferior<- round(media-error,2)
limite_superior<- round(media+error,2)
tabla_intervalo <- data.frame(Intervalo = "P [15.42< µ < 18.79] = 95%")
tabla_intervalo %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 2"),
    subtitle = md("*Intervalo de confianza de las precipitaciones en el estudio del clima en el volcán Antisana en 2012 *")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 2
*Intervalo de confianza de las precipitaciones en el estudio del clima en el volcán Antisana en 2012 *
Intervalo
P [15.42< µ < 18.79] = 95%
Autor: Grupo 3
# PASO 9: CONCLUSIÓN
# La variable precipitación (mm) sigue o se explica con un modelo exponencial con parametro λ= 0.058 y 
#podemos afirmar con 95% de confianza que la media aritmetica de está variable se encuentra entre 15.42 y 18.79 (mm) 
#con una desviación estándar de 16.115 (mm).

#MODELO LOG NORMAL 

#PASO 1: ESCOGER LA VARIABLE Y JUSTIFICAR POR QUE ES CONTINUA
#La temperatura mínima es una variable cuantitativa continua porque puede tomar cualquier valor real, incluidos decimales
#ya sean positivos o negativos ya que su dominio es D={x|x ∈ R}.

#PASO 2: TABLA DE DISTRIBUCIÓN DE FRECUENCIA 

Temp_min<- datos$Min.Temperature

Hist_Temp_Min<-hist(Temp_min,breaks = 8,plot = F)
k2<-length(Hist_Temp_Min$breaks)
Li2<-Hist_Temp_Min$breaks[1:(length(Hist_Temp_Min$breaks)-1)]
Ls2<-Hist_Temp_Min$breaks[2:length(Hist_Temp_Min$breaks)]
ni2<-Hist_Temp_Min$counts
sum(ni2)
## [1] 366
hi2<-(ni2/sum(ni2))
sum(hi2)
## [1] 1
TDF_Temp_Mínima_Simple<-data.frame(Li=round(Li2,2),
                            Ls=round(Ls2,2),
                            ni=ni2,
                            hi=round(hi2*100,2))
colnames(TDF_Temp_Mínima_Simple)<-c("Lim inf","Lim sup","ni","hi(%)")
#Crear fila de totales
totales<- c(Li="TOTAL",
            Ls="-",
            ni = sum(as.numeric(TDF_Temp_Mínima_Simple$ni)),
            hi = sum(as.numeric(TDF_Temp_Mínima_Simple$hi))
)


TDF_Temp_Mínima_Simple<-rbind(TDF_Temp_Mínima_Simple,totales)
library(dplyr)
library(gt)

TDF_Temp_Mínima_Simple %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 1"),
    subtitle = md("*Tabla Simplificada de distribución de la Temperatura Mínima en el volcan Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 1
Tabla Simplificada de distribución de la Temperatura Mínima en el volcan Antisana
Lim inf Lim sup ni hi(%)
2 3 1 0.27
3 4 2 0.55
4 5 7 1.91
5 6 16 4.37
6 7 48 13.11
7 8 109 29.78
8 9 90 24.59
9 10 66 18.03
10 11 27 7.38
TOTAL - 366 99.99
Autor: Grupo 3
#PASO 3: HISTOGRAMA


df <- TDF_Temp_min_final 


df$hi <- as.numeric(df$hi)


datos_grafico <- df[1:(nrow(df)-1), ]

datos_grafico$hi <- as.numeric(datos_grafico$hi)


sum(datos_grafico$hi)
## [1] 100
barplot(
  datos_grafico$hi,
  space = 0,
  col = "skyblue",
  main = "Gráfica N°14: Distribución porcentual de la Temperatura Mínima en el Volcán Antisana",
  xlab = "Temperatura Mínima (°C)",
  ylab = "Porcentaje (%)",
  names.arg = datos_grafico$MC,
  ylim = c(0, 100)
)

#PASO 4: CONJETURA
# La variable temperatura mínima y sus barras se comportan como un modelo log normal, los valores más altos se encuentran
#en la parte media con una desviación a la derecha y los valores bajos se extienden hacia la parte izquierda, y concluimos
#que se comporta como un modelo log normal con sesgo hacia la izquierda.

#PASO 5: CÁLCULO DE PARÁMETROS


temp <- Temp_min
temp <- temp[is.finite(temp)]  # por si hay NA/Inf

temp_pos <- temp[temp > 0]


log_temp <- log(temp_pos)
ulog <- mean(log_temp, na.rm = TRUE)
sigmalog <- sd(log_temp, na.rm = TRUE)


breaks <- hist(temp_pos, breaks = 8, plot = FALSE)$breaks

xlim <- range(breaks)

#PASO 6: GRÁFICA REALIDAD EN COMPARACIÓN CON EL MODELO LOG NORMAL
hist(
  temp_pos,
  breaks = breaks,
  freq = FALSE,
  col = "skyblue",
  main = "Gráfica N°2: Comparación de la Realidad y el Modelo Log-normal de la temperatura mínima en el volcán Antisana",
  xlab = "Temperatura mínima (°C)",
  ylab = "Densidad de probabilidad",
  cex.main = 0.9,
  xlim = xlim,
  xaxt = "n"
)
axis(1, at = breaks)


x <- seq(xlim[1], xlim[2], by = 0.001)
lines(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), col = "darkblue", lwd = 3)

#PASO 7: TEST DE BONDAD

#PASO 7.1: TEST DE PEARSON
fo_Temp_min <- hist(Temp_min, breaks=breaks, plot=FALSE)$counts
fo_Temp_min
## [1]   1   2   7  16  48 109  90  66  27
n_Temp_min <- length(Temp_min)
fe_Temp_min <- numeric(length(fo_Temp_min))  

for(i in 1:length(fo_Temp_min)){
  fe_Temp_min[i] <- n_Temp_min * (plnorm(breaks[i+1], meanlog = ulog, sdlog = sigmalog) -
                  plnorm(breaks[i], meanlog = ulog, sdlog = sigmalog))
}
fe_Temp_min
## [1] 4.914119e-05 5.410726e-02 2.666588e+00 2.324386e+01 6.823973e+01
## [6] 9.706234e+01 8.401222e+01 5.137289e+01 2.453682e+01
Correlación<-cor(fo_Temp_min,fe_Temp_min)*100
Correlación
## [1] 96.62853
#PASO 7.2: TEST DE CHI CUADRADO

fe_frac_TMIN <- fe_Temp_min / n_Temp_min
fe_frac_TMIN
## [1] 1.342655e-07 1.478340e-04 7.285759e-03 6.350780e-02 1.864473e-01
## [6] 2.651976e-01 2.295416e-01 1.403631e-01 6.704049e-02
fo_frac_TMIN <- fo_Temp_min / n_Temp_min
fo_frac_TMIN
## [1] 0.002732240 0.005464481 0.019125683 0.043715847 0.131147541 0.297814208
## [7] 0.245901639 0.180327869 0.073770492
x2_TMIN <- sum((fo_frac_TMIN - fe_frac_TMIN)^2 / fe_frac_TMIN)
x2_TMIN
## [1] 55.84459
k_TMIN <- length(fo_frac_TMIN)
gl_TMIN <- k - 1 -2
gl_TMIN
## [1] 7
umbral_aceptacionTMIN <- qchisq(0.9999999999, df = gl_TMIN)
umbral_aceptacionTMIN
## [1] 60.8952
x2_TMIN<umbral_aceptacionTMIN
## [1] TRUE
#PASO 9: CÁLCULO DE PROBABILIDADES
#Cuál es la probabilidad de que la temperatura mínima sea menor a 6 °C o mayor a 9.5 °C?
plnorm(6, ulog, sigmalog) + (1 - plnorm(9.5, ulog, sigmalog))
## [1] 0.2374891
#¿Cuál es la probabilidad de que la temperatura mínima sea mayor o igual a 9 °C?
1 - plnorm(9, ulog, sigmalog)
## [1] 0.2478719
#PASO 10: INTERVALO DE CONFIANZA
Media <-mean(Temp_min)
S<-sd(Temp_min)
n<-length(Temp_min)
error<- 2*(S/sqrt(n))
#Límites intevalo de cofianza
limite_inferior<- round(Media-error,2)
limite_superior<- round(Media+error,2)
tabla_intervaloTMIN <- data.frame(Intervalo = "P [7.9< µ <8.19] = 95%")
tabla_intervaloTMIN %>%
  gt() %>%
  tab_header(
    title = md("*Tabla Nro. 2*"),
    subtitle = md("**Intervalo de confianza de la temperatura mínima en el volcán Antisana **")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 2
**Intervalo de confianza de la temperatura mínima en el volcán Antisana **
Intervalo
P [7.9< µ <8.19] = 95%
Autor: Grupo 3
#PASO 11: CONCLUSIÓN
# La variable  temperatura mínima  (°C) se explica con un modelo log-normal con sesgo a la izquierda con parametros µ = 2.068 y σ = 0.188 
#y podemos afirmar con 95% de confianza que la media aritmética de está variable se encuentra entre 7.9 y 8.19 (°C)
#con una desviasión estándar de 1.37 (°C).


#ESTADÍSTICA MULTIVRIABLE

#Paso 1 Seleccionamos las dos variables
#Causa y efecto: Entre más radiación solar hay mayores temperaturas, mostrando una relacion proporcional.
Radiacion <- datos$Solar
Temp_max <- datos$Max.Temperature

x <- Radiacion


y <- Temp_max

#Paso 2 Tabla de pares de valores
TVP <- data.frame(x,y)
#Formato de la tabla
library(gt)
library(dplyr)
TVP %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 1"),
    subtitle = md("Pares de valores de temperatura máxima y radiación solar del clima volcán Antisana en 2012")
  ) %>%
  tab_source_note(
    source_note = md("Autor: GRUPO 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 1
Pares de valores de temperatura máxima y radiación solar del clima volcán Antisana en 2012
x y
15.98 16.10
12.25 15.50
4.58 11.55
4.32 12.02
3.86 11.73
9.57 12.11
10.93 13.06
2.40 11.53
5.32 12.95
7.19 13.38
6.71 12.99
10.77 17.40
9.66 15.88
5.37 13.65
4.02 13.07
9.64 13.81
8.11 13.02
3.19 12.31
3.64 12.73
5.60 12.17
8.75 12.54
4.57 11.78
1.52 10.51
1.93 10.32
10.43 12.81
3.60 11.91
6.45 13.18
1.35 11.57
5.55 11.94
6.50 12.39
6.87 13.27
8.17 13.38
1.58 11.58
5.28 12.85
10.11 14.18
8.24 14.65
1.90 12.42
6.07 13.84
7.16 13.48
7.87 14.34
11.57 14.38
2.15 11.13
8.31 12.91
6.11 11.59
8.86 12.47
5.92 11.55
5.95 12.14
5.10 10.73
4.00 11.42
8.01 12.26
4.08 11.38
3.59 12.04
2.83 10.83
2.90 10.99
3.07 11.43
1.82 11.41
1.54 11.05
4.28 11.56
6.99 12.24
6.89 12.80
9.89 14.44
11.45 17.04
8.35 16.21
5.44 14.15
4.63 12.85
9.72 14.69
11.63 17.98
16.16 17.10
20.53 18.81
13.70 15.57
17.42 17.53
16.27 17.50
18.80 19.00
14.41 16.85
14.52 17.11
13.32 17.07
8.32 14.42
3.98 13.91
4.49 11.73
2.39 11.71
7.02 12.45
4.29 12.23
7.79 13.20
4.83 12.81
5.59 12.19
8.29 12.93
4.73 12.92
4.83 14.30
11.93 15.56
14.83 18.25
12.42 15.47
13.34 16.30
13.22 16.92
11.89 15.52
4.44 12.28
3.45 11.86
5.38 13.75
7.20 13.52
4.74 10.97
8.03 13.76
10.47 12.32
16.45 14.53
10.60 13.10
11.69 13.70
10.17 14.20
11.57 13.42
4.33 11.81
5.45 12.39
3.56 12.24
7.98 14.56
9.87 13.90
10.95 14.77
7.18 13.07
11.98 15.19
8.21 14.36
16.90 17.63
3.87 14.35
9.73 14.36
5.13 13.42
3.54 12.37
7.40 13.71
7.61 14.26
13.65 15.88
21.70 17.35
16.46 16.22
14.53 14.77
11.31 15.35
12.95 15.15
13.57 16.49
12.13 15.26
15.54 16.23
11.48 14.93
6.16 14.18
5.63 13.50
14.65 17.12
10.78 15.33
13.21 18.85
16.16 17.26
11.76 14.43
4.89 12.55
4.61 15.70
7.98 14.04
13.62 16.14
18.58 16.67
25.28 17.34
24.96 19.19
25.11 18.76
26.70 20.24
21.17 20.09
21.44 18.54
24.41 18.68
26.23 19.89
23.67 18.43
16.36 18.98
15.49 16.35
21.36 17.08
19.28 17.26
25.20 17.44
25.88 19.12
22.03 17.09
24.51 17.64
25.95 19.02
24.77 19.65
22.40 16.46
24.38 16.26
14.84 16.16
21.01 16.79
16.21 15.58
21.77 16.27
20.93 16.00
17.68 15.21
20.32 19.65
19.89 16.57
26.28 19.16
20.91 18.09
15.23 18.03
23.15 15.83
23.24 17.46
25.32 17.67
24.51 16.63
12.93 15.50
23.49 16.79
20.54 19.42
26.46 20.59
23.87 18.13
22.65 16.34
14.82 16.26
22.19 16.80
21.11 17.32
26.14 20.88
25.97 18.58
23.48 18.67
23.31 17.66
24.58 16.55
24.72 17.46
22.81 16.51
24.74 17.63
26.30 19.27
26.68 19.19
25.67 21.32
27.03 21.00
21.33 17.72
21.60 18.12
27.15 21.21
27.00 20.38
26.87 19.82
27.49 21.56
27.57 21.51
25.71 19.87
26.45 22.60
21.47 18.15
26.02 21.06
23.87 19.74
25.68 20.39
25.50 18.06
21.02 17.88
24.63 19.26
27.04 20.71
27.21 18.95
27.82 17.64
28.31 19.24
28.43 21.20
23.69 18.99
23.32 18.60
13.49 16.81
20.40 16.94
14.08 17.44
18.42 17.27
21.71 17.40
12.10 16.37
22.30 17.60
28.54 19.69
28.45 19.10
28.67 20.61
28.30 18.10
28.57 17.79
28.66 18.00
28.51 20.83
26.72 22.34
24.67 21.30
28.99 23.47
20.94 19.11
27.35 22.96
26.15 20.48
29.49 21.47
23.54 20.39
24.22 18.32
27.74 18.56
23.88 20.02
29.54 20.89
25.65 18.82
26.40 20.48
29.99 23.42
29.10 19.31
30.05 22.04
27.33 19.40
30.27 23.79
27.88 21.01
29.26 19.79
26.31 17.86
25.28 17.67
16.94 16.78
25.09 17.85
18.76 17.49
17.01 16.46
24.15 18.33
19.89 17.39
12.87 15.34
20.83 16.45
27.79 19.00
13.61 17.11
16.59 16.80
28.21 18.20
29.04 20.20
20.77 17.60
22.85 16.89
24.65 16.29
16.29 16.26
1.26 10.99
7.55 12.66
12.11 15.47
5.30 13.82
9.01 15.20
12.84 14.06
13.35 13.94
9.25 14.15
6.27 13.32
11.19 14.75
13.04 15.17
3.62 12.79
3.59 11.35
8.39 12.74
10.04 12.82
15.18 16.27
10.40 14.66
17.05 15.87
19.09 15.81
11.32 13.80
7.11 15.02
13.48 16.01
14.67 17.23
20.45 16.83
13.20 15.29
10.21 13.90
5.55 13.43
11.93 14.55
13.24 15.19
13.15 15.61
5.84 12.55
9.66 14.36
3.99 13.20
5.15 12.71
13.12 15.60
7.19 13.93
2.79 12.49
8.17 13.75
7.26 13.09
9.12 14.87
10.44 13.98
11.50 14.85
23.43 15.32
16.92 15.52
15.19 15.95
4.54 13.00
3.13 13.62
2.94 13.57
8.98 13.81
9.89 14.39
3.45 13.06
9.99 15.19
4.31 13.69
9.00 15.04
10.37 13.39
10.61 14.27
5.39 11.88
11.20 14.25
8.83 13.24
23.37 14.99
11.88 13.88
8.28 12.86
14.59 15.73
11.84 15.78
11.56 15.75
13.27 18.26
19.30 18.82
9.04 14.77
7.86 13.58
12.35 13.96
17.65 15.20
15.82 15.10
9.98 14.00
10.62 13.25
11.39 13.85
6.37 13.19
9.36 14.44
6.03 13.40
5.20 13.45
12.47 17.23
7.48 14.27
11.81 15.65
7.68 13.97
10.47 15.41
9.85 16.39
14.04 16.21
11.64 16.63
5.71 13.17
Autor: GRUPO 3
# Paso 3 Gráfica de nube de puntos 
plot(x, y,
     main = "Gráfica de nube de puntos entre la Temperatura máxima y la Radiación Solar del 
     Volcán Antisana 2012",
     xlab = "Radiación Solar (J/m²)",
     ylab = "Temperatura máxima (°C)",
     col = "orange",
     pch = 13,    
     xlim = c(0,max(x)),
     ylim = c(0,max(y)),     
)
#Paso 4 Conjetura
#Debido a la distribución de los puntos se sugiere que el mejor modelo para la gráfica de nube de puntos
#es un modelo lineal, ya que se ve una proporcionalidad, mientras la radiación solar aumenta 
#la temperatura máxima tambien aumenta.

#Cálculo de parámetros modelo lineal
regresionlineal  <- lm(y~x)
regresionlineal
## 
## Call:
## lm(formula = y ~ x)
## 
## Coefficients:
## (Intercept)            x  
##     11.2237       0.3129
#Sustraemos pendiente e interceptor
I <- regresionlineal$coefficients[1]
I
## (Intercept) 
##    11.22374
m <- regresionlineal$coefficients[2]
m
##        x 
## 0.312879
#Paso 6 Sobreponer : El modelo con la realidad
plot(x, y,
     main = "Gráfica de nube de puntos entre la Temperatura máxima y la Radiación Solar del 
     Volcán Antisana 2012",
     xlab = "Radiación Solar (J/m²)",
     ylab = "Temperatura máxima (°C)",
     col = "orange",
     pch = 13,    
     xlim = c(0,max(x)),
     ylim = c(0,max(y)),     
)
abline(regresionlineal,col= "green",lwd = 2)

#Paso 7 :Test
#Test de Person
r <- cor(x,y)*100
r
## [1] 90.87017
#Paso 8: Coeficiente de determinación muestral
r2 <- r*r/100
r2
## [1] 82.57388
#Paso 9 :Restricciones
#Dominio [x]: D= {R+^0}
#Dominio [y]: D= {R}
# ¿Existe algún valor en dominio de x que sustituido en el modelo 
#matemático genere un valor en y fuera de su dominio?
#Ningún valor de la radiación solar genera resultados fuera del rango de la 
#temperatura máxima, ya que la radiación solar toma valores mayores o iguales a cero y,
#al aplicarse en el modelo lineal, siempre produce valores válidos de temperatura. 
#Por lo tanto, el modelo es coherente con los valores que pueden tomar ambas variables.

#Paso 10: Aplicaciones del modelo
#¿Cuál sera la temperatura máxima esperada cuando se tenga una radiación solar de 16(J/m²)?
TemperaturaMax_Esperada <- m*16+I
TemperaturaMax_Esperada
##        x 
## 16.22981
# PASO 11: Conclusión 
# Entre temperatura máxima (°C) y radiación solar (J/m2) existe la relación tipo lineal 
#cuya ecuación es y=11.223+0.312x siendo y= máxima temperatura (°C), 
#x= radiación solar (J/m2), donde la temperaatura máxima depende en un 82.57% 
#de la radiación solar y el 18.43% se debe a otros factores.