Variable Original: SUBUNIT_NU

Nombre Variable: NUM_SUBUNIDAD

Tipo: Cuantitativa Discreta


0.- Carga de librerías

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

1.- Leer datos

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

2.- Selección de la variable

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

3.- Conteo (frecuencia)

NOTA: al tener solo 5 valores distintos (0 a 4), no se agrupa en intervalos como en variables continuas; se usa el conteo directo por valor, que ya cumple con el máximo de 10-12 filas recomendado.

TDF <- as.data.frame(table(NUM_SUBUNIDAD))
colnames(TDF) <- c("Valor", "ni")
TDF$Valor <- as.numeric(as.character(TDF$Valor))

TDF$hi     <- round(TDF$ni / n * 100, 2)
TDF$Ni_asc <- cumsum(TDF$ni)
TDF$Ni_des <- rev(cumsum(rev(TDF$ni)))
TDF$Hi_asc <- round(cumsum(TDF$hi), 2)
TDF$Hi_des <- round(rev(cumsum(rev(TDF$hi))), 2)

4.- Tabla de distribución de frecuencia

Summary <- data.frame(
  Valor  = "TOTAL",
  ni     = sum(TDF$ni),
  hi     = round(sum(TDF$hi), 2),
  Ni_asc = "-",
  Ni_des = "-",
  Hi_asc = "-",
  Hi_des = "-"
)

TDF_suma <- rbind(
  data.frame(lapply(TDF, as.character), stringsAsFactors = FALSE),
  Summary
)
colnames(TDF_suma) <- c("N° Subunidades", "ni", "hi(%)", "Ni asc", "Ni dsc", "Hi asc", "Hi dsc")

TDF_suma %>%
  gt() %>%
  tab_header(
    title    = md("Tabla Nro. 1"),
    subtitle = md("Distribución de frecuencias de la variable Número de Subunidades (SUBUNIT_NU) para el análisis de la actividad minera y emisión de gases en Estados Unidos.")
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = `N° Subunidades` == "TOTAL")
  ) %>%
  tab_source_note(source_note = md("Autor: Luis Cruz"))
Tabla Nro. 1
Distribución de frecuencias de la variable Número de Subunidades (SUBUNIT_NU) para el análisis de la actividad minera y emisión de gases en Estados Unidos.
N° Subunidades ni hi(%) Ni asc Ni dsc Hi asc Hi dsc
0 106 3.63 106 2921 3.63 100
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 4.45
TOTAL 2921 100 - - - -
Autor: Luis Cruz

5.- Gráficas de distribución de frecuencia

Histograma

Diagrama de barras general

par(mar = c(6, 5, 4, 2))
barplot(TDF$ni,
        names.arg = TDF$Valor,
        main = "Gráfica Nro. 1\nDistribución de NUM_SUBUNIDAD en instalaciones\nmineras de Estados Unidos",
        xlab = "Número de subunidades", ylab = "Cantidad",
        col = "blue",
        ylim = c(0, max(TDF$ni)),
        cex.names = 1, cex.axis = 0.9)

Diagrama de barras con relación al todo

par(mar = c(6, 5, 4, 2))
barplot(TDF$ni,
        names.arg = TDF$Valor,
        main = "Gráfica Nro. 2\nDistribución de NUM_SUBUNIDAD en instalaciones\nmineras de Estados Unidos",
        xlab = "Número de subunidades", ylab = "Cantidad",
        col = "lightgreen",
        ylim = c(0, n),
        cex.names = 1, cex.axis = 0.9)

Histograma porcentual

Histograma porcentual general

par(mar = c(6, 5, 4, 2))
barplot(TDF$hi,
        names.arg = TDF$Valor,
        main = "Gráfica Nro. 3\nDistribución de frecuencia de NUM_SUBUNIDAD en instalaciones\nmineras de Estados Unidos",
        xlab = "Número de subunidades", ylab = "Porcentaje",
        col = "lightblue",
        ylim = c(0, max(TDF$hi) + 5),
        cex.names = 1, cex.axis = 0.9)

Histograma porcentual con relación al todo

par(mar = c(6, 5, 4, 2))
barplot(TDF$hi,
        names.arg = TDF$Valor,
        main = "Gráfica Nro. 4\nDistribución de frecuencia de NUM_SUBUNIDAD en instalaciones\nmineras de Estados Unidos",
        xlab = "Número de subunidades", ylab = "Porcentaje",
        col = "green",
        ylim = c(0, 100),
        cex.names = 1, cex.axis = 0.9)

6.- Diagrama de cajas

options(scipen = 999)

boxplot(NUM_SUBUNIDAD,
        horizontal = TRUE,
        main = "Gráfica Nro. 5\nDistribución de NUM_SUBUNIDAD en instalaciones\nmineras de Estados Unidos",
        xlab = "Número de subunidades",
        col = "turquoise",
        pch = 1)

summary(NUM_SUBUNIDAD)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   1.998   3.000   4.000

7.- Ojivas

Ojivas Ascendentes y Descendentes (ni)

par(mar = c(9, 6, 4, 2))
x_pos <- TDF$Valor

plot(x_pos, TDF$Ni_des,
     main = "Gráfica Nro. 6\nDistribución de Número de Subunidades por instalaciones\nmineras de Estados Unidos",
     xlab = "Número de subunidades", ylab = "Cantidad",
     col = "orange", type = "o", lwd = 3,
     xaxt = "n",
     ylim = c(0, max(c(TDF$Ni_asc, TDF$Ni_des))))

lines(x_pos, TDF$Ni_asc,
      col = "green", type = "o", lwd = 3)

axis(side = 1, at = x_pos, labels = TDF$Valor, las = 2, cex.axis = 0.9)

Ojivas Ascendentes y Descendentes (hi)

par(mar = c(9, 6, 4, 2))

plot(x_pos, TDF$Hi_des,
     main = "Gráfica Nro. 7\nDistribución de Número de Subunidades por instalaciones\nmineras de Estados Unidos",
     xlab = "Número de subunidades", ylab = "Porcentaje",
     col = "red", type = "o", lwd = 2,
     ylim = c(0, 100),
     xaxt = "n")

lines(x_pos, TDF$Hi_asc,
      col = "blue", type = "o", lwd = 3)

axis(side = 1, at = x_pos, labels = TDF$Valor, las = 2, cex.axis = 0.9)

8.- Indicadores Estadísticos

Indicadores de Tendencia Central

# Media aritmética
media <- mean(NUM_SUBUNIDAD)
media
## [1] 1.998288
# Mediana
mediana <- median(NUM_SUBUNIDAD)
mediana
## [1] 2
# Moda
moda <- as.numeric(names(sort(table(NUM_SUBUNIDAD), decreasing = TRUE))[1])
moda
## [1] 2

Indicadores de Dispersión

# Varianza
varianza <- var(NUM_SUBUNIDAD)
varianza
## [1] 0.8544491
# Desviación estándar
desv <- sd(NUM_SUBUNIDAD)
desv
## [1] 0.9243642
# Coeficiente de variación
cv <- round((desv / media) * 100, 2)
cv
## [1] 46.26

Indicadores de Forma

# Asimetría
asimetria <- skewness(NUM_SUBUNIDAD, type = 2)
asimetria
## [1] 0.06587072
# Curtosis
curtosis <- kurtosis(NUM_SUBUNIDAD, type = 2)
curtosis
## [1] -0.4987003
# Valores atípicos (regla de Tukey: 1.5*IQR)
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)
val_atipicos <- if (n_outs == 0) "Ninguno" else paste(sort(unique(outs)), collapse = ", ")

Tabla_indicadores <- data.frame(
  "Variable" = "Número de Subunidades (SUBUNIT_NU)",
  "Rango" = paste0("[", min(NUM_SUBUNIDAD), ",", max(NUM_SUBUNIDAD), "]"),
  "X" = round(media, 2),
  "Me" = mediana,
  "Mo" = moda,
  "V" = round(varianza, 2),
  "Sd" = round(desv, 2),
  "Cv" = cv,
  "As" = round(asimetria, 2),
  "K" = round(curtosis, 2),
  "Valores Atípicos" = val_atipicos
)

kable(Tabla_indicadores, align = 'c',
      caption = "Indicadores estadísticos de la variable Número de Subunidades (SUBUNIT_NU)")
Indicadores estadísticos de la variable Número de Subunidades (SUBUNIT_NU)
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Número de Subunidades (SUBUNIT_NU) [0,4] 2 2 2 0.85 0.92 46.26 0.07 -0.5 Ninguno

9.- Conclusiones

La variable Número de Subunidades (NUM_SUBUNIDAD) fluctúa entre 0 y 4, y sus valores giran en torno a 2 con una desviación estándar de 0.92 (CV = 46.26%), siendo un conjunto de datos con dispersión moderada. La distribución presenta asimetría positiva (0.07) y no se identificaron valores atípicos.