CARGA DE DATOS Y LIBRERÍAS
CARGA DE DATOS
datos <- read.csv("C:/Users/Grace/OneDrive - Universidad Central del Ecuador/Documentos/dataset_geologico_limpio_80.csv",
header = TRUE,
sep = ",",
dec = ".",
stringsAsFactors = FALSE)
# Extraer variable Longitud
longitud <- as.numeric(datos$LONGITUDE)
longitud <- na.omit(longitud)
n <- length(longitud)
cat("Tamaño de muestra:", n)
## Tamaño de muestra: 27784
# CARGA DE LIBRERIAS
library(gt)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(knitr)
library(e1071)
library(moments)
##
## Adjuntando el paquete: 'moments'
## The following objects are masked from 'package:e1071':
##
## kurtosis, moment, skewness
TABLA DE DISTRIBUCIÓN DE FRECUENCIA
Agrupación por la regla de Sturges
minimo <- min(longitud)
maximo <- max(longitud)
R <- maximo - minimo
k <- floor(1 + 3.3 * log10(n))
A <- R / k
Li <- round(seq(minimo, maximo - A + 1e-6, by = A),1)
Ls <- round(Li + A,2)
Ls[length(Ls)] <- maximo
MC <- round((Li + Ls)/2,2)
# FRECUENCIAS
ni <- numeric(length(Li))
for(i in 1:length(Li)){
if(i == length(Li)){
ni[i] <- sum(longitud >= Li[i] & longitud <= Ls[i])
} else {
ni[i] <- sum(longitud >= Li[i] & longitud < Ls[i])
}
}
total <- sum(ni)
hi <- round((ni/total)*100,2)
Ni_Asc <- cumsum(ni)
Hi_Asc <- cumsum(hi)
Ni_Desc <- rev(cumsum(rev(ni)))
Hi_Desc <- rev(cumsum(rev(hi)))
# TABLA DE DISTRIBUCIÓN
tabla_final <- data.frame(
Limite_Inferior = Li,
Limite_Superior = Ls,
Marca_Clase = MC,
ni = ni,
hi = hi,
Ni_Asc = Ni_Asc,
Hi_Asc = Hi_Asc,
Ni_Desc = Ni_Desc,
Hi_Desc = Hi_Desc
)
suma_ni <- sum(tabla_final$ni)
suma_hi <- sum(tabla_final$hi)
tabla_final
## Limite_Inferior Limite_Superior Marca_Clase ni hi Ni_Asc Hi_Asc
## 1 -170.5 -150.8900 -160.70 108 0.39 108 0.39
## 2 -150.9 -131.2900 -141.10 265 0.95 373 1.34
## 3 -131.3 -111.6900 -121.50 714 2.57 1087 3.91
## 4 -111.7 -92.0900 -101.90 357 1.28 1444 5.19
## 5 -92.1 -72.4900 -82.29 9974 35.89 11418 41.08
## 6 -72.5 -52.8900 -62.70 15818 56.91 27236 97.99
## 7 -52.9 -33.2900 -43.09 0 0.00 27236 97.99
## 8 -33.3 -13.6900 -23.49 0 0.00 27236 97.99
## 9 -13.7 5.9100 -3.89 166 0.60 27402 98.59
## 10 5.9 25.5100 15.71 19 0.07 27421 98.66
## 11 25.5 45.1100 35.30 0 0.00 27421 98.66
## 12 45.1 64.7100 54.91 0 0.00 27421 98.66
## 13 64.7 84.3100 74.50 15 0.05 27436 98.71
## 14 84.3 103.9100 94.10 5 0.02 27441 98.73
## 15 104.0 123.5568 113.78 353 1.27 27794 100.00
## Ni_Desc Hi_Desc
## 1 27794 100.00
## 2 27686 99.61
## 3 27421 98.66
## 4 26707 96.09
## 5 26350 94.81
## 6 16376 58.92
## 7 558 2.01
## 8 558 2.01
## 9 558 2.01
## 10 392 1.41
## 11 373 1.34
## 12 373 1.34
## 13 373 1.34
## 14 358 1.29
## 15 353 1.27
# FILA TOTAL
fila_total <- data.frame(
Limite_Inferior = "TOTAL",
Limite_Superior = "",
Marca_Clase = "",
ni = suma_ni,
hi = suma_hi,
Ni_Asc = "-",
Hi_Asc = "-",
Ni_Desc = "-",
Hi_Desc = "-"
)
tabla_final <- rbind(tabla_final, fila_total)
tabla_final
## Limite_Inferior Limite_Superior Marca_Clase ni hi Ni_Asc Hi_Asc
## 1 -170.5 -150.89 -160.7 108 0.39 108 0.39
## 2 -150.9 -131.29 -141.1 265 0.95 373 1.34
## 3 -131.3 -111.69 -121.5 714 2.57 1087 3.91
## 4 -111.7 -92.09 -101.9 357 1.28 1444 5.19
## 5 -92.1 -72.49 -82.29 9974 35.89 11418 41.08
## 6 -72.5 -52.89 -62.7 15818 56.91 27236 97.99
## 7 -52.9 -33.29 -43.09 0 0.00 27236 97.99
## 8 -33.3 -13.69 -23.49 0 0.00 27236 97.99
## 9 -13.7 5.91 -3.89 166 0.60 27402 98.59
## 10 5.9 25.51 15.71 19 0.07 27421 98.66
## 11 25.5 45.11 35.3 0 0.00 27421 98.66
## 12 45.1 64.71 54.91 0 0.00 27421 98.66
## 13 64.7 84.31 74.5 15 0.05 27436 98.71
## 14 84.3 103.91 94.1 5 0.02 27441 98.73
## 15 104 123.55683 113.78 353 1.27 27794 100
## 16 TOTAL 27794 100.00 - -
## Ni_Desc Hi_Desc
## 1 27794 100
## 2 27686 99.61
## 3 27421 98.66
## 4 26707 96.09
## 5 26350 94.81
## 6 16376 58.92
## 7 558 2.01
## 8 558 2.01
## 9 558 2.01
## 10 392 1.41
## 11 373 1.34
## 12 373 1.34
## 13 373 1.34
## 14 358 1.29
## 15 353 1.27
## 16 - -
# TABLA DE DISTRIBUCIÓN FORMATO PROFESIONAL
# TABLA DE DISTRIBUCIÓN FORMATO PROFESIONAL
TablaLongitud <- tabla_final %>%
gt() %>%
tab_header(
title = md("**Tabla Nº1**"),
subtitle = md("Distribución de frecuencias de la variable Longitud")
) %>%
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.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
table_body.hlines.color = "gray"
)
TablaLongitud
| Tabla Nº1 |
| Distribución de frecuencias de la variable Longitud |
| Limite_Inferior |
Limite_Superior |
Marca_Clase |
ni |
hi |
Ni_Asc |
Hi_Asc |
Ni_Desc |
Hi_Desc |
| -170.5 |
-150.89 |
-160.7 |
108 |
0.39 |
108 |
0.39 |
27794 |
100 |
| -150.9 |
-131.29 |
-141.1 |
265 |
0.95 |
373 |
1.34 |
27686 |
99.61 |
| -131.3 |
-111.69 |
-121.5 |
714 |
2.57 |
1087 |
3.91 |
27421 |
98.66 |
| -111.7 |
-92.09 |
-101.9 |
357 |
1.28 |
1444 |
5.19 |
26707 |
96.09 |
| -92.1 |
-72.49 |
-82.29 |
9974 |
35.89 |
11418 |
41.08 |
26350 |
94.81 |
| -72.5 |
-52.89 |
-62.7 |
15818 |
56.91 |
27236 |
97.99 |
16376 |
58.92 |
| -52.9 |
-33.29 |
-43.09 |
0 |
0.00 |
27236 |
97.99 |
558 |
2.01 |
| -33.3 |
-13.69 |
-23.49 |
0 |
0.00 |
27236 |
97.99 |
558 |
2.01 |
| -13.7 |
5.91 |
-3.89 |
166 |
0.60 |
27402 |
98.59 |
558 |
2.01 |
| 5.9 |
25.51 |
15.71 |
19 |
0.07 |
27421 |
98.66 |
392 |
1.41 |
| 25.5 |
45.11 |
35.3 |
0 |
0.00 |
27421 |
98.66 |
373 |
1.34 |
| 45.1 |
64.71 |
54.91 |
0 |
0.00 |
27421 |
98.66 |
373 |
1.34 |
| 64.7 |
84.31 |
74.5 |
15 |
0.05 |
27436 |
98.71 |
373 |
1.34 |
| 84.3 |
103.91 |
94.1 |
5 |
0.02 |
27441 |
98.73 |
358 |
1.29 |
| 104 |
123.55683 |
113.78 |
353 |
1.27 |
27794 |
100 |
353 |
1.27 |
| TOTAL |
|
|
27794 |
100.00 |
- |
- |
- |
- |
| Autor: Grupo 3 |
GRÁFICAS DE DISTRIBUCIÓN DE FRECUENCIA
## Histograma de frecuencia absoluta local
hist(longitud,
breaks = k,
col = "gray",
main = "Gráfica Nº1: Distribución de frecuencia absoluta local de Longitud",
xlab = "Longitud",
ylab = "Cantidad")

# Histograma de frecuencia absoluta global
hist(longitud,
breaks = k,
col = "gray",
main = "Gráfica Nº2: Distribución de frecuencia absoluta global de Longitud",
xlab = "Longitud",
ylab = "Cantidad",
ylim = c(0, max(ni)+200))

# Frecuencia relativa local
barplot(hi,
space = 0,
main = "Gráfica Nº3: Distribución de frecuencia relativa local de Longitud",
col = "gray",
xlab = "Intervalos de Longitud",
ylab = "Porcentaje",
names.arg = MC)

# Frecuencia relativa global
barplot(hi,
space = 0,
main = "Gráfica Nº4: Distribución de frecuencia relativa global de Longitud",
col = "gray",
xlab = "Intervalos de Longitud",
ylab = "Porcentaje",
names.arg = MC,
ylim = c(0,100))

# Ojiva combinada Ni
lim_sup <- Ls
plot(lim_sup, Ni_Desc, type="o",
main="Gráfica Nº5: Ojiva combinada de la longitud (Ni)",
ylab="Cantidad acumulada",
xlab="Longitud",
col="blue")
lines(Li, Ni_Asc,
col="red",
type="o")
legend("topleft",
legend=c("Descendente","Ascendente"),
col=c("blue","red"),
lty=1,
pch=1)

# Ojiva combinada Hi
lim_sup <- Ls
plot(lim_sup, Hi_Desc, type="o",
main="Gráfica Nº6: Ojiva combinada de la longitud (Hi)",
ylab="Porcentaje acumulado",
xlab="Longitud",
col="blue",
ylim=c(0,100))
lines(Li, Hi_Asc,
col="red",
type="o")
legend("topleft",
legend=c("Descendente","Ascendente"),
col=c("blue","red"),
lty=1,
pch=1)

# DIAGRAMA DE CAJA
boxplot(longitud,
horizontal = TRUE,
main = "Gráfica Nº7: Diagrama de caja de la variable Longitud",
xlab = "Longitud",
col = "lightblue")

INDICADORES ESTADÍSTICOS
# Cálculo de indicadores
media <- mean(longitud)
mediana <- median(longitud)
desv <- sd(longitud)
CV <- round((desv/media)*100,2)
asimetria <- round(skewness(longitud),2)
curtosis <- round(kurtosis(longitud),2)
minimo <- min(longitud)
maximo <- max(longitud)
TablaIndicadores <- data.frame(
Variable = "Longitud",
Minimo = round(minimo,2),
Maximo = round(maximo,2),
Media = round(media,2),
Mediana = round(mediana,2),
Desv_Est = round(desv,2),
CV = CV,
Asimetria = asimetria,
Curtosis = curtosis
)
TablaIndicadores
## Variable Minimo Maximo Media Mediana Desv_Est CV Asimetria Curtosis
## 1 Longitud -170.52 123.56 -72.77 -70.97 25.4 -34.91 4.42 36.11
# Tabla Mejorada
TablaIndicadores %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Indicadores estadísticos de la variable Longitud")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
| Tabla Nº2 |
| Indicadores estadísticos de la variable Longitud |
| Variable |
Minimo |
Maximo |
Media |
Mediana |
Desv_Est |
CV |
Asimetria |
Curtosis |
| Longitud |
-170.52 |
123.56 |
-72.77 |
-70.97 |
25.4 |
-34.91 |
4.42 |
36.11 |
| Autor: Grupo 3 |
OUTLIERS
outliers <- boxplot.stats(longitud)$out
num_outliers <- length(outliers)
min_out <- ifelse(num_outliers > 0, round(min(outliers),2), NA)
max_out <- ifelse(num_outliers > 0, round(max(outliers),2), NA)
TablaOutliers <- data.frame(
Cantidad_Outliers = num_outliers,
Minimo = min_out,
Maximo = max_out
)
TablaOutliers
## Cantidad_Outliers Minimo Maximo
## 1 5027 -170.52 123.56
#Tabla Mejorada
TablaOutliers %>%
gt() %>%
tab_header(
title = md("**Tabla Nº3**"),
subtitle = md("Valores atípicos de la variable Longitud")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
| Tabla Nº3 |
| Valores atípicos de la variable Longitud |
| Cantidad_Outliers |
Minimo |
Maximo |
| 5027 |
-170.52 |
123.56 |
| Autor: Grupo 3 |
CONCLUSIONES