# Estadística Descriptiva: Variable Cuantitativa Continua
#Autor: "Grupo 1"
# Fecha: 03/12/2025
# Carga de librerías
library(knitr)
library(kableExtra)
library(readxl)

1. Carga de datos

getwd()
## [1] "C:/Users/Kevin Moreira/Documents/CAMILA/Estadística/Tareas"
setwd("~/CAMILA/Estadística/Tareas")
datos <- read_excel("weatherdataANTISANA.xlsx")
write.csv(datos,"weatherdataANTISANA.csv")

datos <- read.csv("weatherdataANTISANA.csv",
                  header = TRUE,
                  sep = ",",
                  dec = ".",
                  fileEncoding = "UTF-8")

2. Extracción Variable

Radiación <- datos$Solar

3. Tabla de distribución de frecuencia

#Manualmente
min <- min(Radiación)
max <- max(Radiación)
R <- max - min
K <- floor(1 + 3.33 * log10(length(Radiación)))
A <- R / K
Li <- round(seq(from = min, to = max - A, by = A), 4)
Ls <- round(seq(from = min + A, to = max, by = A), 4)
Mc<-round((Li+Ls)/2,2)
ni <- numeric(length(Li))
for (i in 1:K) {
  if (i < K) {
    ni[i] <- sum(Radiación >= Li[i] & Radiación < Ls[i])
  } else {
    ni[i] <- sum(Radiación >= Li[i] & Radiación <= 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_Radiación <- data.frame(
  Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)

colnames(TDF_Radiación) <- 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_Radiación <-rbind(TDF_Radiación,totales)

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following object is masked from 'package:kableExtra':
## 
##     group_rows
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gt)

TDF_Radiación %>%
  gt() %>%
  tab_header(
    title = md("*Tabla N°1*"),
    subtitle = md("**Tabla de distribución de la Radiación en el volcán Antisana**")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>%
  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 N°1
Tabla de distribución de la Radiación en el volcán Antisana
Li Ls Mc ni hi Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
1.26 4.4833 2.87 40 10.93 40 366 10.93 100
4.4833 7.7067 6.1 57 15.57 97 326 26.5 89.07
7.7067 10.93 9.32 55 15.03 152 269 41.53 73.5
10.93 14.1533 12.54 55 15.03 207 214 56.56 58.47
14.1533 17.3767 15.77 30 8.2 237 159 64.75 43.44
17.3767 20.6 18.99 17 4.64 254 129 69.4 35.25
20.6 23.8233 22.21 35 9.56 289 112 78.96 30.6
23.8233 27.0467 25.44 48 13.11 337 77 92.08 21.04
27.0467 30.27 28.66 29 7.92 366 29 100 7.92
TOTAL - - 366 100 - - - -
Autor: Grupo 1

4. Gráficas

4.1 Histograma

#Histograma
histoP<-hist(
  Radiación,
  main= "Grafica Nº1:Distribución de Radiación en el volcán Antisana",
  xlab= "Radiación (J/m²)",
  ylab= "Cantidad", col="blue",
)

#Tabla simplificada en base al histograma
Hist_Radiación <-hist(Radiación,breaks = 8,plot = F)
k<-length(Hist_Radiación$breaks)
Li<-Hist_Radiación$breaks[1:(length(Hist_Radiación$breaks)-1)]
Ls<-Hist_Radiación$breaks[2:length(Hist_Radiación$breaks)]
ni<-Hist_Radiación$counts
sum(ni)
## [1] 366
hi <- round(ni/sum(ni)*100, 3)
sum(hi)
## [1] 99.999
Mc<-Hist_Radiación$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_Radiación<-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_Radiación)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

totales <- c(
  Li = "TOTAL",
  Ls = "-",
  Mc = "-",
  ni = sum(as.numeric(TDF_Radiación$ni)),
  # Forzamos el 100% en vez de sumar los redondeos
  hi = 100,
  Ni_asc = "-",
  Ni_desc = "-",
  Hi_asc = "-",
  Hi_desc = "-"
)
TDF_Radiación <-rbind(TDF_Radiación,totales)


library(dplyr)
library(gt)

TDF_Radiación %>%
  gt() %>%
  tab_header(
    title = md("*Tabla N°2*"),
    subtitle = md("*Tabla Simplificada de distribución de la Radiación en el volcán Antisana*")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>%
  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 N°2
Tabla Simplificada de distribución de la Radiación en el volcán 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 1
hist(Radiación, breaks = 10,
     main = "Gráfica N°2 Distribución para la Radiación en el volcán Antisana",
     xlab = "Radiación (J/m²)",
     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_Radiación$breaks,
     labels = Hist_Radiación$breaks, las = 1,
     cex.axis = 0.9)

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

4.4 Histogrma Porcentual

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

barplot(datos_grafico$hi,
        space = 0,
        col = "blue",
        main = "Gráfica N°4: Distribución porcentual de la Radiación en el volcán Antisana",
        xlab = "Radiación (J/m²)",
        ylab = "Porcentaje",
        names.arg = datos_grafico$MC,
        ylim = c(0, 30))

barplot(datos_grafico$hi,
        space = 0,
        col = "skyblue",
        main = "Gráfica N°5: Distribución porcentual de la Radiación en el volcán Antisana",
        xlab = "Radiación (J/m²)",
        ylab = "Porcentaje",
        names.arg = datos_grafico$MC,
        ylim = c(0, 100))

5. Diagrama de Caja

boxplot(Radiación,
        horizontal = TRUE,
        main = "Gráfica N°6 Distribución para la Radiación en el volcán Antisana",
        xlab = "Radiación (J/m²)",
        col = "brown",
        outline = TRUE,
        pch = 1)

summary(Radiación)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.260   7.295  12.655  14.436  22.375  30.270

6. Ojivas

6.1 Diagrama de Ojiva Ascendente y Descendente (ni)

plot(Li ,Ni_desc,
     main = "Gráfica N°7: Distribución Ascendente y Descendente 
      para la Radiación en el volcán Antisana",
     xlab = "Radiación (J/m²)",
     ylab = "Cantidad",
     xlim = c(min(Li), max(Ls)),
     col = "red",
     cex.axis=0.8,
     type = "o",
     lwd = 3,
     las=1,
     xaxt="n")

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

axis(1, at = Li, las=1)

6.2 Diagrama de Ojiva Ascendente y Descendente (hi)

plot(Li, Hi_desc * 100,
     main = "Gráfica N°8: Distribución Ascendente y Descendente porcentual
      para la Radiación en el volcán Antisana",
     xlab = "Radiación (J/m²)",
     ylab = "Porcentaje",
     xlim = c(min(Li), max(Ls)),
     col = "red",
     type = "o",
     lwd = 2,
     xaxt="n")

lines(Ls, Hi_asc * 100,
      col = "orange",
      type = "o",
      lwd = 3)
axis(1, at = Li, las=1)

7. INDICADORES ESTADISTICOS

7.1 Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Radiación), 2)
media
## [1] 14.44
# Moda
max_frecuencia <- max(TDF_Radiación$ni)
moda <- TDF_Radiación$MC[TDF_Radiación$ni == max_frecuencia]
moda
## [1] "7.5"
# Mediana
mediana <- median(Radiación)
mediana
## [1] 12.655

7.2 INDICADORES DE DISPERSIÓN

# Varianza
varianza <- var(Radiación)
varianza
## [1] 69.3595
# Desviación Estándar
sd <- sd(Radiación)
sd
## [1] 8.328235
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 57.67

7.3 INDICADORES DE FORMA

# Coeficiente deAsimetría
library("e1071")
asimetria <- skewness(Radiación, type = 2)
asimetria
## [1] 0.2996237
#Curtosis
curtosis <- kurtosis(Radiación)
curtosis
## [1] -1.244028

8. Tabla resumen

tabla_indicadores <- data.frame(
  "Variable" = c("Radiación"),
  "Rango" = c(paste0("[", min(Radiación), " ; ", max(Radiación), "]")),
  "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°3"),
    subtitle = md("*Indicadores estadísticos de la variable Radiación*")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>% 
  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 == "Radiación"
    )
  )

tabla_indicadores_gt
Tabla N°3
Indicadores estadísticos de la variable Radiación
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Radiación [1.26 ; 30.27] 14 13 7.5 69.36 8 57.67 0.3 -1.24
Autor: Grupo 1