# Estadística Descriptiva: Variable Cuantitativa Continua
#Autor: "Grupo 1"
# Fecha: 03/12/2025
# Carga de librerías
library(knitr)
library(kableExtra)
library(readxl)
getwd()
## [1] "C:/Users/Kevin Moreira/Documents/CAMILA/Estadística/Tareas"
# Establecer directorio y cargar datos
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")
Temperatura_Max <- datos$Max.Temperature
#Manualmente
min <- min(Temperatura_Max)
max <- max(Temperatura_Max)
R <- max - min
K <- floor(1 + 3.33 * log10(length(Temperatura_Max)))
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(Temperatura_Max >= Li[i] & Temperatura_Max < Ls[i])
} else {
ni[i] <- sum(Temperatura_Max >= Li[i] & Temperatura_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_Temperatura_Max <- data.frame(
Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)
colnames(TDF_Temperatura_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_Temperatura_Max <-rbind(TDF_Temperatura_Max,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)
tabla_Temperatura_Max <- TDF_Temperatura_Max %>%
gt() %>%
tab_header(
title = md("*Tabla N°1*"),
subtitle = md("**Tabla de distribución de la Temperatura Máxima 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_Temperatura_Max
| Tabla N°1 | ||||||||
| Tabla de distribución de la Temperatura Máxima en el volcán Antisana | ||||||||
| Li | Ls | Mc | ni | hi | Ni_asc | Ni_desc | Hi_asc(%) | Hi_desc(%) |
|---|---|---|---|---|---|---|---|---|
| 10.32 | 11.8167 | 11.07 | 26 | 7.1 | 26 | 366 | 7.1 | 100 |
| 11.8167 | 13.3133 | 12.57 | 60 | 16.39 | 86 | 340 | 23.5 | 92.9 |
| 13.3133 | 14.81 | 14.06 | 71 | 19.4 | 157 | 280 | 42.9 | 76.5 |
| 14.81 | 16.3067 | 15.56 | 60 | 16.39 | 217 | 209 | 59.29 | 57.1 |
| 16.3067 | 17.8033 | 17.06 | 62 | 16.94 | 279 | 149 | 76.23 | 40.71 |
| 17.8033 | 19.3 | 18.55 | 44 | 12.02 | 323 | 87 | 88.25 | 23.77 |
| 19.3 | 20.7967 | 20.05 | 23 | 6.28 | 346 | 43 | 94.54 | 11.75 |
| 20.7967 | 22.2933 | 21.55 | 14 | 3.83 | 360 | 20 | 98.36 | 5.46 |
| 22.2933 | 23.79 | 23.04 | 6 | 1.64 | 366 | 6 | 100 | 1.64 |
| TOTAL | - | - | 366 | 100 | - | - | - | - |
| Autor: Grupo 1 | ||||||||
histoP<-hist(
Temperatura_Max,
main= "Grafica Nº1:Distribución de Temperatura
Máxima en el volcán Antisana",
xlab= "Temperatura_Máxima (°C)",
ylab= "Cantidad", col="blue",
)
#Tabla simplificada en base al histograma
Hist_Temperatura_Max<-hist(Temperatura_Max,breaks = 8,plot = F)
k<-length(Hist_Temperatura_Max$breaks)
Li<-Hist_Temperatura_Max$breaks[1:(length(Hist_Temperatura_Max$breaks)-1)]
Ls<-Hist_Temperatura_Max$breaks[2:length(Hist_Temperatura_Max$breaks)]
ni<-Hist_Temperatura_Max$counts
sum(ni)
## [1] 366
hi <- round(ni/sum(ni)*100, 3)
sum(hi)
## [1] 100
Mc<-Hist_Temperatura_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_Temperatura_Max<-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_Temperatura_Max)<-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_Temperatura_Max$ni)),
# Forzamos el 100% en vez de sumar los redondeos
hi = 100,
Ni_asc = "-",
Ni_desc = "-",
Hi_asc = "-",
Hi_desc = "-"
)
TDF_Temperatura_Max<-rbind(TDF_Temperatura_Max,totales)
library(dplyr)
library(gt)
TDF_Temperatura_Max %>%
gt() %>%
tab_header(
title = md("*Tabla N°2*"),
subtitle = md("*Tabla Simplificada de distribución de la Temperatura máxima 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 Temperatura máxima en el volcán 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 | 100 | - | - | - | - |
| Autor: Grupo 1 | ||||||||
hist(Temperatura_Max, breaks = 9,
main = "Gráfica N°2 Distribución para la Temperatura Máxima en el volcán 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_Temperatura_Max$breaks,
labels = Hist_Temperatura_Max$breaks, las = 1,
cex.axis = 0.9)
hist(Temperatura_Max, breaks = 10,
main = "Gráfica N°3: Distribución de la Temperatura Máxima en el volcán Antisana",
xlab = "Temperatura Máxima (°C)",
ylab = "Cantidad",
ylim = c(0, length(Temperatura_Max)),
col = "green",
cex.main = 0.9,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_Temperatura_Max$breaks,
labels = Hist_Temperatura_Max$breaks, las = 1,
cex.axis = 0.9)
TDF_Temperatura_Max$hi <- as.numeric(TDF_Temperatura_Max$hi)
datos_grafico <- subset(TDF_Temperatura_Max, !(MC %in% c("-", "TOTAL")))
barplot(datos_grafico$hi,
space = 0,
col = "blue",
main = "Gráfica N°4: Distribución porcentual de la Temperatura Máxima en el volcán Antisana",
xlab = "Temperatuta 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°5: Distribución porcentual de la Temperatura Máxima en el volcán Antisana",
xlab = "Temperatura Máxima (°C)",
ylab = "Porcentaje",
names.arg = datos_grafico$MC,
ylim = c(0, 100))
# Diagrama de Caja
boxplot(Temperatura_Max,
horizontal = TRUE,
main = "Gráfica N°6 Distribución para la Temperatura Máxima en el volcán Antisana",
xlab = "Temperatura Máxima (°C)",
col = "brown",
outline = TRUE,
pch = 1)
summary(Temperatura_Max)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.32 13.42 15.51 15.74 17.66 23.79
plot(Li ,Ni_desc,
main = "Gráfica N°7: Distribución Ascendente y Descendente
para la Temperatura Máxima en el volcán Antisana",
xlab = "Temperatura Máxima (°C)",
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)
plot(Li, Hi_desc * 100,
main = "Gráfica N°8: Distribución Ascendente y Descendente porcentual
para la Temperatura Máxima en el volcán Antisana",
xlab = "Temperatura Máxima (°C)",
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)
# Media aritmética
media <- round(mean(Temperatura_Max), 2)
media
## [1] 15.74
# Moda
max_frecuencia <- max(TDF_Temperatura_Max$ni)
moda <- TDF_Temperatura_Max$MC[TDF_Temperatura_Max$ni == max_frecuencia]
moda
## [1] "13"
# Mediana
mediana <- median(Temperatura_Max)
mediana
## [1] 15.51
# Varianza
varianza <- var(Temperatura_Max)
varianza
## [1] 8.222732
# Desviación Estándar
sd <- sd(Temperatura_Max)
sd
## [1] 2.867531
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 18.22
# Coeficiente deAsimetría
library("e1071")
asimetria <- skewness(Temperatura_Max, type = 2)
asimetria
## [1] 0.3905542
#Curtosis
curtosis <- kurtosis(Temperatura_Max)
curtosis
## [1] -0.5581832
tabla_indicadores <- data.frame(
"Variable" = c("Temperatura Máxima"),
"Rango" = c(paste0("[", min(Temperatura_Max), " ; ", max(Temperatura_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°3"),
subtitle = md("*Indicadores estadísticos de la variable Temperatura Máxima*")
) %>%
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 == "Temperatura Máxima"
)
)
tabla_indicadores_gt
| Tabla N°3 | ||||||||||
| 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 | 18.22 | 0.39 | -0.56 | |
| Autor: Grupo 1 | ||||||||||