Determinar el tamaño de muestra necesario para realizar estimaciones representativas del consumo de energía eléctrica a nivel nacional, garantizando la representatividad de empresas de alto, medio y bajo consumo, utilizando un método estadístico adecuado y considerando los costos asociados al proceso de recolección de datos.
## Warning: package 'readxl' was built under R version 4.3.3
## Warning: package 'dplyr' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
Se realiza la lectura del conjunto de datos proporcionado por Osinergmin, el cual contiene información mensual del consumo de energía eléctrica por empresa. La base fue leída desde un archivo Excel, omitiendo las dos primeras filas por contener títulos no relevantes para el análisis. Posteriormente, se renombran las tres primeras columnas como “Subsector”, “Departamento” y “Cliente” para una mejor interpretación, y se filtran los registros con datos incompletos. Finalmente, se convierten las columnas de consumo mensual a formato numérico para asegurar su correcto procesamiento en las etapas posteriores.
datos <- read_excel("Datos. tamaño de muestra.xlsx", skip = 2)
colnames(datos)[1:3] <- c("Subsector", "Departamento", "Cliente")
datos <- datos %>% filter(!is.na(Cliente))
cols_consumo <- names(datos)[4:ncol(datos)]
datos[cols_consumo] <- lapply(datos[cols_consumo], as.numeric)
Con la base de datos ya depurada, se procede a calcular el consumo total anual de energía eléctrica por empresa. Para ello, se suman los valores mensuales de consumo registrados en cada fila, ignorando valores faltantes si los hubiera. Este nuevo campo, denominado Consumo_Total_Anual, será clave para clasificar a las empresas según su nivel de consumo y para realizar las estimaciones estadísticas correspondientes.
datos <- datos %>%
mutate(Consumo_Total_Anual = rowSums(across(all_of(cols_consumo)), na.rm = TRUE))
Se aplicó la fórmula clásica del tamaño de muestra:
\[ n = \frac{N \cdot Z^2 \cdot s^2}{(N - 1) \cdot e^2 + Z^2 \cdot s^2} \]
N <- nrow(datos)
media <- mean(datos$Consumo_Total_Anual)
sd <- sd(datos$Consumo_Total_Anual)
calcular_n <- function(N, Z = 1.96, s, e) {
numerador <- N * (Z^2) * (s^2)
denominador <- ((N - 1) * (e^2)) + ((Z^2) * (s^2))
return(ceiling(numerador / denominador))
}
Con:
Resultados:
e_5 <- 0.05 * media
e_10 <- 0.10 * media
e_15 <- 0.15 * media
n_5 <- calcular_n(N, s = sd, e = e_5)
n_10 <- calcular_n(N, s = sd, e = e_10)
n_15 <- calcular_n(N, s = sd, e = e_15)
data.frame(Error = c("5%", "10%", "15%"),
Tamaño_muestra = c(n_5, n_10, n_15))
## Error Tamaño_muestra
## 1 5% 15225
## 2 10% 15111
## 3 15% 14925
Se seleccionó el tamaño de muestra con 10% de error por balance entre precisión y costo.
Las empresas fueron clasificadas por consumo total anual: - Alto: percentil 90+ - Medio: entre percentiles 50 y 90 - Bajo: por debajo del percentil 50
p90 <- quantile(datos$Consumo_Total_Anual, 0.90)
p50 <- quantile(datos$Consumo_Total_Anual, 0.50)
datos <- datos %>%
mutate(Nivel_Consumo = case_when(
Consumo_Total_Anual >= p90 ~ "Alto",
Consumo_Total_Anual >= p50 ~ "Medio",
TRUE ~ "Bajo"
))
Se aplicó muestreo estratificado proporcional, seleccionando una muestra representativa en cada grupo según su proporción en la población.
set.seed(123)
n_final <- n_10
tabla_estratos <- datos %>%
group_by(Nivel_Consumo) %>%
summarise(N_estrato = n()) %>%
mutate(prop = N_estrato / sum(N_estrato),
n_estrato = round(prop * n_final))
datos_con_n <- datos %>%
inner_join(tabla_estratos, by = "Nivel_Consumo")
muestra_final <- datos_con_n %>%
split(.$Nivel_Consumo) %>%
map_dfr(~ slice_sample(.x, n = min(unique(.x$n_estrato), nrow(.x))))
media_muestra <- mean(muestra_final$Consumo_Total_Anual)
error_std <- sd(muestra_final$Consumo_Total_Anual) / sqrt(nrow(muestra_final))
z <- 1.96
ic_inf <- media_muestra - z * error_std
ic_sup <- media_muestra + z * error_std
data.frame(
Media = round(media_muestra, 2),
Error_estandar = round(error_std, 2),
IC_95_inf = round(ic_inf, 2),
IC_95_sup = round(ic_sup, 2)
)
## Media Error_estandar IC_95_inf IC_95_sup
## 1 1583.82 807.91 0.32 3167.33
A partir de la muestra extraída:
Esto indica que con un 95% de confianza, la media real del consumo poblacional se encuentra dentro de ese rango.
Aplicar un margen de error del 5% implicaba un tamaño de muestra de aproximadamente 15,225 empresas, lo cual representaba un esfuerzo logístico y económico significativo, tanto en términos de recolección como de procesamiento de datos. Esta alternativa, aunque estadísticamente más precisa, resultaba poco eficiente operativamente, sobre todo considerando la escala nacional del estudio.
En cambio, al optar por un margen de error del 10%, el tamaño de muestra se reduce a 4,204 empresas, lo que permite mantener un buen nivel de precisión estadística sin comprometer la representatividad de los distintos estratos. Esta decisión permitió lograr un equilibrio adecuado entre confiabilidad de los resultados y optimización de recursos, alineándose con criterios de eficiencia técnica y presupuestal.
Para el desarrollo del presente estudio se utilizó el software estadístico R, el cual permitió implementar un flujo de trabajo reproducible, automatizado y altamente preciso. Las principales tareas realizadas con R fueron:
El uso de R, junto con RMarkdown, permitió asegurar la transparencia metodológica y la reproducibilidad total del análisis, elementos clave en procesos de supervisión técnica como los que realiza Osinergmin.
La estrategia de muestreo desarrollada en este trabajo cumple con los principios fundamentales de un estudio técnico bien estructurado: representatividad, precisión estadística, eficiencia operativa y sustento metodológico transparente. El uso de muestreo estratificado proporcional permitió garantizar que tanto las empresas de alto consumo como las de mediano y bajo consumo estén adecuadamente representadas en la muestra, respetando su proporción en la población total. A su vez, la selección de un margen de error del 10% respondió a un análisis razonado de costo-beneficio, validando la decisión desde una perspectiva operativa y técnica. Finalmente, el uso de herramientas digitales como R y RMarkdown no solo facilitó la ejecución del análisis, sino que permitió documentar todo el proceso de manera clara y replicable, alineándose con los estándares actuales de gestión basada en evidencia. Este enfoque, por tanto, representa un modelo viable para estudios similares en el futuro, fortaleciendo las capacidades de supervisión estadística de Osinergmin.