10.1 Agrupación 1: Longitud: (−108° a −60°)) – Modelo Normal
10.1.1 Filtrado de datos
lon_108_60 <- longitude[longitude >= -108 & longitude <= -60]
10.1.2 Intervalos
Li_108_60 <- seq(-108, -68, by = 10)
LS_108_60 <- Li_108_60 + 10
MC_108_60 <- (Li_108_60 + LS_108_60) / 2
k_108_60 <- length(Li_108_60)
10.1.3 Frecuencias
ni_108_60 <- numeric(k_108_60)
for (i in 1:k_108_60) {
if (i < k_108_60) {
ni_108_60[i] <- sum(lon_108_60 >= Li_108_60[i] & lon_108_60 < LS_108_60[i])
} else {
ni_108_60[i] <- sum(lon_108_60 >= Li_108_60[i] & lon_108_60 <= -60)
}
}
hi_108_60 <- (ni_108_60 / sum(ni_108_60)) * 100
NI_108_60 <- cumsum(ni_108_60)
NID_108_60 <- rev(cumsum(rev(ni_108_60)))
HI_108_60 <- cumsum(hi_108_60)
HID_108_60 <- rev(cumsum(rev(hi_108_60)))
10.1.4 Tabla de frecuencias
Tabla_108_60 <- data.frame(
Li = Li_108_60,
LS = LS_108_60,
MC = MC_108_60,
ni = ni_108_60,
hi = round(hi_108_60, 2),
NI = NI_108_60,
NID = NID_108_60,
HI = round(HI_108_60, 2),
HID = round(HID_108_60, 2)
)
tabla_gt_108_60 <- Tabla_108_60 %>%
gt() %>%
tab_header(
title = md("**Tabla N° 9**"),
subtitle = md("Distribución de frecuencias de la
variable Longitud entre (−108° a −60°) a nivel mundial")
) %>%
fmt_number(columns = c(hi, HI, HID), decimals = 2) %>%
tab_source_note(
source_note = md("Autor: Grupo Geología")
)
tabla_gt_108_60
| Tabla N° 9 |
| Distribución de frecuencias de la
variable Longitud entre (−108° a −60°) a nivel mundial |
| Li |
LS |
MC |
ni |
hi |
NI |
NID |
HI |
HID |
| -108 |
-98 |
-103 |
211 |
10.69 |
211 |
1974 |
10.69 |
100.00 |
| -98 |
-88 |
-93 |
288 |
14.59 |
499 |
1763 |
25.28 |
89.31 |
| -88 |
-78 |
-83 |
881 |
44.63 |
1380 |
1475 |
69.91 |
74.72 |
| -78 |
-68 |
-73 |
440 |
22.29 |
1820 |
594 |
92.20 |
30.09 |
| -68 |
-58 |
-63 |
154 |
7.80 |
1974 |
154 |
100.00 |
7.80 |
| Autor: Grupo Geología |
10.1.5 Histograma y ajuste del modelo normal
breaks_lon <- c(Li_108_60, -60)
HistoLon1 <- hist(
lon_108_60,
breaks = breaks_lon,
right = FALSE,
include.lowest = TRUE,
freq = TRUE,
col = "grey",
border = "black",
main = " Gráfica 9: Modelo de probabilidad normal de la variable
Longitud entre (−108° a −60°) a nivel mundial",
xlab = "Longitude (°)",
ylab = "Densidad de probabilidad"
)
## Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle =
## angle, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'
Fo_abs <- HistoLon1$counts
# Parámetros de la normal
mu_hat <- mean(lon_108_60)
sigma_hat <- sd(lon_108_60)
# Dominio de la curva
x_norm <- seq(min(breaks_lon), max(breaks_lon), length.out = 400)
# Escalado correcto de la normal
y_norm <- dnorm(x_norm, mean = mu_hat, sd = sigma_hat)
y_norm <- y_norm * diff(breaks_lon)[1] * sum(Fo_abs)
# Dibujar curva
lines(x_norm, y_norm, col = "red", lwd = 2)
legend(
"topright",
legend = c("Histograma", "Modelo normal"),
col = c("grey", "red"),
lwd = c(10, 2),
bty = "n"
)

10.1.6 Cálculo de frecuencias esperadas
# Número de clases
k <- length(Fo_abs)
# Probabilidades teóricas por intervalo (Normal)
P <- numeric(k)
for (i in 1:k) {
P[i] <- pnorm(
breaks_lon[i + 1],
mean = mu_hat,
sd = sigma_hat
) - pnorm(
breaks_lon[i],
mean = mu_hat,
sd = sigma_hat
)
}
# Normalización (seguridad numérica)
P <- P / sum(P)
# Frecuencias esperadas absolutas
Fe_abs <- P * sum(Fo_abs)
Fe_abs
## [1] 147.3760 483.8968 720.1396 486.6754 135.9122
# Coeficiente de correlación de Pearson
pearson_r <- cor(Fo_abs, Fe_abs)
pearson_r
## [1] 0.8910311
# Pearson en porcentaje
pearson_pct <- pearson_r * 100
pearson_pct
## [1] 89.10311
10.1.7 Gráfica de evaluación entre Frecuencia observada y Frecuencia
relativa (Test de Pearson)
plot(
Fo_abs, Fe_abs,
main = "Gráfica 10: Correlación entre Frecuencia observada y Frecuencia
relativa del Modelo normal de la variable Longitud
entre (−108° a -60°) a nivel mundial",
xlab = "Frecuencia observada (Fo)",
ylab = "Frecuencia esperada (Fe)",
pch = 19,
col = "blue3"
)
abline(lm(Fe_abs ~ Fo_abs), col = "red", lwd = 2)

Correlacion_Pearson <- pearson_pct
Correlacion_Pearson
## [1] 89.10311
10.1.8 Prueba de Chi-cuadrado
# Nivel de significancia
nivel_significancia <- 0.05
# ----------------------------------------------------
# Frecuencia observada porcentual
# ----------------------------------------------------
Fo <- (Fo_abs / sum(Fo_abs)) * 100
Fo
## [1] 10.688956 14.589666 44.630193 22.289767 7.801418
# ----------------------------------------------------
# Frecuencia esperada porcentual
# ----------------------------------------------------
Fe <- P * 100
Fe
## [1] 7.465856 24.513517 36.481234 24.654278 6.885115
# ----------------------------------------------------
# Estadístico Chi-cuadrado
# ----------------------------------------------------
x2 <- sum((Fe - Fo)^2 / Fe)
x2
## [1] 7.577925
# ----------------------------------------------------
# Grados de libertad
# gl = número de clases - 1
# ----------------------------------------------------
grados_libertad <- length(Fo) - 1
grados_libertad
## [1] 4
# ----------------------------------------------------
# Umbral de aceptación
# ----------------------------------------------------
umbral_aceptacion <- qchisq(1 - nivel_significancia, grados_libertad)
umbral_aceptacion
## [1] 9.487729
# ----------------------------------------------------
# Decisión estadística
# ----------------------------------------------------
Decision_Chi <- ifelse(
x2 < umbral_aceptacion,
"SE ACEPTA el modelo de distribución",
"SE RECHAZA el modelo de distribución"
)
Decision_Chi
## [1] "SE ACEPTA el modelo de distribución"
10.1.9 Gráfica de probabilidad – Modelo exponencial
# Dominio
x_norm <- seq(-108, -60, length.out = 500)
# Densidad normal
y_norm <- dnorm(x_norm, mean = mu_hat, sd = sigma_hat)
plot(
x_norm, y_norm,
type = "l",
lwd = 2,
col = "blue3",
main = "Gráfica 11: Cálculo de probabilidades – Modelo normal
de la variable Longitud entre (−108° a -60°) a nivel mundial",
xlab = "Longitude (°)",
ylab = "Densidad de probabilidad"
)
# Intervalo de probabilidad (ejemplo)
x_sec <- seq(-95, -75, by = 0.1)
y_sec <- dnorm(x_sec, mean = mu_hat, sd = sigma_hat)
polygon(
c(x_sec, rev(x_sec)),
c(y_sec, rep(0, length(y_sec))),
col = rgb(1, 0, 0, 0.5),
border = NA
)
lines(x_sec, y_sec, col = "red", lwd = 2)
legend(
"topright",
legend = c("Modelo normal", "Área de probabilidad"),
col = c("blue3", "red"),
lwd = 2,
bty = "n"
)

# Probabilidad (Normal)
P_norm <- pnorm(-75, mean = mu_hat, sd = sigma_hat) -
pnorm(-95, mean = mu_hat, sd = sigma_hat)
# Porcentaje
P_norm_pct <- P_norm * 100
P_norm
## [1] 0.6342737
P_norm_pct
## [1] 63.42737
10.1.10 CÁLCULO DE PROBABILIDAD (RANGO −95° A −75°)
¿Cuál es la probabilidad de que un evento ocurra en una longitud
entre −95° y −75°?
# El cálculo ya fue realizado en el paso 10.1.9 como 'P_norm_pct'
x_lon <- round(P_norm_pct, 1)
print(paste("La probabilidad es de:", x_lon, "%"))
## [1] "La probabilidad es de: 63.4 %"
10.1.11 Tablas de Resumen Estadístico (Agrupación 1 - Longitud)
# --- PREPARACIÓN DE DATOS ---
# Usamos las variables calculadas en los pasos 10.1.5 a 10.1.8
n_lon1 <- length(lon_108_60)
media_lon1 <- mu_hat
sd_lon1 <- sigma_hat
# --- 1. TABLA N° 10: RESUMEN DEL TEST DE BONDAD AL MODELO ---
tabla_resumen_lon_norm <- data.frame(
Variable = "Longitud (−108° a −60°)",
Pearson = Correlacion_Pearson,
Chi_cuadrado = x2,
Umbral = umbral_aceptacion
)
tabla_gt_bondad_lon <- tabla_resumen_lon_norm %>%
gt() %>%
tab_header(
title = md("**Tabla N° 10**"),
subtitle = md("Resumen del test de bondad al modelo Normal")
) %>%
cols_label(
Variable = "Variable",
Pearson = "Test de Pearson (%)",
Chi_cuadrado = "Chi-cuadrado (f. relativa)",
Umbral = "Umbral de aceptación"
) %>%
fmt_number(columns = Pearson, decimals = 2) %>%
fmt_number(columns = c(Chi_cuadrado, Umbral), decimals = 4) %>%
tab_source_note(source_note = md("Elaborado por: Grupo 2 – Carrera de Geología"))
tabla_gt_bondad_lon
| Tabla N° 10 |
| Resumen del test de bondad al modelo Normal |
| Variable |
Test de Pearson (%) |
Chi-cuadrado (f. relativa) |
Umbral de aceptación |
| Longitud (−108° a −60°) |
89.10 |
7.5779 |
9.4877 |
| Elaborado por: Grupo 2 – Carrera de Geología |
# --- 2. TABLA N° 11: TEOREMA DEL LÍMITE CENTRAL ---
error_estandar_lon1 <- sd_lon1 / sqrt(n_lon1)
limit_inf_lon1 <- media_lon1 - 1.96 * error_estandar_lon1
limit_sup_lon1 <- media_lon1 + 1.96 * error_estandar_lon1
tabla_media_lon_norm <- data.frame(
Limite_inf = limit_inf_lon1,
Variable = "Longitud (−108° a −60°)",
Limite_sup = limit_sup_lon1,
Error_estandar = error_estandar_lon1
)
tabla_gt_limite_lon <- tabla_media_lon_norm %>%
gt() %>%
tab_header(
title = md("**Tabla N° 11**"),
subtitle = md("Cálculo del Error Estándar para el Modelo Normal")
) %>%
cols_label(
Limite_inf = "Límite inferior",
Variable = "Variable",
Limite_sup = "Límite superior",
Error_estandar = "Error estándar"
) %>%
fmt_number(columns = everything(), decimals = 2) %>%
tab_source_note(source_note = md("Elaborado por: Grupo 2 – Carrera de Geología"))
tabla_gt_limite_lon
| Tabla N° 11 |
| Cálculo del Error Estándar para el Modelo Normal |
| Límite inferior |
Variable |
Límite superior |
Error estándar |
| −83.44 |
Longitud (−108° a −60°) |
−82.48 |
0.24 |
| Elaborado por: Grupo 2 – Carrera de Geología |
10.1.12 CONCLUSIÓN
La variable LONGITUD entre (−108° a -60°) a sigue
un modelo de probabilidad normal, aprobando los test de Pearson (89.10%)
y Chi-cuadrado (7.5779) con un umbral de aceptación de 9.4877. De esta
manera, se pueden calcular probabilidades; por ejemplo, la probabilidad
de que un evento ocurra en una latitud comprendida entre −95° y −75° es
del 63.4%. Además, mediante el teorema del límite central, se determina
que la media aritmética poblacional se encuentra entre −83.44° y
−82.48°, con un error estándar de 0.24.
10.2 Agrupación 2: Longitud (−60° a 30°) – Modelo uniforme
10.2.1 Filtrado de datos
lon_60_30 <- longitude[longitude >= -60 & longitude <= 30]
n <- length(lon_60_30)
10.2.2 Intervalos
Li_60_30 <- c(-60, -30, 0)
LS_60_30 <- c(-30, 0, 30)
MC_60_30 <- (Li_60_30 + LS_60_30) / 2
k_60_30 <- length(Li_60_30)
10.2.3 Frecuencias
ni_60_30 <- numeric(k_60_30)
for (i in 1:k_60_30) {
if (i < k_60_30) {
ni_60_30[i] <- sum(lon_60_30 >= Li_60_30[i] & lon_60_30 < LS_60_30[i])
} else {
ni_60_30[i] <- sum(lon_60_30 >= Li_60_30[i] & lon_60_30 <= 30)
}
}
hi_60_30 <- (ni_60_30 / sum(ni_60_30)) * 100
NI_60_30 <- cumsum(ni_60_30)
NID_60_30 <- rev(cumsum(rev(ni_60_30)))
HI_60_30 <- cumsum(hi_60_30)
HID_60_30 <- rev(cumsum(rev(hi_60_30)))
10.2.4 Tabla de frecuencias
Tabla_60_30 <- data.frame(
Li = Li_60_30,
LS = LS_60_30,
MC = MC_60_30,
ni = ni_60_30,
hi = round(hi_60_30, 2),
NI = NI_60_30,
NID = NID_60_30,
HI = round(HI_60_30, 2),
HID = round(HID_60_30, 2)
)
Tabla_60_30
## Li LS MC ni hi NI NID HI HID
## 1 -60 -30 -45 228 25.91 228 880 25.91 100.00
## 2 -30 0 -15 318 36.14 546 652 62.05 74.09
## 3 0 30 15 334 37.95 880 334 100.00 37.95
Tabla_60_30 <- data.frame(
Li = Li_60_30,
LS = LS_60_30,
MC = MC_60_30,
ni = ni_60_30,
hi = round(hi_60_30, 2),
NI = NI_60_30,
NID = NID_60_30,
HI = round(HI_60_30, 2),
HID = round(HID_60_30, 2)
)
tabla_gt_60_30 <- Tabla_60_30 %>%
gt() %>%
tab_header(
title = md("**Tabla N° 12**"),
subtitle = md("Distribución de frecuencias de la
variable Longitud entre (−60° a 30°) a nivel mundial")
) %>%
fmt_number(columns = c(hi, HI, HID), decimals = 2) %>%
tab_source_note(
source_note = md("Autor: Grupo Geología")
)
tabla_gt_60_30
| Tabla N° 12 |
| Distribución de frecuencias de la
variable Longitud entre (−60° a 30°) a nivel mundial |
| Li |
LS |
MC |
ni |
hi |
NI |
NID |
HI |
HID |
| -60 |
-30 |
-45 |
228 |
25.91 |
228 |
880 |
25.91 |
100.00 |
| -30 |
0 |
-15 |
318 |
36.14 |
546 |
652 |
62.05 |
74.09 |
| 0 |
30 |
15 |
334 |
37.95 |
880 |
334 |
100.00 |
37.95 |
| Autor: Grupo Geología |
10.2.6 Cálculo de frecuencias esperadas
Fo_abs <- ni_60_30
# Probabilidades teóricas (uniforme)
P <- punif(LS_60_30, min = a, max = b) -
punif(Li_60_30, min = a, max = b)
P <- P / sum(P)
Fe_abs <- P * sum(Fo_abs)
Fe_abs
## [1] 290.3694 294.8910 294.7396
10.2.7 Gráfica de evaluación entre Frecuencia observada y Frecuencia
relativa (Test de Pearson)
# Coeficiente de correlación de Pearson
pearson_r <- cor(Fo_abs, Fe_abs)
pearson_r
## [1] 0.9855951
# Pearson en porcentaje
pearson_pct <- pearson_r * 100
pearson_pct
## [1] 98.55951
# Gráfico Fo vs Fe
plot(
Fo_abs, Fe_abs,
main = "Gráfica 13: Correlación entre Frecuencia observada y Frecuencia
relativa del Modelo Uniforme de la variable Longitud
entre (−60° a 30°) a nivel mundial)",
xlab = "Frecuencia observada (Fo)",
ylab = "Frecuencia esperada (Fe)",
pch = 19,
col = "blue3"
)
# Recta de ajuste
abline(lm(Fe_abs ~ Fo_abs), col = "red", lwd = 2)

# Resultado final
Correlacion_Pearson <- pearson_pct
Correlacion_Pearson
## [1] 98.55951
10.2.8 Prueba de Chi-cuadrado
nivel_significancia <- 0.05
Fo <- (Fo_abs / sum(Fo_abs)) * 100
Fe <- P * 100
x2 <- sum((Fo - Fe)^2 / Fe)
x2
## [1] 2.322392
grados_libertad <- length(Fo) - 1
grados_libertad
## [1] 2
umbral_aceptacion <- qchisq(1 - nivel_significancia, grados_libertad)
umbral_aceptacion
## [1] 5.991465
Decision_Chi <- ifelse(
x2 < umbral_aceptacion,
"SE ACEPTA el modelo UNIFORME",
"SE RECHAZA el modelo UNIFORME"
)
Decision_Chi
## [1] "SE ACEPTA el modelo UNIFORME"
10.2.9 Gráfica de probabilidad – Modelo exponencial
# Parámetros uniforme
a <- -60
b <- 30
x_uni <- seq(a, b, length.out = 500)
y_uni <- dunif(x_uni, min = a, max = b)
plot(
x_uni, y_uni,
type = "l",
lwd = 2,
col = "blue3",
main = "Gráfica 14: Cálculo de probabilidades – Modelo uniforme
de la variable Longitud entre (−60° a 30°) a nivel mundial",
xlab = "Longitude (°)",
ylab = "Densidad de probabilidad"
)
# Intervalo de probabilidad (ejemplo)
x_sec <- seq(-30, 0, by = 0.1)
y_sec <- dunif(x_sec, min = a, max = b)
polygon(
c(x_sec, rev(x_sec)),
c(y_sec, rep(0, length(y_sec))),
col = rgb(1, 0, 0, 0.5),
border = NA
)
lines(x_sec, y_sec, col = "red", lwd = 2)
legend(
"topright",
legend = c("Modelo uniforme", "Área de probabilidad"),
col = c("blue3", "red"),
lwd = 2,
bty = "n"
)

# Parámetros
a <- -60
b <- 30
# Probabilidad (Uniforme)
P_uni <- punif(0, min = a, max = b) -
punif(-30, min = a, max = b)
# Porcentaje
P_uni_pct <- P_uni * 100
P_uni
## [1] 0.3333333
P_uni_pct
## [1] 33.33333
10.2.10 CÁLCULO DE PROBABILIDAD
¿Cuál es la probabilidad de que un evento ocurra en una longitud
entre −30° y 0°?
# El cálculo ya fue realizado en el paso 10.2.9 como 'P_uni_pct'
x_lon2 <- round(P_uni_pct, 1)
print(paste("La probabilidad es de:", x_lon2, "%"))
## [1] "La probabilidad es de: 33.3 %"
10.2.11 Tablas de Resumen Estadístico (Agrupación 2 - Longitud)
# --- PREPARACIÓN DE DATOS ---
# Usamos las variables calculadas en los pasos 10.2.1 y 10.2.5 a 10.2.8
n_lon2 <- n
media_lon2 <- mean(lon_60_30)
sd_lon2 <- sd(lon_60_30)
# --- 1. TABLA N° 13: RESUMEN DEL TEST DE BONDAD AL MODELO ---
tabla_resumen_lon_uni <- data.frame(
Variable = "Longitud (−60° a 30°)",
Pearson = Correlacion_Pearson,
Chi_cuadrado = x2,
Umbral = umbral_aceptacion
)
tabla_gt_bondad_lon2 <- tabla_resumen_lon_uni %>%
gt() %>%
tab_header(
title = md("**Tabla N° 13**"),
subtitle = md("Resumen del test de bondad al modelo Uniforme")
) %>%
cols_label(
Variable = "Variable",
Pearson = "Test de Pearson (%)",
Chi_cuadrado = "Chi-cuadrado (f. relativa)",
Umbral = "Umbral de aceptación"
) %>%
fmt_number(columns = Pearson, decimals = 2) %>%
fmt_number(columns = c(Chi_cuadrado, Umbral), decimals = 4) %>%
tab_source_note(source_note = md("Elaborado por: Grupo 2 – Carrera de Geología"))
tabla_gt_bondad_lon2
| Tabla N° 13 |
| Resumen del test de bondad al modelo Uniforme |
| Variable |
Test de Pearson (%) |
Chi-cuadrado (f. relativa) |
Umbral de aceptación |
| Longitud (−60° a 30°) |
98.56 |
2.3224 |
5.9915 |
| Elaborado por: Grupo 2 – Carrera de Geología |
# --- 2. TABLA N° 14: TEOREMA DEL LÍMITE CENTRAL ---
error_estandar_lon2 <- sd_lon2 / sqrt(n_lon2)
limit_inf_lon2 <- media_lon2 - 1.96 * error_estandar_lon2
limit_sup_lon2 <- media_lon2 + 1.96 * error_estandar_lon2
tabla_media_lon_uni <- data.frame(
Limite_inf = limit_inf_lon2,
Variable = "Longitud (−60° a 30°)",
Limite_sup = limit_sup_lon2,
Error_estandar = error_estandar_lon2
)
tabla_gt_limite_lon2 <- tabla_media_lon_uni %>%
gt() %>%
tab_header(
title = md("**Tabla N° 14**"),
subtitle = md("Cálculo del Error Estándar para el Modelo Uniforme")
) %>%
cols_label(
Limite_inf = "Límite inferior",
Variable = "Variable",
Limite_sup = "Límite superior",
Error_estandar = "Error estándar"
) %>%
fmt_number(columns = everything(), decimals = 2) %>%
tab_source_note(source_note = md("Elaborado por: Grupo 2 – Carrera de Geología"))
tabla_gt_limite_lon2
| Tabla N° 14 |
| Cálculo del Error Estándar para el Modelo Uniforme |
| Límite inferior |
Variable |
Límite superior |
Error estándar |
| −9.33 |
Longitud (−60° a 30°) |
−6.21 |
0.80 |
| Elaborado por: Grupo 2 – Carrera de Geología |
10.2.12 Conclusión
La variable LONGITUD entre (−60° a 30°) sigue un
modelo de probabilidad uniforme, aprobando los test de Pearson (98.56%)
y Chi-cuadrado (2.3224) con un umbral de aceptación de 5.9915. De esta
manera, se pueden calcular probabilidades; por ejemplo, la probabilidad
de que un evento ocurra en una longitud comprendida entre −30° y 0° es
del 33.3%. Además, mediante el teorema del límite central, se determina
que la media aritmética poblacional se encuentra entre −9.33° y −6.21°,
con un error estándar de 0.80.
10.3 Agrupación 3: Longitud (>30°) – Modelo Gamma
10.3.1 Filtrado de datos
lon_30_max <- longitude[longitude > 30]
n <- length(lon_30_max)
10.3.2 Intervalos
ancho_clase <- 30
max_lon <- ceiling(max(lon_30_max) / ancho_clase) * ancho_clase
Li_30_max <- seq(30, max_lon - ancho_clase, by = ancho_clase)
LS_30_max <- Li_30_max + ancho_clase
MC_30_max <- (Li_30_max + LS_30_max) / 2
k_30_max <- length(Li_30_max)
breaks_lon <- c(Li_30_max, max_lon)
10.3.3 Frecuencias
ni_30_max <- numeric(k_30_max)
for (i in 1:k_30_max) {
if (i < k_30_max) {
ni_30_max[i] <- sum(lon_30_max >= Li_30_max[i] & lon_30_max < LS_30_max[i])
} else {
ni_30_max[i] <- sum(lon_30_max >= Li_30_max[i] & lon_30_max <= max_lon)
}
}
Fo_abs <- ni_30_max
10.3.4 Tabla de frecuencias
hi_30_max <- (Fo_abs / sum(Fo_abs)) * 100
NI_30_max <- cumsum(Fo_abs)
NID_30_max <- rev(cumsum(rev(Fo_abs)))
HI_30_max <- cumsum(hi_30_max)
HID_30_max <- rev(cumsum(rev(hi_30_max)))
Tabla_30_max <- data.frame(
Li = Li_30_max,
LS = LS_30_max,
MC = MC_30_max,
ni = Fo_abs,
hi = round(hi_30_max, 2),
NI = NI_30_max,
NID = NID_30_max,
HI = round(HI_30_max, 2),
HID = round(HID_30_max, 2)
)
tabla_gt_30_max <- Tabla_30_max %>%
gt() %>%
tab_header(
title = md("**Tabla N° 15**"),
subtitle = md("Distribución de frecuencias de la
variable Longitud (>30°) a nivel mundial")
) %>%
fmt_number(columns = c(hi, HI, HID), decimals = 2) %>%
tab_source_note(
source_note = md("Autor: Grupo Geología")
)
tabla_gt_30_max
| Tabla N° 15 |
| Distribución de frecuencias de la
variable Longitud (>30°) a nivel mundial |
| Li |
LS |
MC |
ni |
hi |
NI |
NID |
HI |
HID |
| 30 |
60 |
45 |
279 |
5.14 |
279 |
5428 |
5.14 |
100.00 |
| 60 |
90 |
75 |
2034 |
37.47 |
2313 |
5149 |
42.61 |
94.86 |
| 90 |
120 |
105 |
1784 |
32.87 |
4097 |
3115 |
75.48 |
57.39 |
| 120 |
150 |
135 |
1083 |
19.95 |
5180 |
1331 |
95.43 |
24.52 |
| 150 |
180 |
165 |
248 |
4.57 |
5428 |
248 |
100.00 |
4.57 |
| Autor: Grupo Geología |
10.3.5 Histograma y ajuste del modelo gamma
x_gamma_data <- lon_30_max - 30
media_g <- mean(x_gamma_data)
var_g <- var(x_gamma_data)
shape_hat <- media_g^2 / var_g
rate_hat <- media_g / var_g
x_gamma <- seq(min(x_gamma_data), max(x_gamma_data), length.out = 500)
y_gamma <- dgamma(x_gamma, shape = shape_hat, rate = rate_hat)
# Escalado correcto a frecuencias absolutas
y_gamma <- y_gamma * ancho_clase * sum(Fo_abs)
y_max <- max(c(Fo_abs, y_gamma)) * 1.30 # 👈 SOLO ESTO SE CAMBIA
hist(
lon_30_max,
breaks = breaks_lon,
freq = TRUE,
col = "grey",
border = "black",
ylim = c(0, y_max),
main = "Gráfica 15: Modelo de probabilidad gamma de la variable Longitud
entre (>30°) a nivel mundial",
xlab = "Longitude (°)",
ylab = "Densidad de probabilidad"
)
# Curva gamma (MISMA curva, mismos valores)
lines(x_gamma + 30, y_gamma, col = "red", lwd = 2)
legend(
"topright",
legend = c("Histograma", "Modelo Gamma"),
col = c("grey", "red"),
lwd = c(10, 2),
bty = "n"
)

10.3.6 Cálculo de frecuencias esperadas
P <- numeric(k_30_max)
for (i in 1:k_30_max) {
P[i] <- pgamma(LS_30_max[i] - 30, shape_hat, rate_hat) -
pgamma(Li_30_max[i] - 30, shape_hat, rate_hat)
}
P <- P / sum(P)
Fe_abs <- P * sum(Fo_abs)
# Frecuencias observadas absolutas (desde la tabla)
Fo_abs <- ni_30_max
# Eliminar clases con frecuencia esperada nula (condición estadística)
validos <- which(Fe_abs > 0 & Fo_abs > 0)
Fo_val <- Fo_abs[validos]
Fe_val <- Fe_abs[validos]
10.3.7 Gráfica de evaluación entre Frecuencia observada y Frecuencia
relativa (Test de Pearson)
pearson_r <- cor(Fo_val, Fe_val, method = "pearson")
pearson_pct <- pearson_r * 100
plot(
Fo_val, Fe_val,
main = "Gráfica 16: Correlación entre Frecuencia observada y Frecuencia
relativa del Modelo gamma de la variable Longitud
(>30°) a nivel mundial",
xlab = "Frecuencia observada (Fo)",
ylab = "Frecuencia esperada (Fe)",
pch = 19,
col = "blue3"
)
abline(lm(Fe_val ~ Fo_val), col = "red", lwd = 2)

Correlacion_Pearson <- pearson_pct
Correlacion_Pearson
## [1] 98.35356
10.3.8 Prueba de Chi-cuadrado
nivel_significancia <- 0.05
# Frecuencias porcentuales
Fo <- (Fo_val / sum(Fo_val)) * 100
Fe <- (Fe_val / sum(Fe_val)) * 100
# Estadístico Chi-cuadrado
x2 <- sum((Fo - Fe)^2 / Fe)
# Grados de libertad
# gl = k - p - 1 (p = 2 parámetros Gamma: shape y rate)
k <- length(Fo)
p <- 2
grados_libertad <- k - p - 1
# Valor crítico
umbral_aceptacion <- qchisq(1 - nivel_significancia, grados_libertad)
# Decisión
Decision_Chi <- ifelse(
x2 < umbral_aceptacion,
"SE ACEPTA el modelo GAMMA",
"SE RECHAZA el modelo GAMMA"
)
# Resultados
x2
## [1] 2.155173
grados_libertad
## [1] 2
umbral_aceptacion
## [1] 5.991465
Decision_Chi
## [1] "SE ACEPTA el modelo GAMMA"
10.3.9 Gráfica de probabilidad – Modelo exponencial
# Dominio desplazado (Gamma definida para x > 0)
x_gamma <- seq(0, max(lon_30_max) - 30, length.out = 500)
# Densidad Gamma
y_gamma <- dgamma(x_gamma, shape = shape_hat, rate = rate_hat)
# Transformación al dominio real
x_plot <- x_gamma + 30
plot(
x_plot, y_gamma,
type = "l",
lwd = 2,
col = "blue3",
main = "Gráfica 17: Cálculo de probabilidades – Modelo gamma
de la variable Longitud (>30°) a nivel mundial",
xlab = "Longitude (°)",
ylab = "Densidad de probabilidad"
)
# Intervalo de probabilidad (ejemplo)
x_sec <- seq(60, 120, by = 0.5)
x_sec_gamma <- x_sec - 30
y_sec <- dgamma(x_sec_gamma, shape = shape_hat, rate = rate_hat)
polygon(
c(x_sec, rev(x_sec)),
c(y_sec, rep(0, length(y_sec))),
col = rgb(1, 0, 0, 0.5),
border = NA
)
lines(x_sec, y_sec, col = "red", lwd = 2)
legend(
"topright",
legend = c("Modelo Gamma", "Área de probabilidad"),
col = c("blue3", "red"),
lwd = 2,
bty = "n"
)

# Transformación
x1 <- 60 - 30
x2 <- 120 - 30
# Probabilidad (Gamma)
P_gamma <- pgamma(x2, shape = shape_hat, rate = rate_hat) -
pgamma(x1, shape = shape_hat, rate = rate_hat)
# Porcentaje
P_gamma_pct <- P_gamma * 100
P_gamma
## [1] 0.7518324
P_gamma_pct
## [1] 75.18324
10.3.10 CÁLCULO DE PROBABILIDAD
¿Cuál es la probabilidad de que un evento ocurra en una longitud
entre 60° y 120°?
# El cálculo ya fue realizado en el paso 10.3.9 como 'P_gamma_pct'
x_lon3 <- round(P_gamma_pct, 1)
print(paste("La probabilidad es de:", x_lon3, "%"))
## [1] "La probabilidad es de: 75.2 %"
10.3.11 Tablas de Resumen Estadístico (Agrupación 3 - Longitud)
# --- PREPARACIÓN DE DATOS ---
# Usamos las variables calculadas en los pasos 10.3.1 y 10.3.5 a 10.3.8
n_lon3 <- n
media_lon3 <- mean(lon_30_max)
sd_lon3 <- sd(lon_30_max)
# --- 1. TABLA N° 16: RESUMEN DEL TEST DE BONDAD AL MODELO ---
tabla_resumen_lon_gamma <- data.frame(
Variable = "Longitud (>30°)",
Pearson = Correlacion_Pearson,
Chi_cuadrado = x2,
Umbral = umbral_aceptacion
)
tabla_gt_bondad_lon3 <- tabla_resumen_lon_gamma %>%
gt() %>%
tab_header(
title = md("**Tabla N° 16**"),
subtitle = md("Resumen del test de bondad al modelo Gamma")
) %>%
cols_label(
Variable = "Variable",
Pearson = "Test de Pearson (%)",
Chi_cuadrado = "Chi-cuadrado (f. relativa)",
Umbral = "Umbral de aceptación"
) %>%
fmt_number(columns = Pearson, decimals = 2) %>%
fmt_number(columns = c(Chi_cuadrado, Umbral), decimals = 4) %>%
tab_source_note(source_note = md("Elaborado por: Grupo 2 – Carrera de Geología"))
tabla_gt_bondad_lon3
| Tabla N° 16 |
| Resumen del test de bondad al modelo Gamma |
| Variable |
Test de Pearson (%) |
Chi-cuadrado (f. relativa) |
Umbral de aceptación |
| Longitud (>30°) |
98.35 |
90.0000 |
5.9915 |
| Elaborado por: Grupo 2 – Carrera de Geología |
# --- 2. TABLA N° 17: TEOREMA DEL LÍMITE CENTRAL ---
error_estandar_lon3 <- sd_lon3 / sqrt(n_lon3)
limit_inf_lon3 <- media_lon3 - 1.96 * error_estandar_lon3
limit_sup_lon3 <- media_lon3 + 1.96 * error_estandar_lon3
tabla_media_lon_gamma <- data.frame(
Limite_inf = limit_inf_lon3,
Variable = "Longitud (>30°)",
Limite_sup = limit_sup_lon3,
Error_estandar = error_estandar_lon3
)
tabla_gt_limite_lon3 <- tabla_media_lon_gamma %>%
gt() %>%
tab_header(
title = md("**Tabla N° 17**"),
subtitle = md("Cálculo del Error Estándar para el Modelo Gamma")
) %>%
cols_label(
Limite_inf = "Límite inferior",
Variable = "Variable",
Limite_sup = "Límite superior",
Error_estandar = "Error estándar"
) %>%
fmt_number(columns = everything(), decimals = 2) %>%
tab_source_note(source_note = md("Elaborado por: Grupo 2 – Carrera de Geología"))
tabla_gt_limite_lon3
| Tabla N° 17 |
| Cálculo del Error Estándar para el Modelo Gamma |
| Límite inferior |
Variable |
Límite superior |
Error estándar |
| 97.76 |
Longitud (>30°) |
99.23 |
0.37 |
| Elaborado por: Grupo 2 – Carrera de Geología |
10.3.12 Conclusión
La variable LONGITUD para valores mayores a 30°
sigue un modelo de probabilidad gamma, aceptado según
el test de Pearson (98.35%) y el criterio de Chi-cuadrado, con un umbral
de aceptación de 5.9915. A partir de este modelo, se pueden estimar
probabilidades; por ejemplo, la probabilidad de que un evento ocurra en
una longitud comprendida entre 60° y 120° es del 75.2%. Además, mediante
el teorema del límite central, se establece que la media aritmética
poblacional se encuentra entre −97.76° y 99.23°, con un error estándar
de 0.37.