library(dplyr)
library(gt)
datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
sep = ";", stringsAsFactors = FALSE)
SUBUNIT_NU <- as.numeric(datos$SUBUNIT_NU)
SUBUNIT_NU <- na.omit(SUBUNIT_NU)
n <- length(SUBUNIT_NU)
n
## [1] 2921
valores <- 0:4
ni <- as.vector(table(factor(SUBUNIT_NU, levels = valores)))
hi <- round((ni/sum(ni))*100, 2)
TDFsub <- data.frame(valores, ni, hi)
fila_total <- data.frame(
valores = "TOTAL",
ni = sum(TDFsub$ni),
hi = round(sum(TDFsub$hi), 2)
)
TDFsub_total <- rbind(TDFsub, fila_total)
tabla_sub <- TDFsub_total %>%
gt() %>%
tab_header(
title = md("**Tabla N°1**"),
subtitle = md("Tabla de distribución de frecuencias de SUBUNIT_NU")
) %>%
cols_label(
valores = "Número de subunidad",
ni = "Frecuencia absoluta",
hi = "Frecuencia relativa (%)"
) %>%
tab_source_note(
source_note = md("Autor: Grupo 4 - Minas")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
)
tabla_sub
| Tabla N°1 | ||
| Tabla de distribución de frecuencias de SUBUNIT_NU | ||
| Número de subunidad | Frecuencia absoluta | Frecuencia relativa (%) |
|---|---|---|
| 0 | 106 | 3.63 |
| 1 | 802 | 27.46 |
| 2 | 1134 | 38.82 |
| 3 | 749 | 25.64 |
| 4 | 130 | 4.45 |
| TOTAL | 2921 | 100.00 |
| Autor: Grupo 4 - Minas | ||
barplot(ni,
names.arg = valores,
main = "Gráfica N°1: Distribución de SUBUNIT_NU",
xlab = "Número de subunidad",
ylab = "Frecuencia",
col = "gray")
Por tratarse de una variable de conteo, se conjetura primero un modelo Poisson, siguiendo el mismo criterio usado en el resto de variables discretas del proyecto.
lambda_1 <- mean(SUBUNIT_NU)
lambda_1
## [1] 1.998288
var(SUBUNIT_NU) # var << lambda -> subdispersion, mala senal para Poisson
## [1] 0.8544491
barplot(ni, names.arg = valores,
main = "Gráfica N°2a: Comparación con el modelo Poisson",
xlab = "Número de subunidad", ylab = "Frecuencia", col = "lightgray")
points(seq(0.7, by = 1.2, length.out = 5),
dpois(valores, lambda_1) * n,
type = "b", pch = 19, col = "blue")
La varianza observada (0.85) es notablemente menor que λ (2), lo cual es un indicio de subdispersión incompatible con el supuesto de Poisson (media = varianza). Esto se confirma en el Test de Aprobación. Como alternativa, dado que SUBUNIT_NU está acotada entre 0 y 4, se conjetura un modelo Binomial(size = 4, p), coherente con un conteo con límite superior fijo.
p_1 <- mean(SUBUNIT_NU) / 4
p_1
## [1] 0.4995721
barplot(ni, names.arg = valores,
main = "Gráfica N°2b: Comparación con el modelo Binomial(4, p)",
xlab = "Número de subunidad", ylab = "Frecuencia", col = "lightgray")
points(seq(0.7, by = 1.2, length.out = 5),
dbinom(valores, size = 4, prob = p_1) * n,
type = "b", pch = 19, col = "red")
Fo_1 <- ni
# --- Poisson (se rechaza) ---
Fe_pois <- dpois(valores, lambda_1) * n
x2_pois <- sum((Fo_1 - Fe_pois)^2 / Fe_pois)
gl_pois <- length(Fo_1) - 1 - 1
chi2_c_pois <- qchisq(0.95, gl_pois)
cat(sprintf("POISSON -> chi2=%.2f chi2_c=%.2f %s\n",
x2_pois, chi2_c_pois, ifelse(x2_pois < chi2_c_pois, "APRUEBA", "RECHAZA")))
## POISSON -> chi2=522.86 chi2_c=7.81 RECHAZA
El modelo Poisson se rechaza (Chi² = 522.86 >> Chi² crítico = 7.81). Se prosigue con el modelo Binomial(4, p).
Fe_bin <- dbinom(valores, size = 4, prob = p_1) * n
Fe_bin
## [1] 183.1883 731.5000 1095.3734 729.0000 181.9383
Nota metodológica: las categorías extremas (0 y 4) tienen frecuencias esperadas bajas y generan alta sensibilidad en el Chi-cuadrado con n = 2921. Se agrupan en 3 categorías: {0,1}, {2}, {3,4} — mismo criterio de agrupación ya usado en STAT_DATE (terciles) para pruebas de bondad de ajuste con categorías poco pobladas.
Fo_g <- c(Fo_1[1] + Fo_1[2], Fo_1[3], Fo_1[4] + Fo_1[5])
Fe_g <- c(Fe_bin[1] + Fe_bin[2], Fe_bin[3], Fe_bin[4] + Fe_bin[5])
Fo_g
## [1] 908 1134 879
Fe_g
## [1] 914.6883 1095.3734 910.9383
Fo_pct <- (Fo_g/n)*100
Fe_pct <- (Fe_g/n)*100
plot(Fo_pct, Fe_pct,
xlim = c(0, max(Fo_pct, Fe_pct)),
ylim = c(0, max(Fo_pct, Fe_pct)),
main = "Gráfica N°3: Correlación de frecuencias observadas y esperadas\ndel modelo Binomial de SUBUNIT_NU (agrupado)",
xlab = "Frecuencia Observada (%)",
ylab = "Frecuencia Esperada (%)",
col = "blue3",
pch = 19)
abline(a = 0, b = 1, col = "red", lwd = 2)
Correlacion_1 <- cor(Fo_pct, Fe_pct)*100
Correlacion_1
## [1] 99.62817
grados_libertad_1 <- length(Fo_g) - 1 - 1 # 1 parametro estimado (p)
grados_libertad_1
## [1] 1
nivel_significancia <- 0.95
x2_1 <- sum((Fo_g - Fe_g)^2 / Fe_g)
x2_1
## [1] 2.530797
umbral_aceptacion_1 <- qchisq(nivel_significancia, grados_libertad_1)
umbral_aceptacion_1
## [1] 3.841459
Variable <- c("Número de subunidad (SUBUNIT_NU)")
tabla_resumen_1 <- data.frame(
Variable,
round(Correlacion_1, 2),
round(x2_1, 2),
round(umbral_aceptacion_1, 2)
)
colnames(tabla_resumen_1) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
tabla_resumen_1 %>%
gt() %>%
tab_header(title = md("**Tabla N°2**"),
subtitle = md("Resumen del test de bondad de ajuste (modelo Binomial, agrupado)")) %>%
tab_source_note(source_note = md("Autor: Grupo 4 - Minas"))
| Tabla N°2 | |||
| Resumen del test de bondad de ajuste (modelo Binomial, agrupado) | |||
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de aceptación |
|---|---|---|---|
| Número de subunidad (SUBUNIT_NU) | 99.63 | 2.53 | 3.84 |
| Autor: Grupo 4 - Minas | |||
Con Chi² = 2.53 por debajo del umbral de aceptación 3.84 (95% de confianza, gl = 1), el modelo Binomial(4, p) se acepta.
¿Cuál es la probabilidad de que una mina tenga 3 o más subunidades?
Probabilidad_1 <- (dbinom(3, 4, p_1) + dbinom(4, 4, p_1)) * 100
Probabilidad_1
## [1] 31.18584
x <- valores
y <- dbinom(x, 4, p_1)
plot(x, y,
type = "h",
lwd = 3,
col = "skyblue3",
main = "Gráfica N°4: Cálculo de probabilidades",
ylab = "Probabilidad",
xlab = "Número de subunidad")
points(x, y, pch = 19, col = "skyblue3")
x_section <- 3:4
y_section <- dbinom(x_section, 4, p_1)
segments(x_section, 0, x_section, y_section, col = "red", lwd = 3)
points(x_section, y_section, pch = 19, col = "red")
legend("topright",
legend = c("Modelo Binomial", "Área de Probabilidad"),
col = c("skyblue3", "red"),
lwd = 3,
cex = 0.7)
texto_prob <- paste0("Probabilidad = ", round(Probabilidad_1, 2), " %")
text(x = 1, y = max(y)*0.9,
labels = texto_prob,
col = "black",
cex = 0.8,
font = 2)
# De 300 futuras minas, cuantas tendrian 3 o mas subunidades
cantidad_1 <- (Probabilidad_1/100) * 300
cantidad_1
## [1] 93.55751
n_ic <- n
e <- sqrt(p_1 * (1 - p_1) / (n_ic * 4))
e
## [1] 0.004625664
li <- p_1 - 1.96 * e
li
## [1] 0.4905058
ls <- p_1 + 1.96 * e
ls
## [1] 0.5086384
tabla_media <- data.frame(
round(li, 4),
Variable,
round(ls, 4),
round(e, 5)
)
colnames(tabla_media) <- c("Límite inferior", "Proporción poblacional (p)", "Límite superior", "Error estándar")
tabla_media %>%
gt() %>%
tab_header(title = md("**Tabla N°3**"),
subtitle = md("Intervalo de confianza de la proporción poblacional p (95%)")) %>%
tab_source_note(source_note = md("Autor: Grupo 4 - Minas"))
| Tabla N°3 | |||
| Intervalo de confianza de la proporción poblacional p (95%) | |||
| Límite inferior | Proporción poblacional (p) | Límite superior | Error estándar |
|---|---|---|---|
| 0.4905 | Número de subunidad (SUBUNIT_NU) | 0.5086 | 0.00463 |
| Autor: Grupo 4 - Minas | |||
SUBUNIT_NU es una variable discreta acotada entre 0 y 4. Se conjeturo primero un modelo Poisson(lambda = 2.00), el cual fue rechazado por el test de Chi-cuadrado (subdispersion: varianza observada de 0.85 muy por debajo de lambda). Como alternativa se ajusto un modelo Binomial(n = 4, p = 0.4996), agrupando las categorias poco pobladas {0,1}, {2}, {3,4} (mismo criterio usado en STAT_DATE), con el cual se obtuvo un Chi-cuadrado de 2.53, por debajo del umbral de aceptacion de 3.84 (95% de confianza), y una correlacion de Pearson de 99.63%. La probabilidad de que una mina tenga 3 o mas subunidades es de 31.19%, equivalente a aproximadamente 94 de cada 300 minas futuras. La proporcion poblacional p se estima, con 95% de confianza, entre 0.4905 y 0.5086.