library(readr); library(dplyr); library(gt); library(MASS)
cat("Librerías cargadas correctamente.\n")
## Librerías cargadas correctamente.
ruta_csv <- file.choose()
datos <- read_csv(ruta_csv, show_col_types = FALSE)
cat("Archivo:", basename(ruta_csv), "| Filas:", nrow(datos), "\n")
## Archivo: oil_and_gas_leases_data .csv | Filas: 47757
x_raw <- datos %>%
mutate(TWP = suppressWarnings(as.integer(TOWNSHIP))) %>%
filter(!is.na(TWP), TWP >= 1, TWP <= 35) %>%
pull(TWP)
n_conteo <- length(x_raw)
k_sturges <- ceiling(1 + 3.322 * log10(n_conteo))
cat("Observaciones válidas:", n_conteo, "\n")
## Observaciones válidas: 47757
cat("Clases (Regla de Sturges):", k_sturges, "\n")
## Clases (Regla de Sturges): 17
cat("Mínimo:", min(x_raw), "| Máximo:", max(x_raw), "\n")
## Mínimo: 1 | Máximo: 35
intervalos_cut <- cut(x, breaks = breaks_vec, right = FALSE, include.lowest = TRUE)
freq_abs <- as.integer(table(intervalos_cut))
hi_dec <- freq_abs / n
Ni_asc <- cumsum(freq_abs); Hi_asc <- cumsum(hi_dec)
Ni_desc <- n - c(0, head(Ni_asc,-1)); Hi_desc <- 1 - c(0, head(Hi_asc,-1))
etiq <- paste0("[", lim_inf, " - ", lim_sup, ")")
etiq[k] <- paste0("[", lim_inf[k], " - ", lim_sup[k]-1, "]")
bind_rows(
data.frame(Intervalo=etiq, MC=as.integer(mc), ni=freq_abs,
hi_pct=round(hi_dec*100,2), hi_real=round(hi_dec,4),
Ni_a=Ni_asc, Hi_a=round(Hi_asc,4),
Ni_d=Ni_desc, Hi_d=round(Hi_desc,4), stringsAsFactors=FALSE),
data.frame(Intervalo="TOTAL", MC=NA_integer_, ni=sum(freq_abs),
hi_pct=round(sum(hi_dec)*100,2), hi_real=round(sum(hi_dec),4),
Ni_a=max(Ni_asc), Hi_a=round(max(Hi_asc),4),
Ni_d=max(Ni_desc), Hi_d=round(max(Hi_desc),4), stringsAsFactors=FALSE)
) %>%
gt() %>%
tab_header(title = md("**Tabla N\u00b01: Distribución de Frecuencias**"),
subtitle = md(paste0("*Variable Cuantitativa Discreta Agrupada: Township, ",
"Kansas (n = ", format(n, big.mark=","), ")*"))) %>%
cols_label(Intervalo=md("**Intervalo**"), MC=md("**MC**"), ni=md("**ni**"),
hi_pct=md("**hi%**"), hi_real=md("**hi**"),
Ni_a=md("**Ni (asc)**"), Hi_a=md("**Hi (asc)**"),
Ni_d=md("**Ni (desc)**"), Hi_d=md("**Hi (desc)**")) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_column_labels()) %>%
tab_style(style=cell_fill(color="#F5F5F5"), locations=cells_body(rows=seq(1,k+1,by=2))) %>%
tab_style(style=list(cell_fill(color="#D6D6D6"),cell_text(weight="bold")),
locations=cells_body(rows=Intervalo=="TOTAL")) %>%
fmt_missing(columns=everything(), missing_text="-") %>%
tab_source_note(source_note=md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(table.width=pct(100), table.font.size=px(13), data_row.padding=px(6))
| Tabla N°1: Distribución de Frecuencias | ||||||||
| Variable Cuantitativa Discreta Agrupada: Township, Kansas (n = 47,757) | ||||||||
| Intervalo | MC | ni | hi% | hi | Ni (asc) | Hi (asc) | Ni (desc) | Hi (desc) |
|---|---|---|---|---|---|---|---|---|
| [1 - 5) | 3 | 1299 | 2.72 | 0.0272 | 1299 | 0.0272 | 47757 | 1.0000 |
| [5 - 9) | 7 | 1700 | 3.56 | 0.0356 | 2999 | 0.0628 | 46458 | 0.9728 |
| [9 - 13) | 11 | 3292 | 6.89 | 0.0689 | 6291 | 0.1317 | 44758 | 0.9372 |
| [13 - 17) | 15 | 5190 | 10.87 | 0.1087 | 11481 | 0.2404 | 41466 | 0.8683 |
| [17 - 21) | 19 | 6084 | 12.74 | 0.1274 | 17565 | 0.3678 | 36276 | 0.7596 |
| [21 - 25) | 23 | 5826 | 12.20 | 0.1220 | 23391 | 0.4898 | 30192 | 0.6322 |
| [25 - 29) | 27 | 6449 | 13.50 | 0.1350 | 29840 | 0.6248 | 24366 | 0.5102 |
| [29 - 33) | 31 | 10227 | 21.41 | 0.2141 | 40067 | 0.8390 | 17917 | 0.3752 |
| [33 - 35] | 34 | 7690 | 16.10 | 0.1610 | 47757 | 1.0000 | 7690 | 0.1610 |
| TOTAL | - | 47757 | 100.00 | 1.0000 | 47757 | 1.0000 | 47757 | 1.0000 |
| Autor: Leslye Quinchiguango | ||||||||
grises <- gray(seq(0.25, 0.80, length.out=k))
h_obj <- hist(x, breaks=breaks_vec, plot=FALSE)
h_obj$density <- hi_dec
par(mar=c(5,6,6,2))
plot(h_obj, col=grises, border="black", freq=FALSE,
main="", xlab="", ylab="", las=1, xaxt="n")
axis(1, at=breaks_vec, labels=breaks_vec, las=1, cex.axis=0.9)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Township", side=1, line=3.5, cex=1)
mtext("Histograma General \u2014 Township, arrendamientos de hidrocarburos, Kansas, EE.UU.",
side=3, line=3, cex=0.95, font=2)
El histograma de la variable Township muestra un comportamiento claramente diferenciado en dos tramos:
Zona 1 — Township [1, 21): las frecuencias crecen progresivamente de izquierda a derecha, describiendo una forma de ascenso continuo. Este crecimiento es equivalente, en espejo, al decaimiento característico de una distribución Exponencial. Para aplicar este modelo, los datos de la zona se invierten mediante la transformación \(x' = \text{corte} - x\), convirtiendo el crecimiento observado en el decaimiento que la Exponencial modela de forma natural. Todos los intervalos de esta zona son representativos y se conservan en el ajuste. Los parámetros se estiman exclusivamente con los datos de esta zona transformada.
Zona 2 — Township [21, 36]: las frecuencias alcanzan su pico en el intervalo [29, 33) y descienden al final, describiendo una forma acampanada compatible con una distribución Normal. Todos los intervalos de esta zona son representativos y se conservan. Los parámetros se estiman exclusivamente con los datos de esta zona.
Se trabaja con dos zonas con corte fijo en 21.
set.seed(42)
lbl <- c(normal="Normal", lognormal="Log-Normal", exponential="Exponencial")
corte_z <- 21
lim_z1_min <- x_min; lim_z1_max <- corte_z
lim_z2_min <- corte_z; lim_z2_max <- x_max
x_z1 <- x[x >= lim_z1_min & x < corte_z]
x_z2 <- x[x >= corte_z & x <= lim_z2_max]
# ── Zona 1: Exponencial sobre datos invertidos ────────────────────────────────
x_z1_inv <- corte_z - x_z1
offset_z1 <- min(x_z1_inv) - 0.001
x_z1_pos <- x_z1_inv - offset_z1
fit_z1 <- fitdistr(x_z1_pos, "exponential")
rate_z1 <- fit_z1$estimate["rate"]
# ── Zona 2: Normal ────────────────────────────────────────────────────────────
fit_z2 <- fitdistr(x_z2, "normal")
mu_z2 <- fit_z2$estimate["mean"]
sd_z2 <- fit_z2$estimate["sd"]
cat("Zona 1 [", lim_z1_min, ",", corte_z, ") \u2014 n:", length(x_z1), "\n")
## Zona 1 [ 1 , 21 ) — n: 17565
cat("rate (\u03bb\u0302) :", round(rate_z1, 6), "| offset:", round(offset_z1, 4), "\n")
## rate (λ̂) : 0.155405 | offset: 0.999
cat("\nZona 2 [", corte_z, ",", lim_z2_max, "] \u2014 n:", length(x_z2), "\n")
##
## Zona 2 [ 21 , 35 ] — n: 30192
cat("\u03bc\u0302 (media) :", round(mu_z2, 4), "| \u03c3\u0302 (desv.):", round(sd_z2, 4), "\n")
## μ̂ (media) : 28.9796 | σ̂ (desv.): 4.1084
h_plot <- hist(x, breaks=breaks_vec, plot=FALSE)
h_plot$density <- hi_dec
colores_zona <- ifelse(breaks_vec[-length(breaks_vec)] < corte_z, "gray35", "gray70")
par(mar=c(5,6,6,2))
plot(h_plot, col=colores_zona, border="black", freq=FALSE,
main="", xlab="", ylab="", las=1, xaxt="n")
axis(1, at=breaks_vec, labels=breaks_vec, las=1, cex.axis=0.9)
abline(v=corte_z, col="black", lty=2, lwd=2)
yt <- max(hi_dec)
text(mean(c(lim_z1_min, corte_z)), yt * 0.75,
paste0("Zona 1\n[", lim_z1_min, " \u2013 ", corte_z,
")\nExponencial\n(invertida)"), cex=0.82, font=2)
text(mean(c(corte_z, lim_z2_max)), yt * 0.75,
paste0("Zona 2\n[", corte_z, " \u2013 ", lim_z2_max, "]\nNormal"),
cex=0.82, font=2)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Township", side=1, line=3.5, cex=1)
mtext(paste0("Corte en Township = ", corte_z,
" \u2014 Zona 1: Exponencial (invertida) | Zona 2: Normal \u2014 Kansas, EE.UU."),
side=3, line=3, cex=0.9, font=2)
par(mfrow=c(2,1))
# ── Zona 1: Exponencial invertida ─────────────────────────────────────────────
breaks_z1 <- seq(lim_z1_min, corte_z, by=c_amp)
if (tail(breaks_z1,1) < corte_z) breaks_z1 <- c(breaks_z1, corte_z)
h_z1 <- hist(x_z1, breaks=breaks_z1, plot=FALSE)
hi_z1 <- h_z1$counts / length(x_z1)
dens_z1 <- hi_z1 / diff(breaks_z1)
h_z1$density <- dens_z1
k_z1 <- length(hi_z1)
grises_z1 <- gray(seq(0.20, 0.60, length.out=k_z1))
xs_z1 <- seq(lim_z1_min, corte_z, length.out=500)
xs_inv <- corte_z - xs_z1
xs_pos <- xs_inv - offset_z1; xs_pos[xs_pos <= 0] <- 1e-9
ys_z1 <- dexp(xs_pos, rate=rate_z1)
par(mar=c(5,6,6,2))
plot(h_z1, col=grises_z1, border="black", freq=FALSE,
ylim=c(0, max(c(dens_z1, ys_z1)) * 1.25),
main="", xlab="", ylab="", las=1, xaxt="n")
axis(1, at=breaks_z1, labels=breaks_z1, las=1, cex.axis=0.9)
lines(xs_z1, ys_z1, col="black", lwd=2.5)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Township", side=1, line=3.5, cex=1)
mtext(paste0("Gráfica N\u00b02: Zona 1 [", lim_z1_min, " \u2013 ", corte_z,
") \u2014 Exponencial invertida (\u03bb\u0302 = ", round(rate_z1,4), ")"),
side=3, line=3, cex=0.9, font=2)
legend("topleft",
legend=c("Histograma",
paste0("Exponencial invertida (\u03bb\u0302=", round(rate_z1,4), ")")),
fill=c("gray40",NA), border=c("black",NA),
lty=c(NA,1), lwd=c(NA,2.5), bty="n", cex=0.85)
# ── Zona 2: Normal ────────────────────────────────────────────────────────────
breaks_z2 <- seq(lim_z2_min, lim_z2_max + 1, by=c_amp)
if (tail(breaks_z2,1) <= lim_z2_max) breaks_z2 <- c(breaks_z2, lim_z2_max + 1)
h_z2 <- hist(x_z2, breaks=breaks_z2, plot=FALSE)
hi_z2 <- h_z2$counts / length(x_z2)
dens_z2 <- hi_z2 / diff(breaks_z2)
h_z2$density <- dens_z2
k_z2 <- length(hi_z2)
grises_z2 <- gray(seq(0.40, 0.85, length.out=k_z2))
xs_z2 <- seq(lim_z2_min - 0.5, lim_z2_max + 0.5, length.out=500)
ys_z2 <- dnorm(xs_z2, mean=mu_z2, sd=sd_z2)
par(mar=c(5,6,6,2))
plot(h_z2, col=grises_z2, border="black", freq=FALSE,
ylim=c(0, max(c(dens_z2, ys_z2)) * 1.25),
main="", xlab="", ylab="", las=1, xaxt="n")
axis(1, at=breaks_z2, labels=breaks_z2, las=1, cex.axis=0.9)
lines(xs_z2, ys_z2, col="black", lwd=2.5)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Township", side=1, line=3.5, cex=1)
mtext(paste0("Gráfica N\u00b03: Zona 2 [", corte_z, " \u2013 ", lim_z2_max,
"] \u2014 Normal (\u03bc\u0302 = ", round(mu_z2,2),
", \u03c3\u0302 = ", round(sd_z2,2), ")"),
side=3, line=3, cex=0.9, font=2)
legend("topleft",
legend=c("Histograma",
paste0("Normal(\u03bc\u0302=", round(mu_z2,2),
", \u03c3\u0302=", round(sd_z2,2), ")")),
fill=c("gray65",NA), border=c("black",NA),
lty=c(NA,1), lwd=c(NA,2.5), bty="n", cex=0.85)
par(mfrow=c(1,1))
n_z1 <- length(x_z1)
n_z2 <- length(x_z2)
media_z1 <- mean(x_z1)
sd_z1_calc <- sd(x_z1)
media_z2 <- mean(x_z2)
sd_z2_calc <- sd(x_z2)
media_teo_z1 <- corte_z - (offset_z1 + 1 / rate_z1)
data.frame(
Zona = c(
rep("Zona 1 [1, 21) \u2014 Exponencial invertida", 4),
rep("Zona 2 [21, 36] \u2014 Normal", 4)
),
Parametro = c(
"n (observaciones zona)",
"Media observada zona",
"\u03bb\u0302 = rate (MV sobre datos invertidos)",
"Offset (min invertido \u2212 0.001)",
"n (observaciones zona)",
"Media observada zona",
"\u03bc\u0302 = media zona",
"\u03c3\u0302 = desv. estándar zona"
),
Valor = c(
as.character(n_z1),
round(media_z1, 4),
round(rate_z1, 6),
round(offset_z1, 4),
as.character(n_z2),
round(media_z2, 4),
round(mu_z2, 4),
round(sd_z2, 4)
)
) %>%
gt() %>%
tab_header(
title = md("**Tabla N\u00b02: Parámetros Estimados por Zona**"),
subtitle = md("*Zona 1: Exponencial invertida | Zona 2: Normal \u2014 Variable Township*")
) %>%
cols_label(Zona=md("**Zona**"), Parametro=md("**Parámetro**"), Valor=md("**Valor**")) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_column_labels()) %>%
tab_style(style=cell_fill(color="#F5F5F5"),
locations=cells_body(rows=seq(1,8,by=2))) %>%
tab_source_note(source_note=md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(table.width=pct(92), heading.title.font.size=px(15),
heading.subtitle.font.size=px(11), table.font.size=px(13),
data_row.padding=px(6))
| Tabla N°2: Parámetros Estimados por Zona | ||
| Zona 1: Exponencial invertida | Zona 2: Normal — Variable Township | ||
| Zona | Parámetro | Valor |
|---|---|---|
| Zona 1 [1, 21) — Exponencial invertida | n (observaciones zona) | 17565 |
| Zona 1 [1, 21) — Exponencial invertida | Media observada zona | 13.5662 |
| Zona 1 [1, 21) — Exponencial invertida | λ̂ = rate (MV sobre datos invertidos) | 0.155405 |
| Zona 1 [1, 21) — Exponencial invertida | Offset (min invertido − 0.001) | 0.999 |
| Zona 2 [21, 36] — Normal | n (observaciones zona) | 30192 |
| Zona 2 [21, 36] — Normal | Media observada zona | 28.9796 |
| Zona 2 [21, 36] — Normal | μ̂ = media zona | 28.9796 |
| Zona 2 [21, 36] — Normal | σ̂ = desv. estándar zona | 4.1084 |
| Autor: Leslye Quinchiguango | ||
# ── Zona 1: Exponencial invertida ─────────────────────────────────────────────
# P(X > 5): probabilidad de que el township supere 5 en la zona 1
# En espacio invertido: P(X > 5) = P(x' < corte - 5) = P(x' < 16)
p1_a <- pexp(corte_z - 5 - offset_z1, rate=rate_z1)
# P(9 ≤ X < 17): intervalo central de la zona 1
# En espacio invertido: [corte-17, corte-9) = [4, 12)
p1_b <- pexp(corte_z - 9 - offset_z1, rate=rate_z1) -
pexp(corte_z - 17 - offset_z1, rate=rate_z1)
# P(X < 5): townships muy bajos en zona 1
# En espacio invertido: P(x' > corte - 5) = P(x' > 16)
p1_c <- pexp(corte_z - 5 - offset_z1, rate=rate_z1, lower.tail=FALSE)
# ── Zona 2: Normal(mu_z2, sd_z2) ─────────────────────────────────────────────
p2_a <- pnorm(29, mean=mu_z2, sd=sd_z2, lower.tail=FALSE) # P(X ≥ 29): zona del pico
p2_b <- pnorm(33, mean=mu_z2, sd=sd_z2) -
pnorm(25, mean=mu_z2, sd=sd_z2) # P(25 ≤ X < 33)
p2_c <- pnorm(25, mean=mu_z2, sd=sd_z2) # P(X < 25)
data.frame(
Zona = c(rep("Zona 1 \u2014 Exponencial invertida", 3),
rep("Zona 2 \u2014 Normal", 3)),
Evento = c(
"P(X > 5)", "P(9 \u2264 X < 17)", "P(X < 5)",
"P(X \u2265 29)", "P(25 \u2264 X < 33)", "P(X < 25)"
),
Descripcion = c(
"Township supera el valor 5 en la Zona 1",
"Township en el tramo central de la Zona 1",
"Township muy bajo dentro de la Zona 1",
"Township en la zona de mayor concentración",
"Township en el intervalo de pico y adyacente",
"Township por debajo del centro de la Zona 2"
),
Probabilidad = round(c(p1_a, p1_b, p1_c, p2_a, p2_b, p2_c), 4)
) %>%
gt() %>%
tab_header(
title = md("**Tabla N\u00b03: Cálculo de Probabilidades por Zona**"),
subtitle = md("*La probabilidad es el área bajo la curva del modelo teórico \u2014 Variable Township*")
) %>%
cols_label(Zona=md("**Zona**"), Evento=md("**Evento**"),
Descripcion=md("**Descripción**"), Probabilidad=md("**Probabilidad**")) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_column_labels()) %>%
tab_style(style=cell_fill(color="#F5F5F5"),
locations=cells_body(rows=seq(1,6,by=2))) %>%
tab_source_note(source_note=md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(table.width=pct(95), table.font.size=px(13),
heading.title.font.size=px(15), heading.subtitle.font.size=px(11),
data_row.padding=px(6))
| Tabla N°3: Cálculo de Probabilidades por Zona | |||
| La probabilidad es el área bajo la curva del modelo teórico — Variable Township | |||
| Zona | Evento | Descripción | Probabilidad |
|---|---|---|---|
| Zona 1 — Exponencial invertida | P(X > 5) | Township supera el valor 5 en la Zona 1 | 0.9028 |
| Zona 1 — Exponencial invertida | P(9 ≤ X < 17) | Township en el tramo central de la Zona 1 | 0.4463 |
| Zona 1 — Exponencial invertida | P(X < 5) | Township muy bajo dentro de la Zona 1 | 0.0972 |
| Zona 2 — Normal | P(X ≥ 29) | Township en la zona de mayor concentración | 0.4980 |
| Zona 2 — Normal | P(25 ≤ X < 33) | Township en el intervalo de pico y adyacente | 0.6697 |
| Zona 2 — Normal | P(X < 25) | Township por debajo del centro de la Zona 2 | 0.1664 |
| Autor: Leslye Quinchiguango | |||
set.seed(42)
# ── Pearson Zona 1 ────────────────────────────────────────────────────────────
mc_z1 <- (head(breaks_z1,-1) + tail(breaks_z1,-1)) / 2
mc_z1_inv <- corte_z - mc_z1 - offset_z1
mc_z1_inv[mc_z1_inv <= 0] <- 1e-9
hi_teo_z1 <- dexp(mc_z1_inv, rate=rate_z1) * diff(breaks_z1)
hi_teo_z1 <- hi_teo_z1 / sum(hi_teo_z1)
hi_obs_z1 <- h_z1$counts / n_z1
pearson_z1 <- round(cor(hi_obs_z1, hi_teo_z1) * 100, 2)
# ── Pearson Zona 2 ────────────────────────────────────────────────────────────
mc_z2 <- (head(breaks_z2,-1) + tail(breaks_z2,-1)) / 2
hi_teo_z2 <- dnorm(mc_z2, mean=mu_z2, sd=sd_z2) * diff(breaks_z2)
hi_teo_z2 <- hi_teo_z2 / sum(hi_teo_z2)
hi_obs_z2 <- h_z2$counts / n_z2
pearson_z2 <- round(cor(hi_obs_z2, hi_teo_z2) * 100, 2)
# ── KS Zona 1 ────────────────────────────────────────────────────────────────
samp_z1 <- sample(x_z1, size=min(400, n_z1), replace=FALSE)
samp_z1_inv <- corte_z - samp_z1 - offset_z1
ks_z1 <- ks.test(samp_z1_inv, "pexp", rate=rate_z1)
# ── KS Zona 2 ────────────────────────────────────────────────────────────────
samp_z2 <- sample(x_z2, size=min(400, n_z2), replace=FALSE)
ks_z2 <- ks.test(samp_z2, "pnorm", mean=mu_z2, sd=sd_z2)
val_z1 <- ifelse(pearson_z1 > 70, "APROBADO", "RECHAZADO")
val_z2 <- ifelse(pearson_z2 > 70, "APROBADO", "RECHAZADO")
cat("Zona 1 \u2014 Pearson:", pearson_z1, "% | KS p-valor:", round(ks_z1$p.value,4),
"| Validación:", val_z1, "\n")
## Zona 1 — Pearson: 71.59 % | KS p-valor: 0 | Validación: APROBADO
cat("Zona 2 \u2014 Pearson:", pearson_z2, "% | KS p-valor:", round(ks_z2$p.value,4),
"| Validación:", val_z2, "\n")
## Zona 2 — Pearson: 73.74 % | KS p-valor: 0 | Validación: APROBADO
data.frame(
Zona = c("Zona 1 [1 \u2013 21) \u2014 Exponencial invertida",
"Zona 2 [21 \u2013 36] \u2014 Normal"),
Pearson_R = c(pearson_z1, pearson_z2),
KS_pvalor = c(round(ks_z1$p.value,4), round(ks_z2$p.value,4)),
Validacion = c(val_z1, val_z2)
) %>%
gt() %>%
tab_header(
title = md("**Tabla N\u00b04: Resumen de Validación por Zona**"),
subtitle = md("*Pearson (R%) y Kolmogorov-Smirnov (p-valor) \u2014 Variable Township*")
) %>%
cols_label(Zona=md("**Zona**"), Pearson_R=md("**Pearson (R %)**"),
KS_pvalor=md("**K-S (p-valor)**"), Validacion=md("**Validación**")) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_column_labels()) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_title(groups="title")) %>%
tab_style(style=cell_fill(color="#F5F5F5"), locations=cells_body(rows=1)) %>%
tab_style(style=cell_text(color="darkgreen",weight="bold"),
locations=cells_body(columns=Validacion, rows=Validacion=="APROBADO")) %>%
tab_style(style=cell_text(color="darkred",weight="bold"),
locations=cells_body(columns=Validacion, rows=Validacion=="RECHAZADO")) %>%
tab_style(style=cell_borders(sides="bottom",color="#E0E0E0",weight=px(1)),
locations=cells_body(rows=everything())) %>%
cols_align(align="center", columns=c(Pearson_R, KS_pvalor, Validacion)) %>%
cols_align(align="left", columns=Zona) %>%
fmt_number(columns=Pearson_R, decimals=2) %>%
fmt_number(columns=KS_pvalor, decimals=4) %>%
tab_source_note(source_note=md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(table.width=pct(92), table.font.size=px(13),
heading.title.font.size=px(15), heading.subtitle.font.size=px(11),
data_row.padding=px(6),
column_labels.border.top.width=px(2),
column_labels.border.bottom.width=px(2),
table_body.border.bottom.width=px(2),
table.border.top.style="hidden", table.border.bottom.style="hidden")
| Tabla N°4: Resumen de Validación por Zona | |||
| Pearson (R%) y Kolmogorov-Smirnov (p-valor) — Variable Township | |||
| Zona | Pearson (R %) | K-S (p-valor) | Validación |
|---|---|---|---|
| Zona 1 [1 – 21) — Exponencial invertida | 71.59 | 0.0000 | APROBADO |
| Zona 2 [21 – 36] — Normal | 73.74 | 0.0000 | APROBADO |
| Autor: Leslye Quinchiguango | |||
El Intervalo de Confianza estima el rango dentro del cual se encuentra la verdadera media poblacional de Township con un nivel de confianza del 95%. Aunque la distribución presenta comportamiento diferenciado por zona, el Teorema Central del Límite (TLC) garantiza que la distribución de las medias muestrales tenderá a la normalidad dado el volumen de datos (\(n=\) 47,757).
Los postulados de confianza empírica sugieren:
\[P(\bar{x} - E < \mu < \bar{x} + E) \approx 68\%\]
\[P(\bar{x} - 2E < \mu < \bar{x} + 2E) \approx 95\%\]
\[P(\bar{x} - 3E < \mu < \bar{x} + 3E) \approx 99\%\]
Donde el Margen de Error (\(E\)) se define como:
\[E = \frac{\sigma}{\sqrt{n}}\]
media_muestral <- mean(x)
desv_est <- sd(x)
n_total <- length(x)
z_95 <- 1.96
error_est <- desv_est / sqrt(n_total)
margen <- z_95 * error_est
lim_inf_ic <- media_muestral - margen
lim_sup_ic <- media_muestral + margen
data.frame(
Parametro = "Township Promedio Kansas",
Lim_Inferior = round(lim_inf_ic, 4),
Media_Muestral = round(media_muestral, 4),
Lim_Superior = round(lim_sup_ic, 4),
Error_Estandar = paste0("+/- ", round(margen, 4)),
Confianza = "95% (Z = 1.96)",
stringsAsFactors = FALSE
) %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00b0 5: ESTIMACIÓN DE LA MEDIA POBLACIONAL**"),
subtitle = md("*Inferencia Estadística para la Variable Township*")
) %>%
cols_label(
Parametro = md("**Parámetro**"),
Lim_Inferior = md("**Lim_Inferior**"),
Media_Muestral = md("**Media_Muestral**"),
Lim_Superior = md("**Lim_Superior**"),
Error_Estandar = md("**Error_Estándar**"),
Confianza = md("**Confianza**")
) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_column_labels()) %>%
tab_style(style=list(cell_fill(color="#2C2C2C"),cell_text(color="white",weight="bold")),
locations=cells_title(groups="title")) %>%
tab_style(style=list(cell_fill(color="#C8E6C9"),cell_text(weight="bold")),
locations=cells_body(columns=Media_Muestral)) %>%
tab_style(style=cell_borders(sides="bottom",color="#E0E0E0",weight=px(1)),
locations=cells_body(rows=everything())) %>%
cols_align(align="center",
columns=c(Lim_Inferior,Media_Muestral,Lim_Superior,
Error_Estandar,Confianza)) %>%
cols_align(align="left", columns=Parametro) %>%
tab_source_note(source_note=md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(table.width=pct(100), table.font.size=px(13),
heading.title.font.size=px(16), heading.subtitle.font.size=px(12),
data_row.padding=px(6),
column_labels.border.top.width=px(2),
column_labels.border.bottom.width=px(2),
table_body.border.bottom.width=px(2),
table.border.top.style="hidden", table.border.bottom.style="hidden")
| TABLA N° 5: ESTIMACIÓN DE LA MEDIA POBLACIONAL | |||||
| Inferencia Estadística para la Variable Township | |||||
| Parámetro | Lim_Inferior | Media_Muestral | Lim_Superior | Error_Estándar | Confianza |
|---|---|---|---|---|---|
| Township Promedio Kansas | 23.2328 | 23.3106 | 23.3883 | +/- 0.0777 | 95% (Z = 1.96) |
| Autor: Leslye Quinchiguango | |||||
Se trabajó con la variable Township dividida en 2 zonas con corte fijo en 21. Se aplicó el modelo Exponencial invertida en la Zona 1 [1, 21) y Normal en la Zona 2 [21, 36], con parámetros estimados exclusivamente con los datos de cada tramo: Zona 1 (\(\hat{\lambda}\) = 0.1554), Zona 2 (\(\hat{\mu}\) = 28.9796, \(\hat{\sigma}\) = 4.1084). La prueba de Pearson obtuvo 71.59% y 73.74% respectivamente, y los p-valores Kolmogorov-Smirnov fueron 0 y 0. El intervalo de confianza al 95% para la media poblacional de Township fue [23.2328, 23.3883], con media muestral 23.3106 y margen de error +/- 0.0777.
Autor: Leslye Quinchiguango — Análisis Estadístico, Kansas Hydrocarbon Leases Dataset