Variable Cuantitativa Discreta - Experiencia en Mina La variable MINE_EXPER representa el tiempo laborado específicamente en la mina actual del empleado. Esta variable permite analizar la relación entre la experiencia específica en el lugar de trabajo y la probabilidad de accidentes, identificando si los trabajadores menos experimentados están más expuestos a riesgos.

1 Carga y Preparación de Datos

En esta sección se limpia el entorno de trabajo, se cargan las librerías necesarias y se importa el dataset desde un archivo Excel. Además se extrae y prepara la variable MINE_EXPER para el análisis.

1.1 Carga de Librerías y Datos

# Limpiar entorno
rm(list = ls())

# Cargar librerías
if (!require("readxl")) install.packages("readxl")
if (!require("dplyr")) install.packages("dplyr")
if (!require("knitr")) install.packages("knitr")
if (!require("moments")) install.packages("moments")
library(readxl)
library(dplyr)
library(knitr)
library(moments)

# Cargar datos
ruta <- "C:/Users/klaus/Downloads/5000_Datos.xlsx"
datos <- read_excel(ruta)

cat("✓ Datos cargados exitosamente\n")
## ✓ Datos cargados exitosamente
cat("✓ Dimensiones:", nrow(datos), "observaciones\n")
## ✓ Dimensiones: 4945 observaciones
# Extraer y limpiar variable 
if("MINE_EXPER" %in% names(datos)) {
  cat("✓ Variable encontrada como: MINE_EXPER\n")
  MINE_EXPER_raw <- datos$MINE_EXPER
} else if("EXPERTO_MINA" %in% names(datos)) {
  cat("✓ Variable encontrada como: EXPERTO_MINA\n")
  MINE_EXPER_raw <- datos$EXPERTO_MINA
} else {
  
  # Buscar cualquier columna que contenga "MINE" o "EXPER"
  columnas_relevantes <- grep("MINE|EXPER", names(datos), value = TRUE, ignore.case = TRUE)
  if(length(columnas_relevantes) > 0) {
    cat("✓ Variable encontrada como:", columnas_relevantes[1], "\n")
    MINE_EXPER_raw <- datos[[columnas_relevantes[1]]]
  } else {
    stop("Variable MINE_EXPER no encontrada en el dataset")
  }
}
## ✓ Variable encontrada como: MINE_EXPER
# Convertir a numérico y limpiar
MINE_EXPER <- as.numeric(MINE_EXPER_raw)
MINE_EXPER <- MINE_EXPER[!is.na(MINE_EXPER)]
MINE_EXPER <- MINE_EXPER[MINE_EXPER != 0]
MINE_EXPER <- MINE_EXPER[MINE_EXPER >= 0]  # Según la tabla, valores de 0 a 40

# Tamaño muestral
n <- length(MINE_EXPER)

cat("✓ Datos válidos para análisis:", n, "observaciones\n")
## ✓ Datos válidos para análisis: 4253 observaciones

2 Distribución de Frecuencias - Regla de Sturges

Método estadístico para determinar el número óptimo de intervalos (clases) al construir una tabla de frecuencias agrupadas o un histograma.

2.1 Parámetros de Sturges

Se calculan el número óptimo de intervalos y su amplitud.

# Parámetros de Sturges
R <- max(MINE_EXPER) - min(MINE_EXPER)
k <- floor(1 + 3.3 * log10(n))
A <- R / k

# Crear tabla de parámetros
parametros_sturges <- data.frame(
  Parámetro = c("Rango (R)", 
                "Número de datos (n)", 
                "Fórmula de k", 
                "Número de intervalos (k)", 
                "Amplitud de clase (A)"),
  Cálculo = c(
    paste("max(MINE_EXPER) - min(MINE_EXPER) =", round(max(MINE_EXPER), 4), "-", round(min(MINE_EXPER), 4)),
    paste("n =", n),
    paste("1 + 3.3 × log₁₀(", n, ")"),
    paste("floor(", round(1 + 3.3 * log10(n), 4), ") =", k),
    paste("R / k =", round(R, 4), "/", k, "=", round(A, 4))
  ),
  Valor = c(
    paste(round(R, 4), "años"),
    n,
    round(1 + 3.3 * log10(n), 4),
    k,
    paste(round(A, 4), "años")
  ),
  Unidad = c("años", "datos", "", "intervalos", "años/int.")
)

kable(parametros_sturges, 
      caption = "Tabla 1: Parámetros de la Regla de Sturges",
      align = "l")
Tabla 1: Parámetros de la Regla de Sturges
Parámetro Cálculo Valor Unidad
Rango (R) max(MINE_EXPER) - min(MINE_EXPER) = 58 - 0.02 57.98 años años
Número de datos (n) n = 4253 4253 datos
Fórmula de k 1 + 3.3 × log₁₀( 4253 ) 12.9747
Número de intervalos (k) floor( 12.9747 ) = 12 12 intervalos
Amplitud de clase (A) R / k = 57.98 / 12 = 4.8317 4.8317 años años/int.

2.2 Construcción de Intervalos de Clase

# Definir límites de clase según Sturges
Li <- seq(min(MINE_EXPER), max(MINE_EXPER) - A, by = A)
Ls <- seq(min(MINE_EXPER) + A, max(MINE_EXPER), by = A)

# Ajustar si es necesario
if(length(Ls) < length(Li)) {
  Ls <- c(Ls, max(MINE_EXPER))
}
k <- min(k, length(Li))  # Asegurar que k no sea mayor que el número de intervalos

MC <- (Li[1:k] + Ls[1:k]) / 2

cat("**LÍMITES DE LOS INTERVALOS:**\n\n")
## **LÍMITES DE LOS INTERVALOS:**
cat(sprintf("• Límite inferior inicial: min(MINE_EXPER) = %.4f años\n", round(min(MINE_EXPER), 4)))
## • Límite inferior inicial: min(MINE_EXPER) = 0.0200 años
cat(sprintf("• Límite superior final:   max(MINE_EXPER) = %.4f años\n", round(max(MINE_EXPER), 4)))
## • Límite superior final:   max(MINE_EXPER) = 58.0000 años
cat(sprintf("• Amplitud constante:      A = %.4f años\n", round(A, 4)))
## • Amplitud constante:      A = 4.8317 años
cat(sprintf("• Número de clases:        k = %d\n", k))
## • Número de clases:        k = 12

2.3 Tabla de Distribución de Frecuencias

2.3.1 Frecuencias Absolutas

Se cuenta cuántos valores caen en cada intervalo.

# Calcular frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
  if (i == k) {
    ni[i] <- sum(MINE_EXPER >= Li[i] & MINE_EXPER <= Ls[i])
  } else {
    ni[i] <- sum(MINE_EXPER >= Li[i] & MINE_EXPER < Ls[i])
  }
}

2.3.2 Frecuencias Relativas y Acumuladas

# Calcular frecuencias relativas y acumuladas
hi <- round((ni / n) * 100, 2)
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi), 2)
Hidsc <- round(rev(cumsum(rev(hi))), 2)

2.3.3 Tabla de Frecuencias Relativas y Acumuladas

# Crear tabla de distribución de frecuencias
TDF <- data.frame(
  Clase = 1:k,
  "Lím. Inf." = round(Li[1:k], 2),
  "Lím. Sup." = round(Ls[1:k], 2),
  "Marca Clase" = round(MC, 2),
  "ni" = ni,
  "hi (%)" = hi,
  "Ni ↑" = Niasc,
  "Ni ↓" = Nidsc,
  "Hi ↑ (%)" = Hiasc,
  "Hi ↓ (%)" = Hidsc
)

# Mostrar tabla con kable
kable(TDF,
      caption = "Tabla 2: Distribución de frecuencias de la variable Experiencia en Mina (MINE_EXPER) - Regla de Sturges",
      align = "c") 
Tabla 2: Distribución de frecuencias de la variable Experiencia en Mina (MINE_EXPER) - Regla de Sturges
Clase Lím..Inf. Lím..Sup. Marca.Clase ni hi…. Ni.. Ni…1 Hi…… Hi…….1
1 0.02 4.85 2.44 2691 63.27 2691 4252 63.27 99.98
2 4.85 9.68 7.27 641 15.07 3332 1561 78.34 36.71
3 9.68 14.51 12.10 369 8.68 3701 920 87.02 21.64
4 14.51 19.35 16.93 176 4.14 3877 551 91.16 12.96
5 19.35 24.18 21.76 100 2.35 3977 375 93.51 8.82
6 24.18 29.01 26.59 113 2.66 4090 275 96.17 6.47
7 29.01 33.84 31.43 82 1.93 4172 162 98.10 3.81
8 33.84 38.67 36.26 54 1.27 4226 80 99.37 1.88
9 38.67 43.50 41.09 23 0.54 4249 26 99.91 0.61
10 43.50 48.34 45.92 2 0.05 4251 3 99.96 0.07
11 48.34 53.17 50.75 1 0.02 4252 1 99.98 0.02
12 53.17 58.00 55.58 0 0.00 4252 0 99.98 0.00

3 Gráficas

3.1 Diagrama de Barras

Generamos diagramas de barras tanto Global como Local para las frecuencias absolutas para visualizar el conteo de ocurrencias de los valores de la variable.

Histograma de Frecuencia Absoluta Local

# Calcular media y mediana para usar en abline()
media_local <- mean(MINE_EXPER)
mediana_local <- median(MINE_EXPER)

hist(
  MINE_EXPER,
  breaks = seq(min(MINE_EXPER), max(MINE_EXPER) + A, A),
  right = FALSE,
  main = "Gráfica 1: Histograma de Frecuencias Absolutas Locales",
  xlab = "Experiencia en Mina (años)",
  ylab = "Frecuencia Absoluta (ni)",
  col = "steelblue",
  border = "white"
)

# Añadir líneas de media y mediana (usando variables locales)
abline(v = media_local, col = "red", lwd = 2, lty = 2)
abline(v = mediana_local, col = "blue", lwd = 2, lty = 2)

legend("topright",
       legend = c(paste("Media =", round(media_local, 2)),
                  paste("Mediana =", round(mediana_local, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

Histograma de Frecuencia Absoluta Global

media_global <- mean(MINE_EXPER)
mediana_global <- median(MINE_EXPER)

hist(
  MINE_EXPER,
  breaks = seq(min(MINE_EXPER), max(MINE_EXPER) + A, A),
  right = FALSE,
  main = "Gráfica 2: Histograma de Frecuencias Absolutas Globales",
  xlab = "Experiencia en Mina (años)",
  ylab = "Frecuencia Absoluta (ni)",
  col = "lightcoral",
  ylim = c(0, max(ni) + 5),
  border = "white"
)

# Añadir líneas de media y mediana
abline(v = media_global, col = "red", lwd = 2, lty = 2)
abline(v = mediana_global, col = "blue", lwd = 2, lty = 2)

legend("topright",
       legend = c(paste("Media =", round(media_global, 2)),
                  paste("Mediana =", round(mediana_global, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

Histograma de Frecuencia Relativa Local

# Calcular media y mediana para posicionar las líneas
media_rel_local <- mean(MINE_EXPER)
mediana_rel_local <- median(MINE_EXPER)

intervalos <- paste(round(Li[1:k], 2), round(Ls[1:k], 2), sep = " - ")

# Calcular posición de las líneas en el barplot
pos_media_bar <- (media_rel_local - min(Li[1:k])) / A * 1
pos_mediana_bar <- (mediana_rel_local - min(Li[1:k])) / A * 1

barplot(
  hi,
  names.arg = intervalos,
  col= "darkorange",
  ylim = c(0, max(hi) + 5),
  space = 0,
  cex.names = 0.7,
  ylab = "Frecuencia Relativa (%)",
  xlab = "Intervalos de Experiencia en Mina (años)",
  main = "Gráfica 3: Histograma de Frecuencias Relativas Locales",
  las = 2,
  border = "white"
)

# Añadir líneas verticales de media y mediana
abline(v = pos_media_bar, col = "red", lwd = 2, lty = 2)
abline(v = pos_mediana_bar, col = "blue", lwd = 2, lty = 2)

# Añadir leyenda
legend("topright",
       legend = c(paste("Media =", round(media_rel_local, 2)),
                  paste("Mediana =", round(mediana_rel_local, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

Histograma de Frecuencia Relativa Global

# Calcular media y mediana 
media_rel_global <- mean(MINE_EXPER)
mediana_rel_global <- median(MINE_EXPER)

# Calcular posición de las líneas en el barplot
pos_media_bar_global <- (media_rel_global - min(Li[1:k])) / A * 1
pos_mediana_bar_global <- (mediana_rel_global - min(Li[1:k])) / A * 1

barplot(
  hi,
  names.arg = intervalos,
  col = "mediumpurple",
  ylim = c(0, 100),
  cex.names = 0.7,
  space = 0,
  ylab = "Frecuencia Relativa (%)",
  xlab = "Intervalos de Experiencia en Mina (años)",
  main = "Gráfica 4: Histograma de Frecuencias Relativas Globales",
  las = 2,
  border = "white"
)

# Añadir líneas verticales de media y mediana
abline(v = pos_media_bar_global, col = "red", lwd = 2, lty = 2)
abline(v = pos_mediana_bar_global, col = "blue", lwd = 2, lty = 2)

# Añadir leyenda
legend("topright",
       legend = c(paste("Media =", round(media_rel_global, 2)),
                  paste("Mediana =", round(mediana_rel_global, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

3.2 Ojivas

Adicionalmente, generamos las ojivas que nos representa las frecuencias acumuladas y, de igual manera, el intercepto de las gráficas de la ojiva ascendente y la descendente.

Ojiva Absoluta (Ni)

plot(Ls[1:k], Niasc, 
     type = "o", 
     pch = 16, 
     col = "blue",
     main = "Gráfica 5: Ojiva de Frecuencias Absolutas",
     xlab = "Experiencia en Mina (años)",
     ylab = "Frecuencia Acumulada Absoluta (Ni)")

lines(Ls[1:k], Nidsc, 
      type = "o", 
      pch = 16, 
      col = "red")

legend("topleft",
       c("Ni Ascendente", "Ni Descendente"),
       col = c("blue", "red"),
       pch = 16)

Ojiva Relativa (Hi)

plot(Ls[1:k], Hiasc, 
     type = "o", 
     pch = 16, 
     col = "blue",
     main = "Gráfica 6: Ojiva de Frecuencias Relativas",
     xlab = "Experiencia en Mina (años)",
     ylab = "Frecuencia Acumulada Relativa (%)")

lines(Ls[1:k], Hidsc, 
      type = "o", 
      pch = 16, 
      col = "red")

legend("bottomright", 
       c("Hi Ascendente", "Hi Descendente"),
       col = c("blue", "red"), 
       pch = 16)

3.3 Diagrama de Caja

# Calcular todas las variables necesarias para el boxplot
media_box <- mean(MINE_EXPER)
mediana_box <- median(MINE_EXPER)
Q1_box <- quantile(MINE_EXPER, 0.25)
Q3_box <- quantile(MINE_EXPER, 0.75)
IQR_box <- IQR(MINE_EXPER)

# Calcular outliers 
lim_inf_outlier_box <- Q1_box - 1.5 * IQR_box
lim_sup_outlier_box <- Q3_box + 1.5 * IQR_box
outliers_box <- MINE_EXPER[MINE_EXPER < lim_inf_outlier_box | MINE_EXPER > lim_sup_outlier_box]
n_outliers_box <- length(outliers_box)

boxplot(MINE_EXPER,
        horizontal = TRUE,
        col = "lightblue",
        main = "Gráfica 7: Diagrama de Caja - Variable MINE_EXPER",
        xlab = "Experiencia en Mina (años)",
        ylab = "",
        border = "darkblue")

# Añadir estadísticos importantes (usando variables locales)
points(media_box, 1, pch = 23, bg = "red", cex = 1.2)
legend("topright",
       legend = c(paste("Media:", round(media_box, 2)),
                  paste("Mediana:", round(mediana_box, 2)),
                  paste("Q1:", round(Q1_box, 2)),
                  paste("Q3:", round(Q3_box, 2)),
                  paste("Outliers:", n_outliers_box)),
       bty = "n",
       cex = 0.8)

4 Indicadores

Son valores numéricos que resumen, describen y analizan características de un conjunto de datos. Permiten simplificar y entender grandes volúmenes de información de manera más eficiente.

4.1 Indicadores de Tendencia Central

Son medidas estadísticas que identifican el valor central o típico de un conjunto de datos.

# Calcular indicadores de tendencia central
minimo <- min(MINE_EXPER)
maximo <- max(MINE_EXPER)
rango <- maximo - minimo
media <- mean(MINE_EXPER)
mediana <- median(MINE_EXPER)
moda <- as.numeric(names(sort(table(MINE_EXPER), decreasing = TRUE)[1]))

# Crear tabla
tendencia_central <- data.frame(
  Indicador = c("Mínimo", "Media", "Mediana", "Moda", "Máximo", "Rango"),
  Valor = c(
    round(minimo, 4),
    round(media, 4),
    round(mediana, 4),
    round(moda, 4),
    round(maximo, 4),
    round(rango, 4)
  ),
  Unidad = rep("años", 6),
  Interpretación = c(
    "Valor mínimo observado",
    "Promedio de todos los valores",
    "Valor que divide la muestra en dos partes iguales",
    "Valor más frecuente en la muestra",
    "Valor máximo observado",
    "Diferencia entre el máximo y el mínimo"
  )
)

kable(tendencia_central,
      caption = "Tabla 3: Indicadores de Tendencia Central",
      align = "l")
Tabla 3: Indicadores de Tendencia Central
Indicador Valor Unidad Interpretación
Mínimo 0.0200 años Valor mínimo observado
Media 6.2164 años Promedio de todos los valores
Mediana 2.7500 años Valor que divide la muestra en dos partes iguales
Moda 1.0000 años Valor más frecuente en la muestra
Máximo 58.0000 años Valor máximo observado
Rango 57.9800 años Diferencia entre el máximo y el mínimo

4.2 Indicadores de Dispersión

Se calculan medidas que indican la variabilidad de los datos: varianza, desviación estándar y coeficiente de variación.

# Calcular indicadores de dispersión
varianza <- var(MINE_EXPER)
desv_est <- sd(MINE_EXPER)
CV <- (desv_est / media) * 100

# Interpretación del CV
if(CV < 15) {
  interpretacion_CV <- "BAJA (CV < 15%)"
} else if(CV < 30) {
  interpretacion_CV <- "MODERADA (15% ≤ CV < 30%)"
} else {
  interpretacion_CV <- "ALTA (CV ≥ 30%)"
}

# Crear tabla
dispersion <- data.frame(
  Indicador = c("Varianza", "Desviación Estándar", "Coeficiente de Variación"),
  Valor = c(
    round(varianza, 4),
    round(desv_est, 4),
    paste0(round(CV, 2), "%")
  ),
  Unidad = c("años²", "años", ""),
  Interpretación = c(
    "Medida de dispersión al cuadrado",
    "Dispersión promedio respecto a la media",
    paste("Dispersión relativa:", interpretacion_CV)
  )
)

kable(dispersion,
      caption = "Tabla 4: Indicadores de Dispersión",
      align = "l")
Tabla 4: Indicadores de Dispersión
Indicador Valor Unidad Interpretación
Varianza 71.9761 años² Medida de dispersión al cuadrado
Desviación Estándar 8.4839 años Dispersión promedio respecto a la media
Coeficiente de Variación 136.48% Dispersión relativa: ALTA (CV ≥ 30%)

4.3 Indicadores de Posición

Se calculan medidas que dividen la distribución en partes iguales: cuartiles y rango intercuartílico.

# Calcular indicadores de posición
cuartiles <- quantile(MINE_EXPER)
Q1 <- cuartiles[2]
Q2 <- cuartiles[3]
Q3 <- cuartiles[4]
IQR_val <- IQR(MINE_EXPER)

# Detección de outliers
lim_inf_outlier <- Q1 - 1.5 * IQR_val
lim_sup_outlier <- Q3 + 1.5 * IQR_val
outliers <- MINE_EXPER[MINE_EXPER < lim_inf_outlier | MINE_EXPER > lim_sup_outlier]
n_outliers <- length(outliers)
porc_outliers <- round((n_outliers / n) * 100, 2)

# Crear tabla
posicion <- data.frame(
  Indicador = c("Cuartil 1 (Q1)", "Cuartil 2 (Q2 - Mediana)", "Cuartil 3 (Q3)", 
                "Rango Intercuartílico (IQR)", "Límite Inferior Outliers", 
                "Límite Superior Outliers", "Número de Outliers"),
  Valor = c(
    round(Q1, 4),
    round(Q2, 4),
    round(Q3, 4),
    round(IQR_val, 4),
    round(lim_inf_outlier, 4),
    round(lim_sup_outlier, 4),
    paste0(n_outliers, " (", porc_outliers, "%)")
  ),
  Unidad = c(rep("años", 6), "observaciones"),
  Interpretación = c(
    "25% de datos por debajo de este valor",
    "50% de datos por debajo de este valor (coincide con mediana)",
    "75% de datos por debajo de este valor",
    "Rango del 50% central de datos (Q3 - Q1)",
    "Límite inferior para detección de valores atípicos",
    "Límite superior para detección de valores atípicos",
    "Cantidad y porcentaje de valores atípicos detectados"
  )
)

kable(posicion,
      caption = "Tabla 5: Indicadores de Posición y Detección de Outliers",
      align = "l")
Tabla 5: Indicadores de Posición y Detección de Outliers
Indicador Valor Unidad Interpretación
Cuartil 1 (Q1) 0.69 años 25% de datos por debajo de este valor
Cuartil 2 (Q2 - Mediana) 2.75 años 50% de datos por debajo de este valor (coincide con mediana)
Cuartil 3 (Q3) 8.08 años 75% de datos por debajo de este valor
Rango Intercuartílico (IQR) 7.39 años Rango del 50% central de datos (Q3 - Q1)
Límite Inferior Outliers -10.395 años Límite inferior para detección de valores atípicos
Límite Superior Outliers 19.165 años Límite superior para detección de valores atípicos
Número de Outliers 380 (8.93%) observaciones Cantidad y porcentaje de valores atípicos detectados

4.4 Indicadores de Forma

Se calculan medidas que describen la forma de la distribución: asimetría y curtosis.

# Calcular coeficiente de asimetría de Fisher
asimetria <- moments::skewness(MINE_EXPER)

# Interpretación de asimetría
if(abs(asimetria) < 0.5) {
  interpretacion_asimetria <- "Distribución simétrica"
} else if(asimetria > 0) {
  interpretacion_asimetria <- "Asimetría positiva (sesgo a la derecha)"
} else {
  interpretacion_asimetria <- "Asimetría negativa (sesgo a la izquierda)"
}

# Calcular coeficiente de curtosis (exceso)
curtosis <- moments::kurtosis(MINE_EXPER) - 3  # Restamos 3 para exceso de curtosis

# Interpretación de curtosis
if(abs(curtosis) < 0.5) {
  interpretacion_curtosis <- "Distribución mesocúrtica (normal)"
} else if(curtosis > 0) {
  interpretacion_curtosis <- "Distribución leptocúrtica (picuda)"
} else {
  interpretacion_curtosis <- "Distribución platicúrtica (aplanada)"
}

# Crear tabla
forma <- data.frame(
  Indicador = c("Coeficiente de Asimetría (Fisher)", "Interpretación Asimetría",
                "Coeficiente de Curtosis (Exceso)", "Interpretación Curtosis"),
  Valor = c(
    round(asimetria, 4),
    interpretacion_asimetria,
    round(curtosis, 4),
    interpretacion_curtosis
  ),
  Fórmula = c(
    "g₁ = E[(X-μ)³]/σ³",
    "|g₁| < 0.5: Simétrica; g₁ > 0: Positiva; g₁ < 0: Negativa",
    "g₂ = E[(X-μ)⁴]/σ⁴ - 3",
    "|g₂| < 0.5: Mesocúrtica; g₂ > 0: Leptocúrtica; g₂ < 0: Platicúrtica"
  )
)

kable(forma,
      caption = "Tabla 6: Indicadores de Forma de la Distribución",
      align = "l")
Tabla 6: Indicadores de Forma de la Distribución
Indicador Valor Fórmula
Coeficiente de Asimetría (Fisher) 2.0694 g₁ = E[(X-μ)³]/σ³
Interpretación Asimetría Asimetría positiva (sesgo a la derecha) |g₁| < 0.5: Simétrica; g₁ > 0: Positiva; g₁ < 0: Negativa
Coeficiente de Curtosis (Exceso) 4.1351 g₂ = E[(X-μ)⁴]/σ⁴ - 3
Interpretación Curtosis Distribución leptocúrtica (picuda) |g₂| < 0.5: Mesocúrtica; g₂ > 0: Leptocúrtica; g₂ < 0: Platicúrtica

4.5 Tabla resumen de Indicadores

# Crear tabla resumen completa
tabla_resumen <- data.frame(
  Categoría = c("Tendencia Central", "Tendencia Central", "Tendencia Central", 
                "Tendencia Central", "Tendencia Central", "Tendencia Central",
                "Dispersión", "Dispersión", "Dispersión",
                "Posición", "Posición", "Posición", "Posición",
                "Forma", "Forma", "Forma", "Forma"),
  Indicador = c("Mínimo", "Media", "Mediana", "Moda", "Máximo", "Rango",
                "Varianza", "Desviación Estándar", "Coeficiente de Variación",
                "Cuartil 1 (Q1)", "Cuartil 2 (Q2)", "Cuartil 3 (Q3)", 
                "Rango Intercuartílico",
                "Asimetría (g₁)", "Interpretación Asimetría",
                "Curtosis (g₂)", "Interpretación Curtosis"),
  Valor = c(
    round(minimo, 4), round(media, 4), round(mediana, 4), round(moda, 4), 
    round(maximo, 4), round(rango, 4),
    round(varianza, 4), round(desv_est, 4), paste0(round(CV, 2), "%"),
    round(Q1, 4), round(Q2, 4), round(Q3, 4), round(IQR_val, 4),
    round(asimetria, 4), interpretacion_asimetria,
    round(curtosis, 4), interpretacion_curtosis
  ),
  Unidad = c("años", "años", "años", "años", "años", "años",
             "años²", "años", "", "años", "años", "años", "años",
             "", "", "", "")
)

kable(tabla_resumen,
      caption = "Tabla 7: Resumen Completo de Indicadores Estadísticos - Variable MINE_EXPER",
      align = "l",
      row.names = FALSE)
Tabla 7: Resumen Completo de Indicadores Estadísticos - Variable MINE_EXPER
Categoría Indicador Valor Unidad
Tendencia Central Mínimo 0.02 años
Tendencia Central Media 6.2164 años
Tendencia Central Mediana 2.75 años
Tendencia Central Moda 1 años
Tendencia Central Máximo 58 años
Tendencia Central Rango 57.98 años
Dispersión Varianza 71.9761 años²
Dispersión Desviación Estándar 8.4839 años
Dispersión Coeficiente de Variación 136.48%
Posición Cuartil 1 (Q1) 0.69 años
Posición Cuartil 2 (Q2) 2.75 años
Posición Cuartil 3 (Q3) 8.08 años
Posición Rango Intercuartílico 7.39 años
Forma Asimetría (g₁) 2.0694
Forma Interpretación Asimetría Asimetría positiva (sesgo a la derecha)
Forma Curtosis (g₂) 4.1351
Forma Interpretación Curtosis Distribución leptocúrtica (picuda)

5 Conclusiones

La variable MINE_EXPER fluctúa entre [0.02:58.00] años y sus valores giran en torno a 2.75 años (mediana), con una desviación estándar de 8.48 años, presentando un coeficiente de variación de 136.48% (extremadamente heterogéneo). La distribución es fuertemente asimétrica positiva con la existencia de 380 valores atípicos que empiezan desde 19.23 años.

Por todo lo anterior, el comportamiento de la variable es problemático para análisis inferenciales, indicando una distribución altamente sesgada donde la mayoría de los trabajadores tiene poca experiencia específica en la mina actual (mediana de 2.75 años), pero existen casos extremos de trabajadores con hasta 58 años de experiencia en la misma mina. Esta alta variabilidad sugiere que la población laboral está compuesta por dos grupos claramente diferenciados: una mayoría con experiencia limitada y una minoría con experiencia excepcionalmente alta, lo que podría indicar problemas de rotación de personal o políticas de contratación desiguales.