Variable Original: AREA_

Nombre Variable: COD_AREA

Tipo: Cualitativa Nominal


0.- Carga de librerías

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

1.- Carga de datos

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

2.- Selección de la variable

Se selecciona la variable AREA_. A pesar de su nombre, esta columna no mide superficie/área geográfica: sus valores corresponden a códigos de área telefónicos de Estados Unidos (ej. 215, 304, 570), por lo que se clasifica como cualitativa nominal y no como cuantitativa continua.

Adicionalmente, la variable presenta un 83.2% de valores vacíos (2494 de 2996 registros), por lo que el análisis se realiza únicamente sobre los 502 registros que sí cuentan con dato. De los 105 códigos de área distintos presentes, el Top 15 concentra el 56.77% de esos registros, por lo que se agrupan en Top 15 + “Otros Códigos” para la tabla, y los gráficos se construyen únicamente con el Top 15 (misma lógica aplicada en CITY y MCITY).

COD_AREA <- trimws(as.character(datos$AREA_))
COD_AREA <- COD_AREA[!is.na(COD_AREA) & COD_AREA != ""]
n <- length(COD_AREA)

frecuencias <- sort(table(COD_AREA), decreasing = TRUE)

top_n <- 15
top_codigos <- names(frecuencias)[1:top_n]

COD_AREA_agrupada <- ifelse(COD_AREA %in% top_codigos, COD_AREA, "Otros Códigos")

3.- Frecuencia

# --- Tabla completa: Top 15 + "Otros Códigos" ---
TDF_Area <- as.data.frame(table(COD_AREA_agrupada))
colnames(TDF_Area) <- c("Codigo", "ni")

ni <- TDF_Area$ni
hi <- round(ni / sum(ni) * 100, 2)

# Ajuste matemático para forzar que la suma de 'hi' sea exactamente 100
diferencia <- 100 - sum(hi)
if (diferencia != 0) {
  pos_max <- which.max(ni)
  hi[pos_max] <- hi[pos_max] + diferencia
}

TDF_Area <- data.frame(Codigo = TDF_Area$Codigo, ni, hi) %>%
  arrange(desc(ni))

# Se asegura que "Otros Códigos" quede al final de la tabla
TDF_Area <- TDF_Area %>%
  arrange(Codigo == "Otros Códigos", desc(ni))

# Fila de resumen (TOTAL)
Summary <- data.frame(Codigo = "TOTAL", ni = sum(TDF_Area$ni), hi = sum(TDF_Area$hi))
TDF_Area_suma <- rbind(TDF_Area, Summary)

colnames(TDF_Area_suma) <- c("Codigo", "ni", "hi(%)")

# --- Solo Top 15 (sin "Otros Códigos"), usado únicamente para los gráficos ---
TDF_Top15 <- TDF_Area %>%
  filter(Codigo != "Otros Códigos") %>%
  arrange(desc(ni))

4.- Tabla de distribución de frecuencias

TDF_Area_suma %>%
  gt() %>%
  tab_header(
    title    = md("Tabla Nro. 1"),
    subtitle = md("Distribución de frecuencias de la variable Código de Área (AREA_): Top 15 códigos con mayor frecuencia y el resto agrupado en 'Otros Códigos', 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 = Codigo == "TOTAL")
  ) %>%
  tab_source_note(source_note = md("Autor: Luis Cruz "))
Tabla Nro. 1
Distribución de frecuencias de la variable Código de Área (AREA_): Top 15 códigos con mayor frecuencia y el resto agrupado en ‘Otros Códigos’, para el análisis de la actividad minera y emisión de gases en Estados Unidos.
Codigo ni hi(%)
304 48 9.56
334 34 6.77
706 26 5.18
303 23 4.58
307 23 4.58
970 21 4.18
276 17 3.39
606 16 3.19
704 14 2.79
828 14 2.79
320 11 2.19
478 10 1.99
724 10 1.99
270 9 1.79
330 9 1.79
Otros Códigos 217 43.24
TOTAL 502 100.00
Autor: Luis Cruz

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

Nota: los siguientes gráficos se construyen únicamente con los 15 códigos de mayor frecuencia (sin la categoría “Otros Códigos”), ya que esta última domina visualmente el gráfico sin aportar información útil.

5.1- Diagrama de cantidad

par(mar = c(6, 5, 4, 2))
barplot(TDF_Top15$ni,
        names.arg = TDF_Top15$Codigo,
        main = "Gráfica Nro. 1\nTop 15 códigos de área con mayor frecuencia\nen instalaciones mineras de Estados Unidos",
        xlab = "", ylab = "Cantidad (ni)",
        col = "#2E75B6",
        las = 2, cex.names = 0.9)

5.2- Diagramas procentuales

par(mar = c(6, 5, 4, 2))
barplot(TDF_Top15$hi,
        names.arg = TDF_Top15$Codigo,
        main = "Gráfica Nro. 2\nTop 15 códigos de área: porcentaje sobre\nel total de registros con dato",
        xlab = "", ylab = "Porcentaje (%)",
        col = "#AEC6E8",
        las = 2, cex.names = 0.9,
        ylim = c(0, max(TDF_Top15$hi) + 2))

5.3- Diagrama circular

Este gráfico muestra la distribución relativa entre los 15 códigos principales (es decir, qué proporción del Top 15 corresponde a cada uno), no su porcentaje sobre el total de registros (ese dato está en la Tabla Nro. 1).

colores <- c("#1f78b4","#33a02c","#e31a1c","#ff7f00",
             "#6a3d9a","#b15928","#a6cee3","#b2df8a",
             "#fb9a99","#fdbf6f","#cab2d6","#ffff99",
             "#8dd3c7","#bc80bd","#ccebc5")

hi_relativo <- round(TDF_Top15$ni / sum(TDF_Top15$ni) * 100, 2)

layout(matrix(1:2, nrow = 1), widths = c(1, 1.8))

par(mar = c(2, 2, 4, 1))
pie(hi_relativo,
    labels = NA,
    col = colores[1:nrow(TDF_Top15)],
    radius = 0.9,
    main = "Gráfica Nro. 3\nDistribución relativa entre el\nTop 15 de códigos de área")

par(mar = c(2, 1, 4, 1))
plot.new()
legend("left",
       legend = paste0(TDF_Top15$Codigo, " (", hi_relativo, "%)"),
       fill = colores[1:nrow(TDF_Top15)],
       title = "CÓDIGO DE ÁREA",
       bty = "n", cex = 0.95)

6.- Indicadores estadísticos

# Cálculo de la moda (Mo): el código con mayor frecuencia (ni)
Moda_row <- TDF_Top15[which.max(TDF_Top15$ni), ]
Mo <- as.character(Moda_row$Codigo[1])

tabla_indicadores <- data.frame(
  "Variable" = "Código de Área (AREA_)",
  "Rango" = "-",
  "X" = "-",
  "Me" = "-",
  "Mo" = Mo,
  "V" = "-",
  "Sd" = "-",
  "Cv" = "-",
  "As" = "-",
  "K" = "-",
  "Valores Atípicos" = "-"
)

kable(tabla_indicadores, align = 'c',
      caption = "Indicadores estadísticos de la variable Código de Área (AREA_)")
Indicadores estadísticos de la variable Código de Área (AREA_)
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Código de Área (AREA_) - - - 304 - - - - - -

7.- Conclusión

El valor más frecuente de la variable Código de Área es 304, con 48 instalaciones (9.56% del total).