Variable Original: STATE
Nombre Variable: ESTADO
Tipo: Cualitativa Nominal
Escala: Nominal
Justificación de la variable: El estado administrativo responsable de cada mina es variable de interés porque las emisiones de CO2, NOx y CH4 están registradas en razón de esta variable. Cada instalación hereda el valor de emisión del estado al que pertenece administrativamente según STATE (a diferencia de MSTATE, que indica la ubicación física de la mina).
library(dplyr)
library(gt)
datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
sep = ";", stringsAsFactors = FALSE)
ESTADO <- trimws(as.character(datos$STATE))
ESTADO <- ESTADO[!is.na(ESTADO) & ESTADO != ""]
n <- length(ESTADO)
cat("n validos :", n, "\n")
## n validos : 2996
Se agrupan los 48 estados en 8 regiones geográficas para mantener la tabla con máximo 10 filas (recomendación académica). La agrupación es idéntica a la usada en MSTATE, para mantener consistencia metodológica entre ambas variables de estado.
region <- character(length(ESTADO))
for (i in 1:length(ESTADO)) {
if (ESTADO[i] %in% c("KY","WV","VA","PA","TN")) {
region[i] <- "Appalachia"
} else if (ESTADO[i] %in% c("AL","GA","MS","AR","LA","FL","SC","NC","TX","OK")) {
region[i] <- "Sur"
} else if (ESTADO[i] %in% c("OH","IN","NY","MD","NJ","CT","MA","VT","NH","ME","RI","DE")) {
region[i] <- "Noreste"
} else if (ESTADO[i] %in% c("IL","MO","KS","IA","MN","WI","ND","SD","NE","MI")) {
region[i] <- "Centro"
} else if (ESTADO[i] %in% c("AZ","NM","CO","UT","NV","CA")) {
region[i] <- "Suroeste"
} else if (ESTADO[i] %in% c("WA","OR","ID","MT","WY")) {
region[i] <- "Noroeste"
} else if (ESTADO[i] %in% c("AK","HI")) {
region[i] <- "Alaska/Hawaii"
} else {
region[i] <- "Otros"
}
}
cat("Distribucion por region:\n")
## Distribucion por region:
print(table(region))
## region
## Alaska/Hawaii Appalachia Centro Noreste Noroeste
## 22 1509 155 352 123
## Otros Sur Suroeste
## 3 507 325
NOTA: al ser variable NOMINAL no se calculan frecuencias acumuladas (Ni/Hi), ya que las categorías (regiones) no tienen un orden lógico entre sí.
TDF <- as.data.frame(table(region)) %>%
rename(Region = region, ni = Freq) %>%
arrange(desc(ni)) %>%
mutate(hi = round(ni / sum(ni) * 100, 2))
# Ajuste matemático para forzar que la suma de 'hi' sea exactamente 100
diferencia <- 100 - sum(TDF$hi, na.rm = TRUE)
if (diferencia != 0 & nrow(TDF) > 0) {
pos_max <- which.max(TDF$ni)
TDF$hi[pos_max] <- TDF$hi[pos_max] + diferencia
}
# Fila total
TDF_total <- TDF %>%
mutate(Region = as.character(Region)) %>%
bind_rows(
data.frame(Region = "TOTAL", ni = sum(TDF$ni), hi = sum(TDF$hi))
)
TDF_total %>%
gt() %>%
tab_header(
title = md("**Tabla N°1**"),
subtitle = "Distribución Nominal por Región Geográfica (STATE)"
) %>%
cols_label(Region = "Región", ni = "Frecuencia", hi = "Porcentaje (%)") %>%
cols_align(align = "center", columns = everything()) %>%
fmt_number(columns = c(ni, hi), decimals = 0) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Region == "TOTAL")
) %>%
tab_source_note(source_note = md("Autor: Grupo 4 - Minas"))
| Tabla N°1 | ||
| Distribución Nominal por Región Geográfica (STATE) | ||
| Región | Frecuencia | Porcentaje (%) |
|---|---|---|
| Appalachia | 1,509 | 50 |
| Sur | 507 | 17 |
| Noreste | 352 | 12 |
| Suroeste | 325 | 11 |
| Centro | 155 | 5 |
| Noroeste | 123 | 4 |
| Alaska/Hawaii | 22 | 1 |
| Otros | 3 | 0 |
| TOTAL | 2,996 | 100 |
| Autor: Grupo 4 - Minas | ||
par(mar = c(8, 5, 4, 2))
barplot(TDF_graf$ni,
names.arg = TDF_graf$Region,
main = "Gráfica N°1: Distribución de cantidad por región geográfica\nen instalaciones mineras de Estados Unidos",
xlab = "", ylab = "Cantidad (ni)",
col = "#C00000",
las = 2, cex.names = 0.9)
par(mar = c(8, 5, 4, 2))
barplot(TDF_graf$hi,
names.arg = TDF_graf$Region,
main = "Gráfica N°2: Distribución de cantidad en porcentaje\npor región geográfica en instalaciones mineras de Estados Unidos",
xlab = "", ylab = "Porcentaje (%)",
col = "#FF9999",
las = 2, cex.names = 0.9,
ylim = c(0, max(TDF_graf$hi) * 1.2))
colores <- c("#C00000","#FF9999","#7B0000","#FF6666",
"#FF3333","#CC0000","#FF0000","#FFB3B3")
par(mar = c(5, 2, 4, 14), xpd = TRUE)
pie(TDF_graf$hi,
labels = NA,
col = colores[1:nrow(TDF_graf)],
radius = 0.8,
main = "Gráfica N°3: Distribución de cantidad en porcentaje\npor región geográfica")
legend("right",
inset = c(-0.35, 0),
legend = paste0(TDF_graf$Region, " (", TDF_graf$hi, "%)"),
fill = colores[1:nrow(TDF_graf)],
title = "REGIÓN",
bty = "n", xpd = TRUE, cex = 0.8)
par(xpd = FALSE)
moda_region <- TDF_graf[TDF_graf$ni == max(TDF_graf$ni), ]
moda_region
## Region ni hi
## 1 Appalachia 1509 50.37
conclusion <- sprintf(
"La variable estado administrativo (STATE) representa el estado en razón del cual se registran las emisiones de CO2, NOx y CH4 para el año 2018 (a diferencia de MSTATE, que indica la ubicación física de la mina). Se agruparon %d registros válidos en 8 regiones geográficas. La región con mayor concentración administrativa es '%s', con %d instalaciones (%.0f%% del total). Esta distribución es clave para el proyecto: al ser STATE la variable que vincula cada mina con su nivel de emisiones estatales, la región de mayor concentración administrativa es también la que mayor peso tiene en los niveles de CO2, NOx y CH4 reportados en 2018."
, n, moda_region$Region[1], moda_region$ni[1], moda_region$hi[1]
)
print(conclusion)
## [1] "La variable estado administrativo (STATE) representa el estado en razón del cual se registran las emisiones de CO2, NOx y CH4 para el año 2018 (a diferencia de MSTATE, que indica la ubicación física de la mina). Se agruparon 2996 registros válidos en 8 regiones geográficas. La región con mayor concentración administrativa es 'Appalachia', con 1509 instalaciones (50% del total). Esta distribución es clave para el proyecto: al ser STATE la variable que vincula cada mina con su nivel de emisiones estatales, la región de mayor concentración administrativa es también la que mayor peso tiene en los niveles de CO2, NOx y CH4 reportados en 2018."