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(LON = suppressWarnings(as.numeric(LONGITUDE))) %>%
filter(!is.na(LON), LON >= -103.0, LON <= -94.0) %>%
pull(LON)
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:", round(min(x_raw), 4), "| Máximo:", round(max(x_raw), 4), "\n")
## Mínimo: -102.0439 | Máximo: -94.6179
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("[",round(lim_inf,4)," - ",round(lim_sup,4),")")
etiq[k] <- paste0("[",round(lim_inf[k],4)," - ",round(lim_sup[k],4),"]")
bind_rows(
data.frame(Intervalo=etiq, MC=round(mc,4), 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_real_, 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("*Longitud, 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: Fernando Almeida*")) %>%
tab_options(table.width=pct(100), table.font.size=px(13), data_row.padding=px(6))
| Tabla N°1: Distribución de Frecuencias | ||||||||
| Longitud, Kansas (n=47,757) | ||||||||
| Intervalo | MC | ni | hi% | hi | Ni (asc) | Hi (asc) | Ni (desc) | Hi (desc) |
|---|---|---|---|---|---|---|---|---|
| [-102.0439 - -101.6071) | -101.8255 | 2213 | 4.63 | 0.0463 | 2213 | 0.0463 | 47757 | 1.0000 |
| [-101.6071 - -101.1703) | -101.3887 | 2516 | 5.27 | 0.0527 | 4729 | 0.0990 | 45544 | 0.9537 |
| [-101.1703 - -100.7334) | -100.9519 | 5205 | 10.90 | 0.1090 | 9934 | 0.2080 | 43028 | 0.9010 |
| [-100.7334 - -100.2966) | -100.5150 | 2178 | 4.56 | 0.0456 | 12112 | 0.2536 | 37823 | 0.7920 |
| [-100.2966 - -99.8598) | -100.0782 | 2458 | 5.15 | 0.0515 | 14570 | 0.3051 | 35645 | 0.7464 |
| [-99.8598 - -99.423) | -99.6414 | 3977 | 8.33 | 0.0833 | 18547 | 0.3884 | 33187 | 0.6949 |
| [-99.423 - -98.9862) | -99.2046 | 4644 | 9.72 | 0.0972 | 23191 | 0.4856 | 29210 | 0.6116 |
| [-98.9862 - -98.5493) | -98.7678 | 6007 | 12.58 | 0.1258 | 29198 | 0.6114 | 24566 | 0.5144 |
| [-98.5493 - -98.1125) | -98.3309 | 3895 | 8.16 | 0.0816 | 33093 | 0.6929 | 18559 | 0.3886 |
| [-98.1125 - -97.6757) | -97.8941 | 1677 | 3.51 | 0.0351 | 34770 | 0.7281 | 14664 | 0.3071 |
| [-97.6757 - -97.2389) | -97.4573 | 1021 | 2.14 | 0.0214 | 35791 | 0.7494 | 12987 | 0.2719 |
| [-97.2389 - -96.8021) | -97.0205 | 1788 | 3.74 | 0.0374 | 37579 | 0.7869 | 11966 | 0.2506 |
| [-96.8021 - -96.3652) | -96.5836 | 693 | 1.45 | 0.0145 | 38272 | 0.8014 | 10178 | 0.2131 |
| [-96.3652 - -95.9284) | -96.1468 | 1337 | 2.80 | 0.0280 | 39609 | 0.8294 | 9485 | 0.1986 |
| [-95.9284 - -95.4916) | -95.7100 | 4236 | 8.87 | 0.0887 | 43845 | 0.9181 | 8148 | 0.1706 |
| [-95.4916 - -95.0548) | -95.2732 | 3083 | 6.46 | 0.0646 | 46928 | 0.9826 | 3912 | 0.0819 |
| [-95.0548 - -94.6179] | -94.8364 | 829 | 1.74 | 0.0174 | 47757 | 1.0000 | 829 | 0.0174 |
| TOTAL | - | 47757 | 100.00 | 1.0000 | 47757 | 1.0000 | 47757 | 1.0000 |
| Autor: Fernando Almeida | ||||||||
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=round(breaks_vec,3), las=1, cex.axis=0.8)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Longitud (grados)", side=1, line=3.5, cex=1)
mtext("Histograma General - Longitud, Kansas, EE.UU.",
side=3, line=3, cex=0.95, font=2)
set.seed(42)
# Funcion central: evalua Normal, Log-Normal y Exponencial con offset correcto
evaluar_zona <- function(datos, n_samp = 350, forzar = NULL, candidatos = NULL) {
if (length(datos) < 1500) return(NULL)
set.seed(42)
samp <- sample(datos, size = n_samp, replace = FALSE)
offset <- min(datos) - 0.001
d_pos <- datos - offset
s_pos <- samp - offset
resultados <- list()
# Normal (datos originales, sin desplazamiento)
tryCatch({
f <- fitdistr(datos, "normal")
ks <- ks.test(samp, "pnorm",
mean = f$estimate["mean"], sd = f$estimate["sd"])
resultados[["normal"]] <- list(
fit = f, pval = ks$p.value,
aic = -2*f$loglik + 2*length(f$estimate), offset = 0)
}, error = function(e){})
# Log-Normal (datos desplazados: x - min_zona + 0.001)
tryCatch({
f <- fitdistr(d_pos, "lognormal")
ks <- ks.test(s_pos, "plnorm",
meanlog = f$estimate["meanlog"], sdlog = f$estimate["sdlog"])
resultados[["lognormal"]] <- list(
fit = f, pval = ks$p.value,
aic = -2*f$loglik + 2*length(f$estimate), offset = offset)
}, error = function(e){})
# Exponencial (datos desplazados: x - min_zona + 0.001)
tryCatch({
f <- fitdistr(d_pos, "exponential")
ks <- ks.test(s_pos, "pexp", rate = f$estimate["rate"])
resultados[["exponential"]] <- list(
fit = f, pval = ks$p.value,
aic = -2*f$loglik + 2*length(f$estimate), offset = offset)
}, error = function(e){})
if (length(resultados) == 0) return(NULL)
if (!is.null(forzar) && !is.null(resultados[[forzar]])) {
mejor <- forzar
} else {
pool <- resultados
if (!is.null(candidatos)) {
pool_filtrado <- resultados[names(resultados) %in% candidatos]
if (length(pool_filtrado) > 0) pool <- pool_filtrado
}
pvs <- sapply(pool, `[[`, "pval")
mejor <- names(which.max(pvs))
}
c(resultados[[mejor]], list(modelo = mejor))
}
# Busqueda exhaustiva de 2 cortes (3 zonas)
grilla <- seq(-101.5, -95.5, by = 0.5)
min_obs <- 1500
mejores <- data.frame()
for (c1 in grilla) {
for (c2 in grilla) {
if (c2 - c1 < 2.0) next
z1 <- x[x < c1]
z2 <- x[x >= c1 & x < c2]
z3 <- x[x >= c2]
if (any(c(length(z1), length(z2), length(z3)) < min_obs)) next
r1 <- evaluar_zona(z1)
r2 <- evaluar_zona(z2)
r3 <- evaluar_zona(z3)
if (is.null(r1) || is.null(r2) || is.null(r3)) next
aprobadas <- sum(c(r1$pval, r2$pval, r3$pval) >= 0.05)
suma_p <- r1$pval + r2$pval + r3$pval
mejores <- rbind(mejores, data.frame(
c1 = c1, c2 = c2,
n1 = length(z1), n2 = length(z2), n3 = length(z3),
m1 = r1$modelo, m2 = r2$modelo, m3 = r3$modelo,
p1 = round(r1$pval, 4), p2 = round(r2$pval, 4), p3 = round(r3$pval, 4),
aprobadas = aprobadas, suma_p = round(suma_p, 4),
stringsAsFactors = FALSE
))
}
}
mejores <- mejores[order(-mejores$aprobadas, -mejores$suma_p), ]
sel <- mejores[1, ]
corte1 <- sel$c1
Los histogramas de la variable LONGITUDE muestran una
distribución continua con comportamiento diferenciado según la zona
geográfica. La Zona Oeste y la Zona
Centro presentan asimetría positiva, por lo que se evalúan los
modelos Normal, Log-Normal y
Exponencial, seleccionando el de mayor p-valor KS. La
Zona Este (a partir de −96.80°) exhibe una forma
aproximadamente simétrica y acampanada, por lo que se plantea como
conjetura un modelo Normal, el cual será evaluado
mediante el coeficiente de correlación de Pearson y la prueba
Kolmogorov-Smirnov.
lbl <- c(normal = "Normal", lognormal = "Log-Normal", exponential = "Exponencial")
corte2 <- -96.80
este_max <- -94.61
x_z1 <- x[x < corte1]
x_z2 <- x[x >= corte1 & x < corte2]
x_z3 <- x[x >= corte2 & x <= este_max]
r1f <- evaluar_zona(x_z1, n_samp = 400)
r2f <- evaluar_zona(x_z2, n_samp = 400)
r3f <- evaluar_zona(x_z3, n_samp = 400, forzar = "normal")
cat("Zona Oeste:", length(x_z1), "obs | Modelo:", lbl[r1f$modelo],
"| KS p =", round(r1f$pval, 4), "\n")
## Zona Oeste: 13701 obs | Modelo: Normal | KS p = 0.077
cat("Zona Centro:", length(x_z2), "obs | Modelo:", lbl[r2f$modelo],
"| KS p =", round(r2f$pval, 4), "\n")
## Zona Centro: 23884 obs | Modelo: Normal | KS p = 0.2177
cat("Zona Este:", length(x_z3), "obs | Modelo:", lbl[r3f$modelo],
"| KS p =", round(r3f$pval, 4), "\n")
## Zona Este: 10172 obs | Modelo: Normal | KS p = 0.0728
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 = round(breaks_vec,3), las = 1, cex.axis = 0.8)
abline(v = corte1, col = "black", lty = 2, lwd = 2)
abline(v = corte2, col = "black", lty = 2, lwd = 2)
yt <- max(hi_dec)
text(mean(c(min(x), corte1)), yt*0.88,
paste0("Oeste\n(", round(min(x),1), " a ", corte1, ")\n", lbl[r1f$modelo]),
cex=0.82, font=2)
text(mean(c(corte1, corte2)), yt*0.88,
paste0("Centro\n(", corte1, " a ", corte2, ")\n", lbl[r2f$modelo]),
cex=0.82, font=2)
text(mean(c(corte2, este_max)), yt*0.88,
paste0("Este\n(", corte2, " a ", este_max, ")\n", lbl[r3f$modelo]),
cex=0.82, font=2)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=1)
mtext("Longitud (grados)", side=1, line=3.5, cex=1)
mtext(paste0("Cortes: ", corte1, " y ", corte2, " - Kansas, EE.UU."),
side=3, line=3, cex=0.95, font=2)
plot_zona <- function(datos, res, titulo, pal) {
offset <- res$offset
n_z <- length(datos)
brks <- seq(min(datos), max(datos), length.out = k + 1)
h_z <- hist(datos, breaks = brks, plot = FALSE)
hi_z <- h_z$counts / n_z
h_z$density <- hi_z
xs <- seq(min(datos), max(datos), length.out = 500)
par(mar = c(5,6,5,2))
plot(h_z, col = pal, border = "black", freq = FALSE,
main = "", xlab = "", ylab = "", las = 1)
if (res$modelo == "lognormal") {
xs_pos <- xs - offset; xs_pos[xs_pos <= 0] <- 1e-9
ys <- dlnorm(xs_pos,
meanlog = res$fit$estimate["meanlog"],
sdlog = res$fit$estimate["sdlog"])
} else if (res$modelo == "exponential") {
xs_pos <- xs - offset; xs_pos[xs_pos <= 0] <- 1e-9
ys <- dexp(xs_pos, rate = res$fit$estimate["rate"])
} else {
ys <- dnorm(xs,
mean = res$fit$estimate["mean"],
sd = res$fit$estimate["sd"])
}
ys_sc <- ys / max(ys) * max(hi_z)
lines(xs, ys_sc, col = "black", lwd = 2.5)
mtext("Densidad de Probabilidad", side=2, line=4.5, cex=0.95)
mtext("Longitud (grados)", side=1, line=3.5, cex=0.95)
mtext(titulo, side=3, line=1, cex=1.05, font=2)
legend("topright",
legend = c("Histograma", paste0("Curva ", lbl[res$modelo])),
fill = c("gray55", NA), border = c("black", NA),
lty = c(NA, 1), lwd = c(NA, 2.5), bty = "n", cex = 0.85)
}
par(mfrow = c(3,1))
plot_zona(x_z1, r1f,
paste0("Zona Oeste (", round(min(x),1), " a ", corte1, ") - ", lbl[r1f$modelo]),
gray(seq(0.20,0.65,length.out=k)))
plot_zona(x_z2, r2f,
paste0("Zona Centro (", corte1, " a ", corte2, ") - ", lbl[r2f$modelo]),
gray(seq(0.30,0.75,length.out=k)))
plot_zona(x_z3, r3f,
paste0("Zona Este (", corte2, " a ", este_max, ") - ", lbl[r3f$modelo]),
gray(seq(0.40,0.85,length.out=k)))
par(mfrow = c(1,1))
set.seed(42)
validar <- function(datos, res) {
set.seed(42)
samp <- sample(datos, size = min(400, length(datos)), replace = FALSE)
offset <- res$offset
brks <- seq(min(datos), max(datos), length.out = k + 1)
hi_obs <- hist(datos, breaks = brks, plot = FALSE)$counts / length(datos)
mc_z <- (head(brks,-1) + tail(brks,-1)) / 2
if (res$modelo == "lognormal") {
mc_pos <- mc_z - offset; mc_pos[mc_pos <= 0] <- 1e-9
hi_teo <- dlnorm(mc_pos,
meanlog = res$fit$estimate["meanlog"],
sdlog = res$fit$estimate["sdlog"]) * diff(brks)
ks_res <- ks.test(samp - offset, "plnorm",
meanlog = res$fit$estimate["meanlog"],
sdlog = res$fit$estimate["sdlog"])
} else if (res$modelo == "exponential") {
mc_pos <- mc_z - offset; mc_pos[mc_pos <= 0] <- 1e-9
hi_teo <- dexp(mc_pos, rate = res$fit$estimate["rate"]) * diff(brks)
ks_res <- ks.test(samp - offset, "pexp", rate = res$fit$estimate["rate"])
} else {
hi_teo <- dnorm(mc_z,
mean = res$fit$estimate["mean"],
sd = res$fit$estimate["sd"]) * diff(brks)
ks_res <- ks.test(samp, "pnorm",
mean = res$fit$estimate["mean"],
sd = res$fit$estimate["sd"])
}
hi_teo <- hi_teo / sum(hi_teo)
pearson <- round(cor(hi_obs, hi_teo) * 100, 2)
pval_ks <- round(ks_res$p.value, 4)
cat("\n--- [", lbl[res$modelo], "] Parametros ---\n")
print(round(res$fit$estimate, 6))
cat("Pearson R%:", pearson, "| KS p-valor:", pval_ks, "\n")
list(pearson = pearson, pval = pval_ks,
val = ifelse(pval_ks >= 0.05, "APROBADO", "RECHAZADO"))
}
v1 <- validar(x_z1, r1f)
##
## --- [ Normal ] Parametros ---
## mean sd
## -101.010326 0.516176
## Pearson R%: 66.15 | KS p-valor: 0.077
v2 <- validar(x_z2, r2f)
##
## --- [ Normal ] Parametros ---
## mean sd
## -98.719457 0.777714
## Pearson R%: 80.92 | KS p-valor: 0.2177
v3 <- validar(x_z3, r3f)
##
## --- [ Normal ] Parametros ---
## mean sd
## -95.631073 0.430202
## Pearson R%: 90.12 | KS p-valor: 0.0728
data.frame(
Zona = c(
paste0("Oeste (", round(min(x),1), " a ", corte1, ")"),
paste0("Centro (", corte1, " a ", corte2, ")"),
paste0("Este (", corte2, " a ", este_max, ")")
),
Modelo = unname(c(lbl[r1f$modelo], lbl[r2f$modelo], lbl[r3f$modelo])),
Pearson = c(v1$pearson, v2$pearson, v3$pearson),
KS_p = c(v1$pval, v2$pval, v3$pval),
Validacion = c(v1$val, v2$val, v3$val),
stringsAsFactors = FALSE
) %>%
gt() %>%
tab_header(
title = md("**Tabla N\u00b02: Resumen de Validación por Zona**"),
subtitle = md("*Pearson (R%) y Kolmogorov-Smirnov (p-valor) - n_samp = 400 por zona*")
) %>%
cols_label(Zona=md("**Zona**"), Modelo=md("**Modelo Aplicado**"),
Pearson=md("**Pearson (R %)**"), KS_p=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=c(1,3))) %>%
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,KS_p,Validacion)) %>%
cols_align(align="left", columns=c(Zona,Modelo)) %>%
fmt_number(columns=Pearson, decimals=2) %>%
fmt_number(columns=KS_p, decimals=4) %>%
tab_source_note(source_note=md("*Autor: Fernando Almeida*")) %>%
tab_options(table.width=pct(90), 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°2: Resumen de Validación por Zona | ||||
| Pearson (R%) y Kolmogorov-Smirnov (p-valor) - n_samp = 400 por zona | ||||
| Zona | Modelo Aplicado | Pearson (R %) | K-S (p-valor) | Validación |
|---|---|---|---|---|
| Oeste (-102 a -100) | Normal | 66.15 | 0.0770 | APROBADO |
| Centro (-100 a -96.8) | Normal | 80.92 | 0.2177 | APROBADO |
| Este (-96.8 a -94.61) | Normal | 90.12 | 0.0728 | APROBADO |
| Autor: Fernando Almeida | ||||
El Intervalo de Confianza representa el puente fundamental entre los modelos empíricos observados (Normal, Log-Normal y Exponencial) y la estimación poblacional. Aunque la distribución original de la Longitud presenta asimetría y comportamiento diferenciado por zona, el TLC garantiza que la distribución de las medias muestrales tenderá a la normalidad debido al volumen masivo 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 = "Longitud Promedio Kansas (\u00b0)",
Lim_Inferior = round(lim_inf_ic, 3),
Media_Muestral = round(media_muestral, 3),
Lim_Superior = round(lim_sup_ic, 3),
Error_Estandar = paste0("+/- ", round(margen, 4)),
Confianza = "95% (Z=1.96)",
stringsAsFactors = FALSE
) %>%
gt() %>%
tab_header(
title = md("**TABLA N\u00b0 3: ESTIMACIÓN DE LA MEDIA POBLACIONAL**"),
subtitle = md("*Inferencia Estadística para la Variable Longitud*")
) %>%
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: Fernando Almeida*")) %>%
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° 3: ESTIMACIÓN DE LA MEDIA POBLACIONAL | |||||
| Inferencia Estadística para la Variable Longitud | |||||
| Parámetro | Lim_Inferior | Media_Muestral | Lim_Superior | Error_Estándar | Confianza |
|---|---|---|---|---|---|
| Longitud Promedio Kansas (°) | -98.737 | -98.719 | -98.701 | +/- 0.0178 | 95% (Z=1.96) |
| Autor: Fernando Almeida | |||||
Se trabajó con la variable LONGITUDE dividida en tres
zonas geográficas mediante cortes en -100° y -96.8°. A partir del
comportamiento observado en los histogramas se plantearon modelos de
distribución por zona. Los parámetros estimados fueron: Zona Oeste
(\(\hat{\mu}=\) -101.0103, \(\hat{\sigma}=\) 0.5162), Zona Centro (media
= -98.7195, sd = 0.7777) y Zona Este (\(\hat{\mu}=\) -95.6311, \(\hat{\sigma}=\) 0.4302). La prueba de
Pearson obtuvo 66.15%, 80.92% y 90.12% respectivamente, y los p-valores
Kolmogorov-Smirnov fueron 0.077, 0.2177 y 0.0728. Por tanto, No
se rechaza H0: los modelos son aceptados.
Autor: Fernando Almeida — Análisis Estadístico, Kansas Hydrocarbon Leases Dataset