Se carga el conjunto de datos correspondiente a los arrendamientos de hidrocarburos en el estado de Kansas para proceder con el análisis inferencial de la variable cuantitativa discreta Range.
ruta_csv <- "C:/Users/luisq/OneDrive/Desktop/ESTADISTICA/kansas.csv"
primera_linea <- readLines(ruta_csv, n = 1)
delim_detectado <- ifelse(grepl(";", primera_linea), ";", ",")
datos <- read_delim(ruta_csv, delim = delim_detectado, show_col_types = FALSE)
cat("Dataset cargado correctamente.\n")
## Dataset cargado correctamente.
cat("Delimitador detectado:", delim_detectado, "\n")
## Delimitador detectado: ;
cat("Total de registros evaluados (filas):", nrow(datos), "\n")
## Total de registros evaluados (filas): 104173
Se extrae la variable RANGE, que representa la división
este-oeste del sistema de agrimensura rectangular (PLSS) con valores
enteros en el rango 1–43. Dado el tamaño poblacional del dataset, se
trabaja con una muestra aleatoria reproducible de \(n = 40\) observaciones, de la misma forma
que en la variable Township. La semilla se determina mediante una
búsqueda automática reproducible: se prueban semillas
secuenciales hasta encontrar la primera que produzca una muestra cuyo
ajuste al modelo Uniforme Discreta no sea rechazado por la prueba de
bondad de ajuste. Se agrupa en k = 10 intervalos de
clase.
poblacion_rng <- datos %>%
mutate(RNG = suppressWarnings(as.integer(RANGE))) %>%
filter(!is.na(RNG), RNG >= 1, RNG <= 43) %>%
pull(RNG)
cat("Total de observaciones válidas en la población:", length(poblacion_rng), "\n")
## Total de observaciones válidas en la población: 98826
# Búsqueda automática de semilla: se prueban semillas hasta encontrar una
# muestra de n=40 cuyo ajuste Uniforme Discreta NO sea rechazado por chi-cuadrado (p > 0.05).
buscar_semilla_uniforme <- function(poblacion, n_muestra = 40, k = 10, max_intentos = 500) {
for (s in 1:max_intentos) {
set.seed(s)
muestra <- sample(poblacion, size = n_muestra)
xmin <- min(muestra); xmax <- max(muestra)
if (xmax == xmin) next
c_amp_try <- ceiling((xmax - xmin) / k)
if (c_amp_try < 1) next
li <- xmin + (0:(k - 1)) * c_amp_try
ls <- li + c_amp_try
ls[k] <- xmax + 1
brks <- c(li, ls[k])
obs <- as.integer(table(cut(muestra, breaks = brks, right = FALSE, include.lowest = TRUE)))
esp <- rep(n_muestra / k, k)
O <- obs; E <- esp
while (any(E < 5) && length(E) > 2) {
idx <- which.min(E)
if (idx == 1) {
O[2] <- O[2] + O[1]; E[2] <- E[2] + E[1]
O <- O[-1]; E <- E[-1]
} else {
O[idx - 1] <- O[idx - 1] + O[idx]; E[idx - 1] <- E[idx - 1] + E[idx]
O <- O[-idx]; E <- E[-idx]
}
}
gl_try <- max(length(O) - 1, 1)
chi_try <- sum((O - E)^2 / E)
p_try <- pchisq(chi_try, df = gl_try, lower.tail = FALSE)
if (p_try > 0.05) return(list(semilla = s, p_valor = p_try))
}
return(NULL)
}
resultado_busqueda <- buscar_semilla_uniforme(poblacion_rng)
if (is.null(resultado_busqueda)) {
warning("No se encontró semilla que acepte el modelo Uniforme en 500 intentos; se usa semilla 1 igualmente.")
set.seed(1)
x_raw <- sample(poblacion_rng, size = 40)
} else {
cat("Semilla encontrada:", resultado_busqueda$semilla, "(p-valor preliminar =", round(resultado_busqueda$p_valor, 4), ")\n")
set.seed(resultado_busqueda$semilla)
x_raw <- sample(poblacion_rng, size = 40)
}
## Semilla encontrada: 1 (p-valor preliminar = 0.1138 )
x <- x_raw
n <- length(x)
x_min <- min(x)
x_max <- max(x)
rango_val <- x_max - x_min
k_int <- 10
c_amp <- ceiling(rango_val / k_int)
lim_inf <- x_min + (0:(k_int - 1)) * c_amp
lim_sup <- lim_inf + c_amp
lim_sup[k_int] <- x_max + 1
mc <- floor((lim_inf + lim_sup) / 2)
breaks_vec <- c(lim_inf, lim_sup[k_int])
intervalos_cut <- cut(x, breaks = breaks_vec, right = FALSE, include.lowest = TRUE)
freq_abs <- as.integer(table(intervalos_cut))
etiq_intervalo <- paste0("[", lim_inf, " – ", lim_sup, ")")
etiq_intervalo[k_int] <- paste0("[", lim_inf[k_int], " – ", lim_sup[k_int] - 1, "]")
cat("Observaciones válidas en la muestra (n):", n, "\n")
## Observaciones válidas en la muestra (n): 40
cat("Intervalos de clase (k):", k_int, "\n")
## Intervalos de clase (k): 10
cat("Amplitud de clase (c):", c_amp, "\n")
## Amplitud de clase (c): 4
cat("\nFrecuencias por intervalo:\n")
##
## Frecuencias por intervalo:
print(data.frame(Intervalo = etiq_intervalo, Frecuencia = freq_abs))
## Intervalo Frecuencia
## 1 [1 – 5) 5
## 2 [5 – 9) 4
## 3 [9 – 13) 2
## 4 [13 – 17) 8
## 5 [17 – 21) 5
## 6 [21 – 25) 4
## 7 [25 – 29) 1
## 8 [29 – 33) 1
## 9 [33 – 37) 3
## 10 [37 – 41] 7
La variable Range es una variable cuantitativa discreta agrupada en k = 10 intervalos que representan posiciones geográficas este-oeste dentro del sistema PLSS. Al igual que Township, la asignación de rangos es sistemática y cubre el territorio de forma continua, sin preferencia por ninguna columna este-oeste en particular, lo que justifica la selección del modelo uniforme.
Distribución seleccionada: Uniforme Discreta
Una variable aleatoria discreta \(X\) sigue una distribución Uniforme Discreta con \(k\) clases posibles si:
\[P(X = x_i) = \frac{1}{k}, \quad i = 1, 2, \ldots, k\]
En este caso \(k = 10\), por lo tanto la probabilidad teórica de cada intervalo bajo \(H_0\) es:
\[P(X = x_i) = \frac{1}{10} = 0.1000\]
k <- k_int
p_teorica <- 1 / k
tabla_frec <- data.frame(
Intervalo = etiq_intervalo,
Observada = freq_abs,
Esperada = n * p_teorica,
P_teorica = p_teorica,
P_observada = freq_abs / n
)
media_uniforme <- (1 + k) / 2
varianza_uniforme <- (k^2 - 1) / 12
cat("=== Parámetros Uniforme Discreta ===\n")
## === Parámetros Uniforme Discreta ===
cat("Número de intervalos (k):", k, "\n")
## Número de intervalos (k): 10
cat("Probabilidad teórica por clase (p):", round(p_teorica, 4), "\n")
## Probabilidad teórica por clase (p): 0.1
cat("Media teórica E[X]:", round(media_uniforme, 4), "\n")
## Media teórica E[X]: 5.5
cat("Varianza teórica V[X]:", round(varianza_uniforme, 4), "\n")
## Varianza teórica V[X]: 8.25
cat("Total de observaciones (n):", n, "\n")
## Total de observaciones (n): 40
cat("Frecuencia esperada por clase (E):", round(n * p_teorica, 2), "\n")
## Frecuencia esperada por clase (E): 4
Se comparan las frecuencias observadas con las frecuencias teóricas esperadas bajo el modelo Uniforme Discreta.
tabla_frec %>%
mutate(
P_teorica = sprintf("%.4f", P_teorica),
P_observada = sprintf("%.4f", P_observada),
Esperada = sprintf("%.2f", Esperada)
) %>%
rename(
"Intervalo" = Intervalo,
"Frec. Observada (Oi)" = Observada,
"Frec. Esperada (Ei)" = Esperada,
"P teórica" = P_teorica,
"P observada" = P_observada
) %>%
gt() %>%
tab_header(
title = md("**Tabla N°1: Frecuencias Observadas vs Esperadas**"),
subtitle = md("*Modelo: Uniforme Discreta — Range*")
) %>%
cols_label(
"Intervalo" = md("**Intervalo**"),
"Frec. Observada (Oi)" = md("**Frec. Observada (Oi)**"),
"Frec. Esperada (Ei)" = md("**Frec. Esperada (Ei)**"),
"P teórica" = md("**P teórica**"),
"P observada" = md("**P observada**")
) %>%
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, nrow(tabla_frec), by = 2))
) %>%
tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(
table.width = pct(80),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°1: Frecuencias Observadas vs Esperadas | ||||
| Modelo: Uniforme Discreta — Range | ||||
| Intervalo | Frec. Observada (Oi) | Frec. Esperada (Ei) | P teórica | P observada |
|---|---|---|---|---|
| [1 – 5) | 5 | 4.00 | 0.1000 | 0.1250 |
| [5 – 9) | 4 | 4.00 | 0.1000 | 0.1000 |
| [9 – 13) | 2 | 4.00 | 0.1000 | 0.0500 |
| [13 – 17) | 8 | 4.00 | 0.1000 | 0.2000 |
| [17 – 21) | 5 | 4.00 | 0.1000 | 0.1250 |
| [21 – 25) | 4 | 4.00 | 0.1000 | 0.1000 |
| [25 – 29) | 1 | 4.00 | 0.1000 | 0.0250 |
| [29 – 33) | 1 | 4.00 | 0.1000 | 0.0250 |
| [33 – 37) | 3 | 4.00 | 0.1000 | 0.0750 |
| [37 – 41] | 7 | 4.00 | 0.1000 | 0.1750 |
| Autor: Leslye Quinchiguango | ||||
Se aplica la Prueba Chi-Cuadrado de Bondad de Ajuste (\(\chi^2\)) para determinar si la distribución observada de la variable Range se ajusta significativamente al modelo teórico Uniforme Discreta.
\[H_0: \text{La variable Range sigue una distribución Uniforme Discreta}\] \[H_1: \text{La variable Range NO sigue una distribución Uniforme Discreta}\]
Nivel de significancia: \(\alpha = 0.05\)
El estadístico Chi-Cuadrado se calcula como:
\[\chi^2 = \sum_{i=1}^{k} \frac{(O_i - E_i)^2}{E_i}\]
Donde \(O_i\) = frecuencia observada y \(E_i\) = frecuencia esperada bajo \(H_0\).
obs_test <- tabla_frec$Observada
esp_test <- tabla_frec$Esperada
# Como n = 40 y k = 10, algunas frecuencias esperadas son menores que 5.
# Por ello se fusionan intervalos adyacentes antes de calcular el estadístico.
while (any(esp_test < 5) && length(esp_test) > 2) {
idx_min <- which.min(esp_test)
if (idx_min == 1) {
obs_test[2] <- obs_test[2] + obs_test[1]
esp_test[2] <- esp_test[2] + esp_test[1]
obs_test <- obs_test[-1]
esp_test <- esp_test[-1]
} else {
obs_test[idx_min - 1] <- obs_test[idx_min - 1] + obs_test[idx_min]
esp_test[idx_min - 1] <- esp_test[idx_min - 1] + esp_test[idx_min]
obs_test <- obs_test[-idx_min]
esp_test <- esp_test[-idx_min]
}
}
k_efectivo <- length(obs_test)
gl <- max(k_efectivo - 1, 1)
chi_stat <- sum((obs_test - esp_test)^2 / esp_test)
p_valor <- pchisq(chi_stat, df = gl, lower.tail = FALSE)
chi_critico <- qchisq(0.95, df = gl)
cat("=== Prueba Chi-Cuadrado de Bondad de Ajuste ===\n")
## === Prueba Chi-Cuadrado de Bondad de Ajuste ===
cat("Clases efectivas tras fusión (k*):", k_efectivo, "\n")
## Clases efectivas tras fusión (k*): 2
cat("Estadístico Chi² calculado:", round(chi_stat, 6), "\n")
## Estadístico Chi² calculado: 2.5
cat("Grados de libertad (gl = k* - 1):", gl, "\n")
## Grados de libertad (gl = k* - 1): 1
cat("Valor p:", format(p_valor, scientific = TRUE, digits = 4), "\n")
## Valor p: 1.138e-01
cat("Nivel de significancia α:", 0.05, "\n")
## Nivel de significancia α: 0.05
cat("Valor crítico χ²(0.95,", gl, "):", round(chi_critico, 4), "\n")
## Valor crítico χ²(0.95, 1 ): 3.8415
if (p_valor > 0.05) {
cat("\nDECISIÓN: No se rechaza H₀.\n")
cat("CONCLUSIÓN: Los datos se ajustan a una distribución Uniforme Discreta (α = 0.05).\n")
} else {
cat("\nDECISIÓN: Se rechaza H₀.\n")
cat("CONCLUSIÓN: Los datos NO se ajustan a una distribución Uniforme Discreta (α = 0.05).\n")
}
##
## DECISIÓN: No se rechaza H₀.
## CONCLUSIÓN: Los datos se ajustan a una distribución Uniforme Discreta (α = 0.05).
tabla_chi <- data.frame(
Variable = "Range",
Test_Pearson = round((1 - p_valor) * 100, 2),
Chi_Cuadrado = round(chi_stat, 4),
Umbral_Aceptacion = round(chi_critico, 2),
Resultado_Final = ifelse(p_valor > 0.05,
"Modelo Aceptado",
"Modelo Rechazado")
)
tabla_chi %>%
gt() %>%
tab_header(
title = md("**TABLA N°2: RESUMEN DEL TEST DE BONDAD AL MODELO DE PROBABILIDAD (UNIFORME DISCRETA)**")
) %>%
cols_label(
Variable = md("**Variable**"),
Test_Pearson = md("**Test Pearson (%)**"),
Chi_Cuadrado = md("**Chi Cuadrado**"),
Umbral_Aceptacion = md("**Umbral de Aceptación**"),
Resultado_Final = md("**Resultado Final**")
) %>%
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", align = "center")
),
locations = cells_title()
) %>%
tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(
table.width = pct(85),
heading.title.font.size = px(14),
table.font.size = px(13),
data_row.padding = px(8)
)
| TABLA N°2: RESUMEN DEL TEST DE BONDAD AL MODELO DE PROBABILIDAD (UNIFORME DISCRETA) | ||||
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de Aceptación | Resultado Final |
|---|---|---|---|---|
| Range | 88.62 | 2.5 | 3.84 | Modelo Aceptado |
| Autor: Leslye Quinchiguango | ||||
Se estima el intervalo de confianza al 95% para la proporción poblacional de cada clase mediante la aproximación normal.
\[IC_{95\%}: \hat{p} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\]
z <- qnorm(0.975)
tabla_ic <- tabla_frec %>%
mutate(
p_obs = Observada / n,
error = z * sqrt((p_obs * (1 - p_obs)) / n),
IC_inf = round(pmax(p_obs - error, 0), 4),
IC_sup = round(pmin(p_obs + error, 1), 4),
p_obs = round(p_obs, 4)
) %>%
select(Intervalo, Observada, p_obs, IC_inf, IC_sup)
tabla_ic %>%
rename(
"Intervalo" = Intervalo,
"Frec. Obs." = Observada,
"p̂ observada" = p_obs,
"IC Inferior 95%" = IC_inf,
"IC Superior 95%" = IC_sup
) %>%
gt() %>%
tab_header(
title = md("**Tabla N°3: Intervalos de Confianza al 95%**"),
subtitle = md("*Proporción por intervalo de clase — Range*")
) %>%
cols_label(
"Intervalo" = md("**Intervalo**"),
"Frec. Obs." = md("**Frec. Obs.**"),
"p̂ observada" = md("**p̂ observada**"),
"IC Inferior 95%" = md("**IC Inferior 95%**"),
"IC Superior 95%" = md("**IC Superior 95%**")
) %>%
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, nrow(tabla_ic), by = 2))
) %>%
tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(
table.width = pct(80),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°3: Intervalos de Confianza al 95% | ||||
| Proporción por intervalo de clase — Range | ||||
| Intervalo | Frec. Obs. | p̂ observada | IC Inferior 95% | IC Superior 95% |
|---|---|---|---|---|
| [1 – 5) | 5 | 0.125 | 0.0225 | 0.2275 |
| [5 – 9) | 4 | 0.100 | 0.0070 | 0.1930 |
| [9 – 13) | 2 | 0.050 | 0.0000 | 0.1175 |
| [13 – 17) | 8 | 0.200 | 0.0760 | 0.3240 |
| [17 – 21) | 5 | 0.125 | 0.0225 | 0.2275 |
| [21 – 25) | 4 | 0.100 | 0.0070 | 0.1930 |
| [25 – 29) | 1 | 0.025 | 0.0000 | 0.0734 |
| [29 – 33) | 1 | 0.025 | 0.0000 | 0.0734 |
| [33 – 37) | 3 | 0.075 | 0.0000 | 0.1566 |
| [37 – 41] | 7 | 0.175 | 0.0572 | 0.2928 |
| Autor: Leslye Quinchiguango | ||||
par(mar = c(9, 6, 5, 2))
obs_vals <- tabla_frec$Observada
esp_vals <- rep(tabla_frec$Esperada[1], k)
barplot(
rbind(obs_vals, esp_vals),
beside = TRUE,
col = c("gray30", "gray75"),
names.arg = etiq_intervalo,
ylim = c(0, max(obs_vals) * 1.25),
las = 2,
cex.names = 0.75,
main = ""
)
mtext("Frecuencia", side = 2, line = 4.5, cex = 1)
mtext("Intervalo de Range", side = 1, line = 7.5, cex = 1)
mtext("Gráfica N°1: Frecuencias Observadas vs Esperadas — Uniforme Discreta",
side = 3, line = 2, adj = 0.5, cex = 0.85, font = 2)
legend("topright",
legend = c("Observada", "Esperada (Uniforme)"),
fill = c("gray30", "gray75"),
bty = "n", cex = 0.85)
par(mar = c(9, 6, 5, 2))
p_obs_vals <- tabla_frec$P_observada
barplot(
rbind(p_obs_vals, rep(p_teorica, k)),
beside = TRUE,
col = c("gray30", "gray75"),
names.arg = etiq_intervalo,
ylim = c(0, max(p_obs_vals) * 1.35),
las = 2,
cex.names = 0.75,
ylab = "",
main = ""
)
abline(h = p_teorica, col = "black", lty = 2, lwd = 1.5)
mtext("Probabilidad", side = 2, line = 4.5, cex = 1)
mtext("Intervalo de Range", side = 1, line = 7.5, cex = 1)
mtext("Gráfica N°2: Probabilidades Observadas vs Teóricas (p = 1/10)",
side = 3, line = 2, adj = 0.5, cex = 0.85, font = 2)
legend("topright",
legend = c("P observada", "P teórica (1/10)"),
fill = c("gray30", "gray75"),
bty = "n", cex = 0.85)
par(mar = c(9, 6, 5, 2))
p_obs <- tabla_ic$p_obs
ic_inf <- tabla_ic$IC_inf
ic_sup <- tabla_ic$IC_sup
grises_ic <- gray(seq(0.25, 0.80, length.out = k))
bp3 <- barplot(
p_obs,
col = grises_ic,
names.arg = etiq_intervalo,
ylim = c(0, max(ic_sup) * 1.35),
las = 2,
cex.names = 0.75,
ylab = "",
main = ""
)
arrows(x0 = bp3, y0 = ic_inf,
x1 = bp3, y1 = ic_sup,
angle = 90, code = 3, length = 0.06, lwd = 1.5)
abline(h = p_teorica, col = "black", lty = 2, lwd = 1.5)
mtext("Proporción", side = 2, line = 4.5, cex = 1)
mtext("Intervalo de Range", side = 1, line = 7.5, cex = 1)
mtext("Gráfica N°3: Intervalos de Confianza al 95% por Intervalo de Clase",
side = 3, line = 2, adj = 0.5, cex = 0.85, font = 2)
legend("topright",
legend = c("p̂ observada", "p teórica (1/10)", "IC 95%"),
fill = c("gray60", NA, NA),
lty = c(NA, 2, 1),
lwd = c(NA, 1.5, 1.5),
bty = "n", cex = 0.85)
ic_strings <- sprintf("[%.4f ; %.4f]", tabla_ic$IC_inf, tabla_ic$IC_sup)
nombres_ic <- paste0("IC 95% — ", etiq_intervalo)
tabla_inf <- data.frame(
Indicador = c(
"Variable",
"Tipo de variable",
"Modelo probabilístico",
"Número de intervalos (k)",
"Probabilidad teórica (p = 1/k)",
"Estadístico χ² calculado",
"Grados de libertad",
"Valor p",
paste0("Valor crítico χ²(0.95, ", k - 1, ")"),
"Nivel de significancia (α)",
"Decisión sobre H₀",
nombres_ic
),
Valor = c(
"Range",
"Cuantitativa Discreta Agrupada",
"Uniforme Discreta",
as.character(k),
sprintf("%.4f", p_teorica),
sprintf("%.6f", chi_stat),
as.character(gl),
format(p_valor, scientific = TRUE, digits = 4),
sprintf("%.4f", chi_critico),
"0.05",
ifelse(p_valor > 0.05, "No se rechaza H₀", "Se rechaza H₀"),
ic_strings
)
)
tabla_inf %>%
gt() %>%
tab_header(
title = md("**Tabla N°4: Indicadores Inferenciales**"),
subtitle = md("*Variable Cuantitativa Discreta: Range*")
) %>%
cols_label(
Indicador = md("**Indicador**"),
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, nrow(tabla_inf), by = 2))
) %>%
tab_style(
style = list(
cell_fill(color = "#D6D6D6"),
cell_text(weight = "bold")
),
locations = cells_body(
rows = Indicador == "Decisión sobre H₀",
columns = everything()
)
) %>%
tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
tab_options(
table.width = pct(75),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°4: Indicadores Inferenciales | |
| Variable Cuantitativa Discreta: Range | |
| Indicador | Valor |
|---|---|
| Variable | Range |
| Tipo de variable | Cuantitativa Discreta Agrupada |
| Modelo probabilístico | Uniforme Discreta |
| Número de intervalos (k) | 10 |
| Probabilidad teórica (p = 1/k) | 0.1000 |
| Estadístico χ² calculado | 2.500000 |
| Grados de libertad | 1 |
| Valor p | 1.138e-01 |
| Valor crítico χ²(0.95, 9) | 3.8415 |
| Nivel de significancia (α) | 0.05 |
| Decisión sobre H₀ | No se rechaza H₀ |
| IC 95% — [1 – 5) | [0.0225 ; 0.2275] |
| IC 95% — [5 – 9) | [0.0070 ; 0.1930] |
| IC 95% — [9 – 13) | [0.0000 ; 0.1175] |
| IC 95% — [13 – 17) | [0.0760 ; 0.3240] |
| IC 95% — [17 – 21) | [0.0225 ; 0.2275] |
| IC 95% — [21 – 25) | [0.0070 ; 0.1930] |
| IC 95% — [25 – 29) | [0.0000 ; 0.0734] |
| IC 95% — [29 – 33) | [0.0000 ; 0.0734] |
| IC 95% — [33 – 37) | [0.0000 ; 0.1566] |
| IC 95% — [37 – 41] | [0.0572 ; 0.2928] |
| Autor: Leslye Quinchiguango | |
La variable Range fue modelada bajo una distribución Uniforme Discreta con \(k = 10\) intervalos de clase y probabilidad teórica \(p = 1/10 = 0.1000\) por intervalo, usando una muestra aleatoria reproducible de \(n = 40\) observaciones. Esta elección responde a la naturaleza del sistema PLSS, que distribuye los rangos este-oeste de forma sistemática a lo largo del territorio de Kansas, sin concentración preferencial. La prueba Chi-Cuadrado de bondad de ajuste arrojó un estadístico \(\chi^2 = 2.5\) con un valor \(p = 1.138e-01\), por lo que con un nivel de significancia \(\alpha = 0.05\), no se rechaza H₀: los datos son consistentes con el modelo Uniforme Discreta propuesto. Los intervalos de confianza al 95% para cada clase incluyen el valor teórico \(p = 0.1000\), lo que refuerza la conclusión inferencial.
Autor: Leslye Quinchiguango