Variable Original: SUBUNIT_NU

Nombre Variable: NUM_SUBUNIDAD

Tipo: Cuantitativa Discreta

Escala: Razón

Justificación de la variable: El número de subunidades indica el tamaño operativo de cada instalación minera. Una mina con más subunidades implica mayor escala de operación, lo que puede relacionarse con mayores niveles de emisiones de CO2, NOx y CH4 por estado.


1 Carga de Datos y Librerías

library(dplyr)
library(gt)
library(e1071)

datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
                   sep = ";", stringsAsFactors = FALSE)

NUM_SUBUNIDAD <- as.numeric(datos$SUBUNIT_NU)
NUM_SUBUNIDAD <- NUM_SUBUNIDAD[!is.na(NUM_SUBUNIDAD)]
n <- length(NUM_SUBUNIDAD)

cat("n validos :", n, "\n")
## n validos : 2921
cat("Min       :", min(NUM_SUBUNIDAD), "\n")
## Min       : 0
cat("Max       :", max(NUM_SUBUNIDAD), "\n")
## Max       : 4

2 Tabla de Distribución de Cantidad

TDF <- as.data.frame(table(NUM_SUBUNIDAD)) %>%
  rename(Valor = NUM_SUBUNIDAD, fi = Freq) %>%
  mutate(
    Valor  = as.numeric(as.character(Valor)),
    fri    = round(fi / n * 100, 2),
    Ni_asc = cumsum(fi),
    Ni_des = rev(cumsum(rev(fi))),
    Hi_asc = round(cumsum(fri), 2),
    Hi_des = round(rev(cumsum(rev(fri))), 2)
  )

TDF_total <- TDF %>%
  add_row(
    Valor  = NA,
    fi     = sum(TDF$fi),
    fri    = round(sum(TDF$fri), 2),
    Ni_asc = max(TDF$Ni_asc),
    Ni_des = min(TDF$Ni_des),
    Hi_asc = max(TDF$Hi_asc),
    Hi_des = min(TDF$Hi_des)
  )

TDF_total %>%
  mutate(Valor = ifelse(is.na(Valor), "Total", as.character(Valor))) %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla 1**"),
    subtitle = md("Distribución de frecuencias — SUBUNIT_NU")
  ) %>%
  cols_label(
    Valor  = "N° Subunidades", fi = "fi",
    fri    = "fri (%)",
    Ni_asc = "Ni Asc.", Ni_des = "Ni Desc.",
    Hi_asc = "Hi Asc. %", Hi_des = "Hi Desc. %"
  ) %>%
  tab_style(
    style     = cell_text(weight = "bold"),
    locations = cells_body(rows = is.na(Valor))
  ) %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 1
Distribución de frecuencias — SUBUNIT_NU
N° Subunidades fi fri (%) Ni Asc. Ni Desc. Hi Asc. % Hi Desc. %
0 106 3.63 106 2921 3.63 100.00
1 802 27.46 908 2815 31.09 96.37
2 1134 38.82 2042 2013 69.91 68.91
3 749 25.64 2791 879 95.55 30.09
4 130 4.45 2921 130 100.00 4.45
Total 2921 100.00 2921 130 100.00 4.45
Autor: Grupo 4 - Minas

3 Gráficas de Distribución de Cantidad

par(mar = c(5, 5, 4, 2))
barplot(
  TDF_graf$fi,
  names.arg = TDF_graf$Valor,
  col       = "#4472C4",
  main      = "Gráfica 1: Frecuencia Absoluta — NUM_SUBUNIDAD",
  xlab      = "Número de subunidades",
  ylab      = "Frecuencia absoluta (fi)",
  cex.names = 1,
  cex.axis  = 0.9
)

par(mar = c(5, 5, 4, 2))
barplot(
  TDF_graf$fri,
  names.arg = TDF_graf$Valor,
  col       = "#AEC6E8",
  main      = "Gráfica 2: Frecuencia Relativa — NUM_SUBUNIDAD",
  xlab      = "Número de subunidades",
  ylab      = "Frecuencia relativa (%)",
  ylim      = c(0, max(TDF_graf$fri) + 5),
  cex.names = 1,
  cex.axis  = 0.9
)

par(mar = c(5, 5, 4, 2))
plot(
  TDF_graf$Valor, TDF_graf$Ni_asc,
  type = "b", col = "black", pch = 16, lwd = 1.5,
  main = "Gráfica 3: Ojivas Combinadas (Ni) — NUM_SUBUNIDAD",
  xlab = "Número de subunidades",
  ylab = "Frecuencia acumulada absoluta"
)
lines(TDF_graf$Valor, TDF_graf$Ni_des, type = "b", col = "#4472C4", pch = 16, lwd = 1.5)
legend("right", legend = c("Ascendente","Descendente"),
       col = c("black","#4472C4"), lwd = 2, pch = 16, bty = "n")

par(mar = c(5, 5, 4, 2))
plot(
  TDF_graf$Valor, TDF_graf$Hi_asc,
  type = "b", col = "black", pch = 16, lwd = 1.5,
  main = "Gráfica 4: Ojivas Combinadas (Hi) — NUM_SUBUNIDAD",
  xlab = "Número de subunidades",
  ylab = "Frecuencia acumulada relativa (%)",
  ylim = c(0, 105)
)
lines(TDF_graf$Valor, TDF_graf$Hi_des, type = "b", col = "#4472C4", pch = 16, lwd = 1.5)
legend("right", legend = c("Ascendente","Descendente"),
       col = c("black","#4472C4"), lwd = 2, pch = 16, bty = "n")

boxplot(
  NUM_SUBUNIDAD,
  horizontal = TRUE,
  col        = "#AEC6E8",
  border     = "#1F4E79",
  main       = "Gráfica 5: Diagrama de Caja — NUM_SUBUNIDAD",
  xlab       = "Número de subunidades"
)

4 Indicadores Estadísticos

media   <- mean(NUM_SUBUNIDAD)
mediana <- median(NUM_SUBUNIDAD)
moda    <- as.numeric(names(sort(table(NUM_SUBUNIDAD), decreasing = TRUE))[1])
desv    <- sd(NUM_SUBUNIDAD)
cv      <- desv / media * 100
asim    <- skewness(NUM_SUBUNIDAD)
kurt    <- kurtosis(NUM_SUBUNIDAD, type = 2)  # excedente (normal = 0)

q1   <- quantile(NUM_SUBUNIDAD, 0.25)
q3   <- quantile(NUM_SUBUNIDAD, 0.75)
iqr_val <- q3 - q1
lim_inf <- q1 - 1.5 * iqr_val
lim_sup <- q3 + 1.5 * iqr_val
outs <- NUM_SUBUNIDAD[NUM_SUBUNIDAD < lim_inf | NUM_SUBUNIDAD > lim_sup]
n_outs <- length(outs)

Tabla 2: Indicadores Estadísticos

data.frame(
  Indicador = c("Mínimo","Media","Mediana","Moda","Máximo",
                "Desviación Estándar","CV (%)","Asimetría (Fisher)","Curtosis (Excedente)"),
  Valor = c(
    min(NUM_SUBUNIDAD), round(media,4), mediana, moda, max(NUM_SUBUNIDAD),
    round(desv,4), round(cv,2), round(asim,4), round(kurt,4)
  )
) %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla 2**"),
    subtitle = md("Indicadores estadísticos — NUM_SUBUNIDAD")
  ) %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 2
Indicadores estadísticos — NUM_SUBUNIDAD
Indicador Valor
Mínimo 0.0000
Media 1.9983
Mediana 2.0000
Moda 2.0000
Máximo 4.0000
Desviación Estándar 0.9244
CV (%) 46.2600
Asimetría (Fisher) 0.0658
Curtosis (Excedente) -0.4987
Autor: Grupo 4 - Minas

Tabla 3: Outliers

data.frame(
  Outliers = n_outs,
  Minimo   = ifelse(n_outs > 0, min(outs), NA),
  Maximo   = ifelse(n_outs > 0, max(outs), NA)
) %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla 3**"),
    subtitle = md("Outliers de NUM_SUBUNIDAD")
  ) %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 3
Outliers de NUM_SUBUNIDAD
Outliers Minimo Maximo
0 NA NA
Autor: Grupo 4 - Minas

5 Conclusión

conclusion <- sprintf(
"La variable NUM_SUBUNIDAD registra el número total de subunidades operativas de cada instalación minera, con valores entre %d y %d. Se analizaron %d registros válidos. La media es %.4f subunidades y la mediana es %.0f, lo que indica que la mayoría de las instalaciones tienen entre 1 y 2 subunidades. La moda es %.0f, confirmando que ese es el valor más frecuente por mina. El coeficiente de variación de %.2f%% indica una dispersión moderada entre instalaciones. La asimetría de %.4f muestra una distribución %s. Se identificaron %d valores atípicos. Esta variable es relevante para el proyecto porque instalaciones con mayor número de subunidades representan operaciones de mayor escala, lo que puede correlacionarse con mayores niveles de emisiones de CO2, NOx y CH4 por estado.",
min(NUM_SUBUNIDAD), max(NUM_SUBUNIDAD), n, media, mediana, moda, cv, asim,
ifelse(asim > 0, "positiva (cola hacia valores altos)", "negativa (cola hacia valores bajos)"),
n_outs
)
print(conclusion)
## [1] "La variable NUM_SUBUNIDAD registra el número total de subunidades operativas de cada instalación minera, con valores entre 0 y 4. Se analizaron 2921 registros válidos. La media es 1.9983 subunidades y la mediana es 2, lo que indica que la mayoría de las instalaciones tienen entre 1 y 2 subunidades. La moda es 2, confirmando que ese es el valor más frecuente por mina. El coeficiente de variación de 46.26% indica una dispersión moderada entre instalaciones. La asimetría de 0.0658 muestra una distribución positiva (cola hacia valores altos). Se identificaron 0 valores atípicos. Esta variable es relevante para el proyecto porque instalaciones con mayor número de subunidades representan operaciones de mayor escala, lo que puede correlacionarse con mayores niveles de emisiones de CO2, NOx y CH4 por estado."