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 (2).csv | Filas: 47757
x_raw <- datos %>%
mutate(RNG = suppressWarnings(as.integer(RANGE))) %>%
filter(!is.na(RNG), RNG >= 1, RNG <= 43) %>%
pull(RNG)
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: 43
Se calcula la distribución de frecuencias absolutas y relativas para la variable cuantitativa discreta agrupada Range, correspondiente a los arrendamientos de hidrocarburos registrados en Kansas, EE.UU.
Justificación del agrupamiento. Range es discreta, pero al tener más de 10 valores únicos (de 1 a 43), una tabla de frecuencia simple resultaría extensa y poco legible. Por ello se agrupa en intervalos de clase, como se hace con variables continuas, únicamente como recurso para resumir la información; su naturaleza discreta se conserva en los límites e indicadores, que siguen siendo enteros.
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°1: Distribución de Frecuencias**"),
subtitle = md(paste0("*Variable Cuantitativa Discreta Agrupada: Range, ",
"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: Range, Kansas (n = 47,757) | ||||||||
| Intervalo | MC | ni | hi% | hi | Ni (asc) | Hi (asc) | Ni (desc) | Hi (desc) |
|---|---|---|---|---|---|---|---|---|
| [1 - 6) | 3 | 3318 | 6.95 | 0.0695 | 3318 | 0.0695 | 47757 | 1.0000 |
| [6 - 11) | 8 | 5137 | 10.76 | 0.1076 | 8455 | 0.1770 | 44439 | 0.9305 |
| [11 - 16) | 13 | 10092 | 21.13 | 0.2113 | 18547 | 0.3884 | 39302 | 0.8230 |
| [16 - 21) | 18 | 10946 | 22.92 | 0.2292 | 29493 | 0.6176 | 29210 | 0.6116 |
| [21 - 26) | 23 | 5443 | 11.40 | 0.1140 | 34936 | 0.7315 | 18264 | 0.3824 |
| [26 - 31) | 28 | 2478 | 5.19 | 0.0519 | 37414 | 0.7834 | 12821 | 0.2685 |
| [31 - 36) | 33 | 5874 | 12.30 | 0.1230 | 43288 | 0.9064 | 10343 | 0.2166 |
| [36 - 41) | 38 | 3279 | 6.87 | 0.0687 | 46567 | 0.9751 | 4469 | 0.0936 |
| [41 - 43] | 42 | 1190 | 2.49 | 0.0249 | 47757 | 1.0000 | 1190 | 0.0249 |
| 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("Range", side=1, line=3.5, cex=1)
mtext("Histograma General — Range, arrendamientos de hidrocarburos, Kansas, EE.UU.",
side=3, line=3, cex=0.95, font=2)
El histograma de la variable Range muestra un comportamiento claramente diferenciado en dos tramos, y ambos son representativos del conjunto de datos (ninguno se omite):
Zona 1 — Range [1, 31): concentra la mayoría de las observaciones, con alta frecuencia en valores bajos y decaimiento progresivo. Este comportamiento de conteo es compatible con una distribución Poisson, de parámetro \(\hat{\lambda}\) (media = varianza del proceso).
Zona 2 — Range [31, 43]: aunque de menor tamaño, sigue siendo un tramo representativo (10343 observaciones). Las frecuencias decrecen de forma monótona a partir del corte, comportamiento característico de una distribución Geométrica, que modela el número de “fallos” antes del primer “éxito”, con parámetro \(\hat{p}\).
Se trabaja con dos zonas con corte fijo en 31.
set.seed(42)
corte_z <- 31
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: Poisson ────────────────────────────────────────────────────────
lambda_hat <- mean(x_z1)
# ── Zona 2: Geométrica (soporte desplazado a 0) ─────────────────────────────
shift_z2 <- min(x_z2)
fit_z2 <- fitdistr(x_z2 - shift_z2, "geometric")
p_z2 <- fit_z2$estimate["prob"]
cat("Zona 1 [", lim_z1_min, ",", corte_z, ") — n:", length(x_z1), "\n")
## Zona 1 [ 1 , 31 ) — n: 37414
cat("λ̂ (Poisson) :", round(lambda_hat, 4), "\n")
## λ̂ (Poisson) : 15.2986
cat("\nZona 2 [", corte_z, ",", lim_z2_max, "] — n:", length(x_z2), "\n")
##
## Zona 2 [ 31 , 43 ] — n: 10343
cat("p̂ (Geométrica, shift =", shift_z2, ") :", round(p_z2, 6), "\n")
## p̂ (Geométrica, shift = 31 ) : 0.176499
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.85,
paste0("Zona 1\n[", lim_z1_min, " – ", corte_z, ")\nPoisson"), cex=0.82, font=2)
text(mean(c(corte_z, lim_z2_max)), yt * 0.85,
paste0("Zona 2\n[", corte_z, " – ", lim_z2_max, "]\nGeométrica"), cex=0.82, font=2)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Range", side=1, line=3.5, cex=1)
mtext(paste0("Corte en Range = ", corte_z,
" — Zona 1: Poisson | Zona 2: Geométrica — Kansas, EE.UU."),
side=3, line=3, cex=0.9, font=2)
par(mfrow=c(2,1))
# ── Zona 1: Poisson ──────────────────────────────────────────────────────────
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, by = 1)
ys_z1 <- dpois(xs_z1, lambda = lambda_hat)
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("Range", side=1, line=3.5, cex=1)
mtext(paste0("Gráfica N°2: Zona 1 [", lim_z1_min, " – ", corte_z,
") — Poisson (λ̂ = ", round(lambda_hat,4), ")"),
side=3, line=3, cex=0.9, font=2)
legend("topright",
legend=c("Histograma", paste0("Poisson(λ̂=", round(lambda_hat,2), ")")),
fill=c("gray40",NA), border=c("black",NA),
lty=c(NA,1), lwd=c(NA,2.5), bty="n", cex=0.85)
# ── Zona 2: Geométrica ───────────────────────────────────────────────────────
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, lim_z2_max, by = 1)
ys_z2 <- dgeom(xs_z2 - shift_z2, prob = p_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("Range", side=1, line=3.5, cex=1)
mtext(paste0("Gráfica N°3: Zona 2 [", corte_z, " – ", lim_z2_max,
"] — Geométrica (p̂ = ", round(p_z2,4), ")"),
side=3, line=3, cex=0.9, font=2)
legend("topright",
legend=c("Histograma", paste0("Geométrica(p̂=", round(p_z2,4), ")")),
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 <- sd(x_z1)
media_z2 <- mean(x_z2)
sd_z2 <- sd(x_z2)
data.frame(
Zona = c(
rep("Zona 1 [1, 31) — Poisson", 3),
rep("Zona 2 [31, 43] — Geométrica", 4)
),
Parametro = c(
"n (observaciones zona)",
"Media observada zona",
"λ̂ = media muestral (MV)",
"n (observaciones zona)",
"Media observada zona",
"Desplazamiento (shift = mín. zona)",
"p̂ = probabilidad de éxito (MV)"
),
Valor = c(
as.character(n_z1),
round(media_z1, 4),
round(lambda_hat, 4),
as.character(n_z2),
round(media_z2, 4),
as.character(shift_z2),
round(p_z2, 6)
)
) %>%
gt() %>%
tab_header(
title = md("**Tabla N°2: Parámetros Estimados por Zona**"),
subtitle = md("*Zona 1: Poisson | Zona 2: Geométrica — Variable Range*")
) %>%
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,7,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: Poisson | Zona 2: Geométrica — Variable Range | ||
| Zona | Parámetro | Valor |
|---|---|---|
| Zona 1 [1, 31) — Poisson | n (observaciones zona) | 37414 |
| Zona 1 [1, 31) — Poisson | Media observada zona | 15.2986 |
| Zona 1 [1, 31) — Poisson | λ̂ = media muestral (MV) | 15.2986 |
| Zona 2 [31, 43] — Geométrica | n (observaciones zona) | 10343 |
| Zona 2 [31, 43] — Geométrica | Media observada zona | 35.6658 |
| Zona 2 [31, 43] — Geométrica | Desplazamiento (shift = mín. zona) | 31 |
| Zona 2 [31, 43] — Geométrica | p̂ = probabilidad de éxito (MV) | 0.176499 |
| Autor: Leslye Quinchiguango | ||
# ── Zona 1: Poisson(λ̂) ────────────────────────────────────────────────────
p1_a <- ppois(9, lambda = lambda_hat) # P(X < 10)
p1_b <- ppois(19, lambda = lambda_hat) - ppois(9, lambda = lambda_hat) # P(10 ≤ X < 20)
p1_c <- ppois(19, lambda = lambda_hat, lower.tail = FALSE) # P(X ≥ 20)
# ── Zona 2: Geométrica(p̂), shift = 31 ────────────────────────────────────
p2_a <- pgeom(35 - shift_z2, prob = p_z2) # P(X < 36)
p2_b <- pgeom(40 - shift_z2, prob = p_z2) - pgeom(35 - shift_z2, prob = p_z2) # P(36 ≤ X < 41)
p2_c <- pgeom(40 - shift_z2, prob = p_z2, lower.tail = FALSE) # P(X ≥ 41)
data.frame(
Zona = c(rep("Zona 1 — Poisson", 3), rep("Zona 2 — Geométrica", 3)),
Evento = c(
"P(X < 10)", "P(10 ≤ X < 20)", "P(X ≥ 20)",
"P(X < 36)", "P(36 ≤ X < 41)", "P(X ≥ 41)"
),
Descripcion = c(
"Range bajo dentro de la Zona 1",
"Range en el tramo central de la Zona 1",
"Range alto dentro de la Zona 1",
"Range bajo dentro de la Zona 2",
"Range en el tramo central de la Zona 2",
"Range alto dentro 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°3: Cálculo de Probabilidades por Zona**"),
subtitle = md("*La probabilidad es el área bajo la curva del modelo teórico — Variable Range*")
) %>%
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 Range | |||
| Zona | Evento | Descripción | Probabilidad |
|---|---|---|---|
| Zona 1 — Poisson | P(X < 10) | Range bajo dentro de la Zona 1 | 0.0607 |
| Zona 1 — Poisson | P(10 ≤ X < 20) | Range en el tramo central de la Zona 1 | 0.7972 |
| Zona 1 — Poisson | P(X ≥ 20) | Range alto dentro de la Zona 1 | 0.1421 |
| Zona 2 — Geométrica | P(X < 36) | Range bajo dentro de la Zona 2 | 0.6213 |
| Zona 2 — Geométrica | P(36 ≤ X < 41) | Range en el tramo central de la Zona 2 | 0.2353 |
| Zona 2 — Geométrica | P(X ≥ 41) | Range alto dentro de la Zona 2 | 0.1434 |
| Autor: Leslye Quinchiguango | |||
set.seed(42)
# ── Pearson Zona 1 (Poisson) ─────────────────────────────────────────────────
p_teo_z1 <- ppois(breaks_z1[-1] - 1, lambda = lambda_hat) -
ppois(breaks_z1[-length(breaks_z1)] - 1, lambda = lambda_hat)
p_teo_z1 <- p_teo_z1 / sum(p_teo_z1)
hi_obs_z1 <- h_z1$counts / n_z1
pearson_z1 <- round(cor(hi_obs_z1, p_teo_z1) * 100, 2)
# ── Pearson Zona 2 (Geométrica) ──────────────────────────────────────────────
p_teo_z2 <- pgeom(breaks_z2[-1] - 1 - shift_z2, prob = p_z2) -
pgeom(breaks_z2[-length(breaks_z2)] - 1 - shift_z2, prob = p_z2)
p_teo_z2 <- p_teo_z2 / sum(p_teo_z2)
hi_obs_z2 <- h_z2$counts / n_z2
pearson_z2 <- round(cor(hi_obs_z2, p_teo_z2) * 100, 2)
# ── KS Zona 1 ────────────────────────────────────────────────────────────────
samp_z1 <- sample(x_z1, size=min(400, n_z1), replace=FALSE)
ks_z1 <- suppressWarnings(ks.test(samp_z1, "ppois", lambda=lambda_hat))
# ── KS Zona 2 ────────────────────────────────────────────────────────────────
samp_z2 <- sample(x_z2, size=min(400, n_z2), replace=FALSE)
ks_z2 <- suppressWarnings(ks.test(samp_z2 - shift_z2, "pgeom", prob=p_z2))
val_z1 <- ifelse(pearson_z1 > 70, "APROBADO", "RECHAZADO")
val_z2 <- ifelse(pearson_z2 > 70, "APROBADO", "RECHAZADO")
cat("Zona 1 — Pearson:", pearson_z1, "% | KS p-valor:", round(ks_z1$p.value,4),
"| Validación:", val_z1, "\n")
## Zona 1 — Pearson: 96.51 % | KS p-valor: 0 | Validación: APROBADO
cat("Zona 2 — Pearson:", pearson_z2, "% | KS p-valor:", round(ks_z2$p.value,4),
"| Validación:", val_z2, "\n")
## Zona 2 — Pearson: 98.05 % | KS p-valor: 0 | Validación: APROBADO
data.frame(
Zona = c("Zona 1 [1 – 31) — Poisson", "Zona 2 [31 – 43] — Geométrica"),
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°4: Resumen de Validación por Zona**"),
subtitle = md("*Pearson (R%) y Kolmogorov-Smirnov (p-valor) — Variable Range*")
) %>%
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 Range | |||
| Zona | Pearson (R %) | K-S (p-valor) | Validación |
|---|---|---|---|
| Zona 1 [1 – 31) — Poisson | 96.51 | 0.0000 | APROBADO |
| Zona 2 [31 – 43] — Geométrica | 98.05 | 0.0000 | APROBADO |
| Autor: Leslye Quinchiguango | |||
El Intervalo de Confianza estima el rango dentro del cual se encuentra la verdadera media poblacional de Range con un nivel de confianza del 95%. El Teorema Central del Límite garantiza que la distribución de las medias muestrales tiende a la normalidad dado el volumen de datos (\(n=\) 47,757).
\[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 = "Range 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° 5: ESTIMACIÓN DE LA MEDIA POBLACIONAL**"),
subtitle = md("*Inferencia Estadística para la Variable Range*")
) %>%
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 Range | |||||
| Parámetro | Lim_Inferior | Media_Muestral | Lim_Superior | Error_Estándar | Confianza |
|---|---|---|---|---|---|
| Range Promedio Kansas | 19.617 | 19.7096 | 19.8023 | +/- 0.0927 | 95% (Z = 1.96) |
| Autor: Leslye Quinchiguango | |||||
El comportamiento de Range se explica con un modelo Poisson (λ̂ = 15.2986) en la Zona 1 [1, 31) y un modelo Geométrica (p̂ = 0.1765 (shift = 31)) en la Zona 2 [31, 43]. Podemos afirmar con un 95% de confianza que la media aritmética real de Range se encuentra entre 19.617 y 19.8023, con una desviación estándar de 10.3326.
Autor: Leslye Quinchiguango — Análisis Estadístico, Kansas Hydrocarbon Leases Dataset