# Cargar librerías necesarias
library(readxl)
library(dplyr)
library(tidyverse)
library(ggplot2)
library(kableExtra)
library(FactoMineR)
library(factoextra)
library(openxlsx)
# Leer el archivo de Excel
file_path <- "Base SMII 03-18.xlsx"
df <- read_excel(file_path, sheet = 1)
#Quitamos las observaciones referentes al 2003 por la falta de información
df <- df%>%
filter(`Año Censal` != 2003)
Se crean subíndices de eficiencia para diferentes consumos de recursos en relación con la producción bruta total. Estos subíndices permiten evaluar la eficiencia con la que se utiliza cada tipo de recurso (agua, energía, combustibles, envases y papelería) para la producción.
Se calculan cinco subíndices diferentes, uno para cada tipo de recurso, dividiendo la producción bruta total por el consumo del recurso correspondiente. Posterirmente los subíndices se combinan en un índice compuesto de eficiencia, utilizando ponderadores iguales para cada subíndice. Este índice proporciona una medida general de la eficiencia de uso de recursos para cada observación en el dataframe.
# Crear subíndices de eficiencia (producción / consumo) para cada elemento
subindices_eficiencia <- df %>%
mutate(
eficiencia_agua = `A111A Producción bruta total (millones de pesos)` / `K976A Consumo de agua (millones de pesos)`,
eficiencia_energia = `A111A Producción bruta total (millones de pesos)` / `K412A Gasto por consumo de energía eléctrica (millones de pesos)`,
eficiencia_combustibles = `A111A Producción bruta total (millones de pesos)` / `K042A Consumo de combustibles, lubricantes y energéticos (millones de pesos)`,
eficiencia_empaques = `A111A Producción bruta total (millones de pesos)` / `K910A Gastos por consumo de envases y empaques (millones de pesos)`,
eficiencia_papeleria = `A111A Producción bruta total (millones de pesos)` / `K311A Gastos por consumo de papelería y artículos de oficina (millones de pesos)`)
# Asignar ponderadores iguales (1) para cada subíndice
ponderadores_eficiencia <- c(1, 1, 1, 1, 1)
# Calcular el índice compuesto de eficiencia
indice_eficiencia <- subindices_eficiencia %>%
rowwise() %>%
mutate(
indice_eficiencia = sum(c(eficiencia_agua, eficiencia_energia, eficiencia_combustibles, eficiencia_empaques, eficiencia_papeleria) * ponderadores_eficiencia) / sum(ponderadores_eficiencia)
)%>%
select(`Año Censal`,rama_cve,rama,indice_eficiencia, eficiencia_agua, eficiencia_energia, eficiencia_combustibles, eficiencia_empaques, eficiencia_papeleria)
indice_eficiencia<-as.data.frame(indice_eficiencia)
# Ordenar la tabla por rama_cve y rama
indice_eficiencia <- indice_eficiencia %>% arrange(rama_cve, `Año Censal`)
# Filtrar las primeras 15 observaciones
indice_eficiencia_15 <- indice_eficiencia %>% slice(1:15)
indice_eficiencia_15 %>%
kable("html", col.names = c("Año Censal", "Rama Cve", "Rama", "Índice de Eficiencia", "Eficiencia Agua", "Eficiencia Energía", "Eficiencia Combustibles", "Eficiencia Empaques", "Eficiencia Papelería")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Año Censal | Rama Cve | Rama | Índice de Eficiencia | Eficiencia Agua | Eficiencia Energía | Eficiencia Combustibles | Eficiencia Empaques | Eficiencia Papelería |
|---|---|---|---|---|---|---|---|---|
| 2008 | 3111 | Elaboración de alimentos para animales | 749.4134 | 2978.1609 | 131.13923 | 117.26754 | 152.034980 | 368.4645 |
| 2013 | 3111 | Elaboración de alimentos para animales | 465.2265 | 1253.0895 | 126.38023 | 117.24738 | 89.462570 | 739.9527 |
| 2018 | 3111 | Elaboración de alimentos para animales | 405.0582 | 887.1077 | 135.88667 | 86.58018 | 84.571119 | 831.1451 |
| 2008 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 598.2031 | 557.1714 | 81.17397 | 42.86200 | 37.448164 | 2272.3600 |
| 2013 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 535.5738 | 542.9739 | 81.35383 | 70.94045 | 41.734569 | 1940.8662 |
| 2018 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 540.4427 | 269.3525 | 71.76914 | 65.83273 | 32.210070 | 2263.0493 |
| 2008 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 251.7732 | 223.1951 | 94.13810 | 36.17415 | 23.079491 | 882.2793 |
| 2013 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 196.4265 | 288.1816 | 106.37078 | 66.71179 | 29.047752 | 491.8208 |
| 2018 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 370.1212 | 262.4078 | 110.61586 | 92.82670 | 30.183391 | 1354.5724 |
| 2008 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 148.0607 | 281.9694 | 62.61998 | 65.34446 | 8.425119 | 321.9445 |
| 2013 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 258.7174 | 226.8647 | 53.04742 | 63.35483 | 11.941298 | 938.3790 |
| 2018 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 348.9212 | 293.1347 | 76.80189 | 65.65187 | 22.166025 | 1286.8517 |
| 2008 | 3115 | Elaboración de productos lácteos | 325.4649 | 286.3458 | 100.51123 | 58.47284 | 18.807271 | 1163.1873 |
| 2013 | 3115 | Elaboración de productos lácteos | 281.1489 | 456.7619 | 97.73493 | 89.38267 | 27.046070 | 734.8192 |
| 2018 | 3115 | Elaboración de productos lácteos | 442.8505 | 337.3012 | 73.88211 | 32.89014 | 25.639209 | 1744.5397 |
# Guardar el dataframe resultante en un archivo CSV
#write.csv(indice_eficiencia, "indice_eficiencia.csv", row.names = FALSE)
En 2008, la rama de “Elaboración de alimentos para animales” (Rama Cve: 3111) mostró una notable eficiencia en el uso de recursos, reflejada en un índice de eficiencia general de 749.4134. Los subíndices específicos indican un uso particularmente eficiente de varios recursos:
La eficiencia del agua es especialmente alta, lo que sugiere un uso extremadamente eficiente del agua en la producción. También se destaca la alta eficiencia en el uso de papelería y artículos de oficina.
Por otra parte, en 2013, la rama de “Conservación de frutas, verduras, guisos y otros alimentos preparados” (Rama Cve: 3114) presentó un índice de eficiencia general de 258.7174. Los subíndices específicos fueron:
Aunque esta rama mostró una eficiencia notablemente alta en el uso de papelería, la eficiencia en el uso de empaques fue relativamente baja. La eficiencia del agua y de combustibles fue razonable, pero no tan destacada como en el caso de la elaboración de alimentos para animales.
Comparando ambos ejemplos, se observa que la “Elaboración de alimentos para animales” en 2008 presentó una eficiencia general superior (749.4134) en comparación con la “Conservación de frutas, verduras, guisos y otros alimentos preparados” en 2013 (258.7174).
En resumen, aunque ambas ramas muestran fortalezas en diferentes áreas, la “Elaboración de alimentos para animales” en 2008 se destaca por una eficiencia general más alta en la mayoría de los recursos evaluados, con la excepción de la eficiencia en el uso de papelería, donde la “Conservación de frutas, verduras, guisos y otros alimentos preparados” en 2013 mostró un rendimiento superior.
Se crean subíndices de relación de uso para diferentes recursos en relación con la producción bruta total. Estos subíndices permiten evaluar la intensidad del uso de cada tipo de recurso en la producción.
Se calculan cinco subíndices diferentes, uno para cada tipo de recurso, dividiendo el consumo del recurso correspondiente por la producción bruta total. Los subíndices se combinan en un índice compuesto de uso, utilizando ponderadores iguales para cada subíndice. Este índice proporciona una medida general de la intensidad de uso de recursos para cada observación en el dataframe.
# Crear subíndices de relación de uso (consumo / producción) para cada elemento
subindices_uso <- df %>%
mutate(
uso_agua = `K976A Consumo de agua (millones de pesos)` / `A111A Producción bruta total (millones de pesos)`,
uso_energia = `K412A Gasto por consumo de energía eléctrica (millones de pesos)` / `A111A Producción bruta total (millones de pesos)`,
uso_combustibles = `K042A Consumo de combustibles, lubricantes y energéticos (millones de pesos)` / `A111A Producción bruta total (millones de pesos)`,
uso_empaques = `K910A Gastos por consumo de envases y empaques (millones de pesos)` / `A111A Producción bruta total (millones de pesos)`,
uso_papeleria = `K311A Gastos por consumo de papelería y artículos de oficina (millones de pesos)` / `A111A Producción bruta total (millones de pesos)`)
# Asignar ponderadores iguales (1) para cada subíndice
ponderadores_uso <- c(1, 1, 1, 1, 1)
# Calcular el índice compuesto de uso
indice_uso <- subindices_uso %>%
rowwise() %>%
mutate(
indice_uso = sum(c(uso_agua, uso_energia, uso_combustibles, uso_empaques, uso_papeleria) * ponderadores_uso) / sum(ponderadores_uso)
)%>%
select(`Año Censal`,rama_cve,rama,indice_uso, uso_agua, uso_energia, uso_combustibles, uso_empaques, uso_papeleria)
indice_uso<-as.data.frame(indice_uso)
# Ordenar la tabla por rama_cve y rama
indice_uso <- indice_uso %>% arrange(rama_cve, `Año Censal`)
# Filtrar las primeras 15 observaciones
indice_uso_15 <- indice_uso %>% slice(1:15)
indice_uso_15 %>%
kable("html", col.names = c("Año Censal", "Rama Cve", "Rama", "Índice de Uso", "Uso Agua", "Uso Energía", "Uso Combustibles", "Uso Empaques", "Uso Papelería")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Año Censal | Rama Cve | Rama | Índice de Uso | Uso Agua | Uso Energía | Uso Combustibles | Uso Empaques | Uso Papelería |
|---|---|---|---|---|---|---|---|---|
| 2008 | 3111 | Elaboración de alimentos para animales | 0.0051560 | 0.0003358 | 0.0076255 | 0.0085275 | 0.0065774 | 0.0027140 |
| 2013 | 3111 | Elaboración de alimentos para animales | 0.0059538 | 0.0007980 | 0.0079126 | 0.0085290 | 0.0111779 | 0.0013514 |
| 2018 | 3111 | Elaboración de alimentos para animales | 0.0066128 | 0.0011273 | 0.0073591 | 0.0115500 | 0.0118244 | 0.0012032 |
| 2008 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 0.0129177 | 0.0017948 | 0.0123192 | 0.0233307 | 0.0267036 | 0.0004401 |
| 2013 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 0.0105412 | 0.0018417 | 0.0122920 | 0.0140963 | 0.0239610 | 0.0005152 |
| 2018 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 0.0128649 | 0.0037126 | 0.0139336 | 0.0151900 | 0.0310462 | 0.0004419 |
| 2008 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 0.0174418 | 0.0044804 | 0.0106227 | 0.0276440 | 0.0433285 | 0.0011334 |
| 2013 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 0.0128641 | 0.0034700 | 0.0094011 | 0.0149899 | 0.0344261 | 0.0020333 |
| 2018 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 0.0114986 | 0.0038109 | 0.0090403 | 0.0107728 | 0.0331308 | 0.0007382 |
| 2008 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.0313236 | 0.0035465 | 0.0159693 | 0.0153035 | 0.1186927 | 0.0031061 |
| 2013 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.0247703 | 0.0044079 | 0.0188511 | 0.0157841 | 0.0837430 | 0.0010657 |
| 2018 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.0155110 | 0.0034114 | 0.0130205 | 0.0152319 | 0.0451141 | 0.0007771 |
| 2008 | 3115 | Elaboración de productos lácteos | 0.0169148 | 0.0034923 | 0.0099491 | 0.0171020 | 0.0531709 | 0.0008597 |
| 2013 | 3115 | Elaboración de productos lácteos | 0.0123888 | 0.0021893 | 0.0102318 | 0.0111879 | 0.0369739 | 0.0013609 |
| 2018 | 3115 | Elaboración de productos lácteos | 0.0172960 | 0.0029647 | 0.0135351 | 0.0304042 | 0.0390028 | 0.0005732 |
# Guardar el dataframe resultante en un archivo CSV
#write.csv(indice_uso, "indice_uso.csv", row.names = FALSE)
En 2008, la rama de “Elaboración de alimentos para animales” (Rama Cve: 3111) mostró una relación de uso de recursos eficiente, reflejada en un índice de uso general de 0.0051560. Los subíndices específicos indican la relación de uso de varios recursos en la producción:
La relación de uso del agua es particularmente baja, lo que sugiere un uso muy eficiente del agua en la producción. También se destaca la baja relación de uso en energía y empaques.
Así mismo, en 2013, la rama de “Conservación de frutas, verduras, guisos y otros alimentos preparados” (Rama Cve: 3114) presentó un índice de uso general de 0.0247703. Los subíndices específicos para esta rama fueron:
Aunque esta rama mostró una relación de uso baja en papelería, la relación de uso en empaques fue relativamente alta. La relación de uso de agua y combustibles fue razonable, pero más alta en comparación con la elaboración de alimentos para animales.
Comparando ambos ejemplos, se observa que la “Elaboración de alimentos para animales” en 2008 presentó una relación de uso general más baja (0.0051560) en comparación con la “Conservación de frutas, verduras, guisos y otros alimentos preparados” en 2013 (0.0247703).
En resumen, aunque ambas ramas muestran diferentes patrones de uso de recursos, la “Elaboración de alimentos para animales” en 2008 se destaca por una relación de uso general más baja en la mayoría de los recursos evaluados, lo que indica un uso más eficiente de los recursos en comparación con la “Conservación de frutas, verduras, guisos y otros alimentos preparados” en 2013.
Se realiza un análisis de componentes principles para combinar las variables como el consumo de agua, energía y combustibles en unos pocos componentes principales que capturan la mayor parte de la variabilidad de los datos originales.
Se incluye la producción en el análisis con el objetivo de entender las relaciones y variabilidad entre todos los gastos y consumos en relación a la producción.
# Función para realizar PCA por año censal
pca_por_año <- function(df, año) {
# Filtrar el dataframe por año
df_año <- df %>% filter(`Año Censal` == año)
# Seleccionar las variables para PCA
variables_pca <- df_año %>%
select(`A111A Producción bruta total (millones de pesos)`,
`K976A Consumo de agua (millones de pesos)`,
`K412A Gasto por consumo de energía eléctrica (millones de pesos)`,
`K042A Consumo de combustibles, lubricantes y energéticos (millones de pesos)`,
`K910A Gastos por consumo de envases y empaques (millones de pesos)`,
`K311A Gastos por consumo de papelería y artículos de oficina (millones de pesos)`)
# Estandarizar las variables
variables_pca_estandarizadas <- scale(variables_pca)
# Realizar el análisis de componentes principales
pca_result <- prcomp(variables_pca_estandarizadas)
# Proporción de varianza explicada por cada componente principal
pr.var <- pca_result$sdev^2
pve <- pr.var/sum(pr.var)
# Plot de la varianza explicada acumulada
plot(cumsum(pve), xlab="Componente Principal", ylab="Proporción Acumulada de la Varianza Explicada",
ylim=c(0,1), type='b', main = paste("Varianza Explicada -", año))
text(cumsum(pve), labels = round(cumsum(pve), 3), cex = 0.8, pos = 1, col = "black")
# Cargas de los componentes principales
loads_pca <- pca_result$rotation
loads_pca_df <- as.data.frame(loads_pca)
# Vectores de puntuación de los componentes principales
scores_pca <- pca_result$x
# Convertir los scores a un dataframe
scores_pca_df <- as.data.frame(scores_pca)
# Agregar las columnas de identificación
scores_pca_df <- cbind(df_año %>% select(`Año Censal`, rama_cve, rama), scores_pca_df)
return(list(loads_pca_df=loads_pca_df,
scores_pca_df=scores_pca_df))
}
# Lista de años censales
años_censales <- c(2008, 2013, 2018)
# Aplicar la función para cada año censal y guardar los resultados en una lista
resultados_pca <- lapply(años_censales, function(año) pca_por_año(df, año))
# Crear un data frame de loads_pca_df con el año correspondiente
loads_pca_general <- do.call(bind_rows, lapply(1:length(años_censales), function(i) {
res <- resultados_pca[[i]]$loads_pca_df
res$Año_Censal <- años_censales[i]
res
}))
# Mostrar los loads_pca_df de los tres años
loads_pca_general %>%
kable("html", col.names = c("PC 1", "PC 2", "PC 3", "PC 4", "PC 5", "PC 6", "Año Censal")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| PC 1 | PC 2 | PC 3 | PC 4 | PC 5 | PC 6 | Año Censal | |
|---|---|---|---|---|---|---|---|
| A111A Producción bruta total (millones de pesos)…1 | -0.4875736 | -0.3670287 | -0.1065212 | 0.0162769 | -0.7415208 | -0.2570935 | 2008 |
| K976A Consumo de agua (millones de pesos)…2 | -0.5360389 | 0.1089574 | 0.2724981 | 0.0729351 | -0.0122469 | 0.7880774 | 2008 |
| K412A Gasto por consumo de energía eléctrica (millones de pesos)…3 | -0.3625690 | 0.1096382 | -0.6107415 | 0.6085752 | 0.3205680 | -0.1019336 | 2008 |
| K042A Consumo de combustibles, lubricantes y energéticos (millones de pesos)…4 | -0.3625415 | -0.6239799 | 0.1090200 | -0.3260207 | 0.5794881 | -0.1588442 | 2008 |
| K910A Gastos por consumo de envases y empaques (millones de pesos)…5 | -0.3576783 | 0.4632696 | 0.5903573 | 0.1522820 | 0.1060649 | -0.5239144 | 2008 |
| K311A Gastos por consumo de papelería y artículos de oficina (millones de pesos)…6 | -0.2900138 | 0.4872658 | -0.4254243 | -0.7032585 | 0.0133002 | -0.0522378 | 2008 |
| A111A Producción bruta total (millones de pesos)…7 | -0.3861759 | -0.5123547 | -0.1216938 | -0.1252961 | -0.7444989 | -0.0597805 | 2013 |
| K976A Consumo de agua (millones de pesos)…8 | -0.5225977 | 0.0940515 | 0.0711269 | -0.0372500 | 0.2652904 | -0.8007624 | 2013 |
| K412A Gasto por consumo de energía eléctrica (millones de pesos)…9 | -0.4102683 | 0.1112078 | -0.7747656 | -0.2148848 | 0.2739690 | 0.3127564 | 2013 |
| K042A Consumo de combustibles, lubricantes y energéticos (millones de pesos)…10 | -0.1604028 | -0.7613169 | 0.2304104 | 0.0765622 | 0.5396445 | 0.2109516 | 2013 |
| K910A Gastos por consumo de envases y empaques (millones de pesos)…11 | -0.4155566 | 0.2936714 | 0.5568738 | -0.5388379 | -0.0169694 | 0.3746028 | 2013 |
| K311A Gastos por consumo de papelería y artículos de oficina (millones de pesos)…12 | -0.4593729 | 0.2245740 | 0.1291220 | 0.8003311 | -0.0936976 | 0.2693724 | 2013 |
| A111A Producción bruta total (millones de pesos)…13 | -0.5135482 | 0.0318477 | 0.0562321 | 0.4188094 | 0.3956484 | 0.6325764 | 2018 |
| K976A Consumo de agua (millones de pesos)…14 | -0.5081418 | -0.2737900 | 0.0318669 | -0.0497945 | 0.4719380 | -0.6637850 | 2018 |
| K412A Gasto por consumo de energía eléctrica (millones de pesos)…15 | -0.4824886 | 0.2111011 | -0.0901718 | 0.4240800 | -0.6893153 | -0.2439482 | 2018 |
| K042A Consumo de combustibles, lubricantes y energéticos (millones de pesos)…16 | -0.3385656 | -0.6057331 | -0.2908935 | -0.4889413 | -0.3191548 | 0.3048253 | 2018 |
| K910A Gastos por consumo de envases y empaques (millones de pesos)…17 | -0.2971169 | 0.3154310 | 0.7395764 | -0.4931085 | -0.1243632 | 0.0814210 | 2018 |
| K311A Gastos por consumo de papelería y artículos de oficina (millones de pesos)…18 | -0.2058149 | 0.6426911 | -0.5967405 | -0.4000698 | 0.1680933 | 0.0133407 | 2018 |
# Unir los data frames de scores en uno solo
scores_pca_general <- do.call(bind_rows, lapply(resultados_pca, function(res) res$scores_pca_df))
# Ordenar la tabla por rama_cve y Año Censal
scores_pca_general <- scores_pca_general %>% arrange(rama_cve, `Año Censal`)
# Filtrar las primeras 15 observaciones
scores_pca_general_15 <- scores_pca_general %>% slice(1:15)
# Mostrar la tabla unificada
scores_pca_general_15 %>%
kable("html", col.names = c("Año Censal", "Rama Cve", "Rama", "PC 1", "PC 2", "PC 3", "PC 4", "PC 5", "PC 6")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Año Censal | Rama Cve | Rama | PC 1 | PC 2 | PC 3 | PC 4 | PC 5 | PC 6 |
|---|---|---|---|---|---|---|---|---|
| 2008 | 3111 | Elaboración de alimentos para animales | 0.3002864 | 0.1292082 | -0.2959615 | -0.5627747 | -0.2868515 | -0.2496551 |
| 2013 | 3111 | Elaboración de alimentos para animales | 0.3965452 | -0.0693668 | 0.0679107 | -0.0387509 | -0.2560369 | 0.1305147 |
| 2018 | 3111 | Elaboración de alimentos para animales | 0.1429339 | 0.0315329 | 0.1678597 | 0.0474521 | 0.0879387 | 0.2867109 |
| 2008 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | -1.2409863 | -0.1992659 | 0.2987386 | 0.4729781 | -0.1759629 | 0.0927093 |
| 2013 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | -1.0986265 | 0.1330963 | 0.0648685 | -1.0950382 | -0.1652616 | 0.1122358 |
| 2018 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | -0.9626598 | 0.3405308 | 1.2155351 | -0.2795221 | -0.2394498 | 0.1262340 |
| 2008 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | -0.8401932 | 0.1603765 | 0.7310911 | 0.0842631 | -0.0532280 | 0.7738560 |
| 2013 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | -0.5227827 | 0.2993373 | 0.5522177 | -0.3287991 | -0.0361593 | -0.1450371 |
| 2018 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | -0.1851440 | 0.1496705 | 0.8271160 | -0.3098312 | 0.0498567 | 0.1130250 |
| 2008 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | -0.7783472 | 0.9148590 | 0.7480019 | -0.0687544 | 0.0690448 | -0.1866113 |
| 2013 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | -0.6317600 | 0.5561728 | 0.8156369 | -1.1807476 | 0.1408810 | 0.2199943 |
| 2018 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.0746522 | 0.1130078 | 0.7330776 | -0.3056320 | -0.0808672 | 0.0839725 |
| 2008 | 3115 | Elaboración de productos lácteos | -1.8117396 | 0.4827817 | 1.0567976 | 0.3463201 | -0.2322763 | 0.6651093 |
| 2013 | 3115 | Elaboración de productos lácteos | -1.2979883 | 0.4451571 | 0.7225598 | -0.9101039 | -0.2071427 | 0.2983860 |
| 2018 | 3115 | Elaboración de productos lácteos | -0.8602407 | 0.3327996 | 1.3065330 | -0.5655041 | -0.3418656 | 0.2778382 |
# Guardar el dataframe resultante en un archivo CSV
#write.csv(scores_pca_general "scores_pca_general.csv", row.names = FALSE)
La varianza explicada en un Análisis de Componentes Principales (PCA) indica cuánto de la variabilidad total en los datos puede ser atribuida a cada componente principal.
El PC1 (Primer Componente Principal): Explica el 50.2% de la varianza total para los datos del año 2008, el 55.7% para el 2013 y el 56.1% para los del 2018. Esto significa que el primer componente principal captura más de la mitad de la variabilidad presente en los datos originales. Es el componente más importante en términos de explicación de la variabilidad.
PC1 está fuertemente influenciado negativamente por todas las variables, especialmente por la Producción bruta total, el Consumo de agua y el Gasto por consumo de energía eléctrica. Esto significa que una alta puntuación en PC1 corresponde a bajos valores en estas variables y viceversa. PC1 puede interpretarse como una medida general de tamaño o escala operativa de las actividades, donde valores negativos altos de PC1 implican actividades con mayores producciones, consumos de agua, energía, etc.
Se realiza el proceso para calcular componentes principales a partir de los subíndices de eficiencia y uso,.
# Definir una función para realizar el proceso para un año específico
procesar_anio <- function(anio) {
# Filtrar para el año seleccionado
indice_eficiencia_anio <- indice_eficiencia %>% filter(`Año Censal` == anio)
indice_uso_anio <- indice_uso %>% filter(`Año Censal` == anio)
# Seleccionar las variables para el análisis de componentes principales (PCA)
indice_eficiencia_pca_anio <- indice_eficiencia_anio[, 5:9]
indice_uso_pca_anio <- indice_uso_anio[, 5:9]
# Estandarizar las variables
variables_eficiencia_pca_estandarizadas_anio <- scale(indice_eficiencia_pca_anio)
variables_uso_pca_estandarizadas_anio <- scale(indice_uso_pca_anio)
# Realizar el análisis de componentes principales
pca_eficiencia_result_anio <- prcomp(variables_eficiencia_pca_estandarizadas_anio)
pca_uso_result_anio <- prcomp(variables_uso_pca_estandarizadas_anio)
return(list(
pca_eficiencia_result = pca_eficiencia_result_anio,
pca_uso_result = pca_uso_result_anio
))
}
# Aplicar la función para los años 2008, 2013 y 2018
resultados_2008 <- procesar_anio(2008)
resultados_2013 <- procesar_anio(2013)
resultados_2018 <- procesar_anio(2018)
# Acceder a los resultados
pca_eficiencia_2008 <- resultados_2008$pca_eficiencia_result
pca_uso_2008 <- resultados_2008$pca_uso_result
pca_eficiencia_2013 <- resultados_2013$pca_eficiencia_result
pca_uso_2013 <- resultados_2013$pca_uso_result
pca_eficiencia_2018 <- resultados_2018$pca_eficiencia_result
pca_uso_2018 <- resultados_2018$pca_uso_result
#Verificamos la proporción de varianza explicada por cada componente principal
# Función para calcular y graficar la PVE acumulada
graficar_pve <- function(pca_result, anio) {
pr.var <- pca_result$sdev^2
pve <- pr.var/sum(pr.var)
plot(cumsum(pve),
xlab = "Componente Principal",
ylab = "Proporción Acumulada de la Varianza Explicada",
ylim = c(0, 1),
type = 'b',
main = paste("PVE Acumulada - Año", anio))
text(cumsum(pve),
labels = round(cumsum(pve), 3),
cex = 0.8, pos = 1, col = "black")
}
# Aplicar la función a los resultados de PCA de eficiencia para los años 2008, 2013 y 2018
graficar_pve(resultados_2008$pca_eficiencia_result, 2008)
graficar_pve(resultados_2013$pca_eficiencia_result, 2013)
graficar_pve(resultados_2018$pca_eficiencia_result, 2018)
# Aplicar la función a los resultados de PCA de eficiencia para los años 2008, 2013 y 2018
graficar_pve(resultados_2008$pca_uso_result, 2008)
graficar_pve(resultados_2013$pca_uso_result, 2013)
graficar_pve(resultados_2018$pca_uso_result, 2018)
# Función para crear la tabla con las cargas de cada variable y agregar la columna "Año Censal"
crear_tabla_cargas <- function(pca_result, anio) {
loads_pca <- as.data.frame(pca_result$rotation)
loads_pca$`Año Censal` <- anio
colnames(loads_pca) <- c("PC 1", "PC 2", "PC 3", "PC 4", "PC 5", "Año Censal")
return(loads_pca)
}
#Eficiencia
# Crear tablas para cada año
tabla_cargas_2008_ef <- crear_tabla_cargas(resultados_2008$pca_eficiencia_result, 2008)
tabla_cargas_2013_ef <- crear_tabla_cargas(resultados_2013$pca_eficiencia_result, 2013)
tabla_cargas_2018_ef <- crear_tabla_cargas(resultados_2018$pca_eficiencia_result, 2018)
# Combinar las tablas
tabla_cargas_combined_ef <- bind_rows(tabla_cargas_2008_ef, tabla_cargas_2013_ef, tabla_cargas_2018_ef)
# Mostrar la tabla
tabla_cargas_combined_ef %>%
kable("html", col.names = c("PC 1", "PC 2", "PC 3", "PC 4", "PC 5", "Año Censal")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| PC 1 | PC 2 | PC 3 | PC 4 | PC 5 | Año Censal | |
|---|---|---|---|---|---|---|
| eficiencia_agua…1 | -0.5137063 | -0.3446729 | 0.0184415 | 0.7303762 | 0.2889929 | 2008 |
| eficiencia_energia…2 | -0.4420058 | 0.5361297 | -0.2938952 | 0.1972496 | -0.6260304 | 2008 |
| eficiencia_combustibles…3 | -0.4052009 | -0.4031155 | -0.6487694 | -0.4943338 | 0.0896794 | 2008 |
| eficiencia_empaques…4 | -0.4364117 | -0.3263246 | 0.6689762 | -0.3244615 | -0.3876244 | 2008 |
| eficiencia_papeleria…5 | -0.4313858 | 0.5698909 | 0.2117890 | -0.2792883 | 0.6052058 | 2008 |
| eficiencia_agua…6 | -0.5339792 | 0.0936797 | -0.1830687 | 0.3227290 | -0.7539378 | 2013 |
| eficiencia_energia…7 | -0.5160509 | -0.0525781 | 0.3345968 | 0.5836583 | 0.5275557 | 2013 |
| eficiencia_combustibles…8 | -0.1885215 | 0.9412786 | -0.0660316 | -0.2054424 | 0.1785708 | 2013 |
| eficiencia_empaques…9 | -0.4745999 | -0.1812400 | 0.5464619 | -0.6581247 | -0.1007882 | 2013 |
| eficiencia_papeleria…10 | -0.4333270 | -0.2638301 | -0.7426642 | -0.2825850 | 0.3334921 | 2013 |
| eficiencia_agua…11 | -0.5713009 | -0.1122589 | -0.2998822 | 0.1935349 | 0.7304985 | 2018 |
| eficiencia_energia…12 | -0.5485886 | -0.0675363 | 0.1293568 | -0.8048612 | -0.1730739 | 2018 |
| eficiencia_combustibles…13 | -0.1754266 | -0.6891908 | 0.6365533 | 0.2924521 | -0.0592717 | 2018 |
| eficiencia_empaques…14 | -0.5607080 | 0.1932185 | -0.2166131 | 0.4646523 | -0.6208463 | 2018 |
| eficiencia_papeleria…15 | -0.1658247 | 0.6859441 | 0.6642410 | 0.1153804 | 0.2178395 | 2018 |
#Uso
# Crear tablas para cada año
tabla_cargas_2008_uso <- crear_tabla_cargas(resultados_2008$pca_uso_result, 2008)
tabla_cargas_2013_uso <- crear_tabla_cargas(resultados_2013$pca_uso_result, 2013)
tabla_cargas_2018_uso <- crear_tabla_cargas(resultados_2018$pca_uso_result, 2018)
# Combinar las tablas
tabla_cargas_combined_uso <- bind_rows(tabla_cargas_2008_uso, tabla_cargas_2013_uso, tabla_cargas_2018_uso)
# Mostrar la tabla
tabla_cargas_combined_uso %>%
kable("html", col.names = c("PC 1", "PC 2", "PC 3", "PC 4", "PC 5", "Año Censal")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| PC 1 | PC 2 | PC 3 | PC 4 | PC 5 | Año Censal | |
|---|---|---|---|---|---|---|
| uso_agua…1 | 0.4934749 | 0.4284471 | 0.0920193 | -0.6481486 | 0.3799361 | 2008 |
| uso_energia…2 | 0.5504683 | -0.4666881 | 0.1721734 | -0.2333928 | -0.6285467 | 2008 |
| uso_combustibles…3 | 0.5699054 | -0.3108129 | 0.0156410 | 0.5428658 | 0.5325929 | 2008 |
| uso_empaques…4 | 0.3570636 | 0.6504622 | -0.3286618 | 0.4127556 | -0.4135442 | 2008 |
| uso_papeleria…5 | -0.0343601 | 0.2809440 | 0.9239186 | 0.2456843 | -0.0768346 | 2008 |
| uso_agua…6 | 0.6638108 | -0.1738572 | 0.0254020 | -0.0903521 | -0.7213322 | 2013 |
| uso_energia…7 | 0.4933328 | -0.3335556 | 0.5366562 | 0.3029718 | 0.5153363 | 2013 |
| uso_combustibles…8 | -0.2400197 | -0.6723549 | 0.1567944 | -0.6817006 | 0.0320823 | 2013 |
| uso_empaques…9 | 0.3611786 | -0.2517085 | -0.8164092 | -0.0492527 | 0.3704634 | 2013 |
| uso_papeleria…10 | 0.3576571 | 0.5857440 | 0.1422898 | -0.6579537 | 0.2753832 | 2013 |
| uso_agua…11 | -0.7009397 | 0.0964588 | 0.0060314 | -0.0631405 | 0.7038154 | 2018 |
| uso_energia…12 | -0.4223640 | -0.5262120 | -0.1094001 | 0.6709298 | -0.2873924 | 2018 |
| uso_combustibles…13 | -0.3591878 | 0.0591997 | 0.8171923 | -0.2143788 | -0.3920689 | 2018 |
| uso_empaques…14 | -0.4393897 | 0.4504663 | -0.5337198 | -0.2311413 | -0.5154937 | 2018 |
| uso_papeleria…15 | -0.0906259 | -0.7123006 | -0.1879765 | -0.6681930 | -0.0509677 | 2018 |
# Vectores de puntuación los componentes principales
#2008
scores_pca_eficiencia_2008 <- pca_eficiencia_2008$x
scores_pca_uso_2008 <- pca_uso_2008$x
scores_pca_df_eficiencia_2008 <- as.data.frame(scores_pca_eficiencia_2008)
scores_pca_df_uso_2008 <- as.data.frame(scores_pca_uso_2008)
scores_pca_df_eficiencia_2008 <- cbind((indice_eficiencia %>% filter(`Año Censal` == 2008))[,1:3], scores_pca_df_eficiencia_2008)
scores_pca_df_uso_2008 <- cbind((indice_uso %>% filter(`Año Censal` == 2008))[,1:3], scores_pca_df_uso_2008)
#2013
scores_pca_eficiencia_2013 <- pca_eficiencia_2013$x
scores_pca_uso_2013 <- pca_uso_2013$x
scores_pca_df_eficiencia_2013 <- as.data.frame(scores_pca_eficiencia_2013)
scores_pca_df_uso_2013 <- as.data.frame(scores_pca_uso_2013)
scores_pca_df_eficiencia_2013 <- cbind((indice_eficiencia %>% filter(`Año Censal` == 2013))[,1:3], scores_pca_df_eficiencia_2013)
scores_pca_df_uso_2013 <- cbind((indice_uso %>% filter(`Año Censal` == 2013))[,1:3], scores_pca_df_uso_2013)
#2018
scores_pca_eficiencia_2018 <- pca_eficiencia_2018$x
scores_pca_uso_2018 <- pca_uso_2018$x
scores_pca_df_eficiencia_2018 <- as.data.frame(scores_pca_eficiencia_2018)
scores_pca_df_uso_2018 <- as.data.frame(scores_pca_uso_2018)
scores_pca_df_eficiencia_2018 <- cbind((indice_eficiencia %>% filter(`Año Censal` == 2018))[,1:3], scores_pca_df_eficiencia_2018)
scores_pca_df_uso_2018 <- cbind((indice_uso %>% filter(`Año Censal` == 2018))[,1:3], scores_pca_df_uso_2018)
scores_pca_df_eficiencia <- rbind(scores_pca_df_eficiencia_2008,scores_pca_df_eficiencia_2013,scores_pca_df_eficiencia_2018)%>%
arrange(rama_cve, `Año Censal`)
scores_pca_df_uso <-rbind(scores_pca_df_uso_2008,scores_pca_df_uso_2013,scores_pca_df_uso_2018)%>%
arrange(rama_cve, `Año Censal`)
# Filtrar las primeras 15 observaciones
scores_pca_15_ef <- scores_pca_df_eficiencia %>% slice(1:15)
scores_pca_15_ef %>%
kable("html", col.names = c("Año Censal", "Rama Cve", "Rama", "PC 1", "PC 2", "PC 3", "PC 4", "PC 5")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Año Censal | Rama Cve | Rama | PC 1 | PC 2 | PC 3 | PC 4 | PC 5 |
|---|---|---|---|---|---|---|---|
| 2008 | 3111 | Elaboración de alimentos para animales | -1.0435916 | -0.5961366 | -0.2710829 | 1.6914216 | 0.2110226 |
| 2013 | 3111 | Elaboración de alimentos para animales | -0.2494661 | -0.0313505 | -0.0229370 | 0.6329137 | -0.2363413 |
| 2018 | 3111 | Elaboración de alimentos para animales | -0.7890055 | -0.1093833 | 0.1271590 | -1.1304247 | 0.2480161 |
| 2008 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 0.3851370 | 0.7109270 | 0.2210991 | 0.0824009 | 0.2327710 |
| 2013 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 0.0110863 | -0.3720603 | -0.6630273 | 0.0540443 | 0.3027141 |
| 2018 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | 0.1847457 | 1.4711614 | 0.9486647 | -0.1914144 | 0.3963246 |
| 2008 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 0.7578662 | 0.6208261 | 0.0958566 | 0.0451108 | -0.2289411 |
| 2013 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 0.4536182 | -0.1572882 | 0.1522683 | 0.3920036 | 0.2706329 |
| 2018 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | -0.1849497 | 0.2947134 | 0.7670541 | -0.7744695 | -0.0042944 |
| 2008 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.8420528 | 0.2565766 | -0.0484921 | -0.0198038 | -0.1435188 |
| 2013 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.6060436 | -0.2188056 | -0.2256043 | 0.0465354 | 0.1730182 |
| 2018 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 0.3035123 | 0.7088356 | 0.2258965 | -0.4038105 | 0.1679855 |
| 2008 | 3115 | Elaboración de productos lácteos | 0.5864194 | 0.6126835 | -0.0237501 | -0.0191543 | -0.1617648 |
| 2013 | 3115 | Elaboración de productos lácteos | 0.3311672 | -0.1290702 | -0.0256665 | 0.3441202 | 0.1798169 |
| 2018 | 3115 | Elaboración de productos lácteos | 0.3507316 | 1.5740540 | 0.0701062 | -0.5020708 | 0.3674875 |
scores_pca_15 <- scores_pca_df_uso %>% slice(1:15)
scores_pca_15 %>%
kable("html", col.names = c("Año Censal", "Rama Cve", "Rama", "PC 1", "PC 2", "PC 3", "PC 4", "PC 5")) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| Año Censal | Rama Cve | Rama | PC 1 | PC 2 | PC 3 | PC 4 | PC 5 |
|---|---|---|---|---|---|---|---|
| 2008 | 3111 | Elaboración de alimentos para animales | -1.5216432 | -0.1607020 | 0.0196817 | 0.5447211 | 0.1622891 |
| 2013 | 3111 | Elaboración de alimentos para animales | -1.3788908 | 0.4468070 | -0.4174912 | 0.3212622 | -0.1572317 |
| 2018 | 3111 | Elaboración de alimentos para animales | 1.2713822 | 0.5555232 | 0.0403667 | -0.4349934 | -0.1078451 |
| 2008 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | -0.2362346 | 0.0879062 | -1.0874666 | 0.2120042 | 0.4130383 |
| 2013 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | -0.7704515 | -0.1562621 | -0.8168762 | 0.3858582 | -0.0579489 |
| 2018 | 3112 | Molienda de granos y de semillas y obtención de aceites y grasas | -0.4197266 | 1.0355499 | -0.6390335 | -0.4091615 | -0.3984806 |
| 2008 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | 0.8686364 | 1.3312368 | -0.8363177 | -0.4649174 | 0.9622334 |
| 2013 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | -0.1057844 | -0.1384649 | -1.3580770 | -0.0395887 | -0.3272272 |
| 2018 | 3113 | Elaboración de azúcares, chocolates, dulces y similares | -0.2364137 | 1.3291612 | -0.8639054 | -0.7336826 | -0.2281897 |
| 2008 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 1.4505405 | 3.1319207 | -0.8718038 | 0.9597006 | -0.9855478 |
| 2013 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | 1.4538634 | -1.3274887 | -3.2680042 | 0.1640431 | 0.7772158 |
| 2018 | 3114 | Conservación de frutas, verduras, guisos y otros alimentos preparados | -0.7736231 | 1.5340890 | -1.2060899 | -0.7280628 | -1.0120800 |
| 2008 | 3115 | Elaboración de productos lácteos | 0.4203843 | 1.4072833 | -1.1516760 | -0.1480539 | 0.3824391 |
| 2013 | 3115 | Elaboración de productos lácteos | -0.3968615 | -0.1341092 | -1.4942313 | 0.2029346 | 0.0851136 |
| 2018 | 3115 | Elaboración de productos lácteos | -0.7477231 | 1.3396581 | -0.3167328 | -0.7333512 | -1.2184721 |
# Guardar el dataframe resultante en un archivo CSV
#write.csv(scores_pca_df, "scores_pca.csv", row.names = FALSE)
El Primer Componente Principal (PC1) de los subíndices de eficiencia explica el 52.1% de la varianza total en promedio para los tres años de análisis. Esto significa que el PC1 captura una parte significativa de la variabilidad presente en los datos de eficiencia, siendo el componente más importante en términos de explicación de la variabilidad en este contexto.
Para los tres años, el PC1 está influenciado negativamente por todas las variables de los subíndices de eficiencia. Estas cargas indican que una alta puntuación en PC1 corresponde a bajos valores en estas variables de eficiencia y viceversa. En otras palabras, PC1 puede interpretarse como una medida general de eficiencia operativa en las actividades, donde valores negativos altos de PC1 implican una mayor eficiencia en el uso de agua, energía, combustibles, empaques y papelería.
El Primer Componente Principal (PC1) de los subíndices de uso explica solo el 32.9% de la varianza total en promedio para los tres años de análisis. Este bajo valor indica que el PC1 no captura una proporción significativa de la variabilidad presente en los datos originales de uso. En términos prácticos, esto sugiere que la variabilidad en el uso de recursos (agua, energía, combustibles, empaques y papelería) está distribuida de manera más dispersa entre varios componentes principales, y no se concentra principalmente en el PC1.
Las cargas indican que todas las variables de uso están negativamente correlacionadas con PC1. Sin embargo, dado que PC1 solo explica en promedio para los tres años de análisis 32.9% de la varianza, esto implica que no puede considerarse como una medida general suficientemente representativa del uso de recursos en las actividades. En otras palabras, la variabilidad en el uso de recursos no se puede resumir adecuadamente en un solo componente, sino que requiere considerar varios componentes para una comprensión completa.
#Unir todos los csv
indices_all<-cbind(indice_eficiencia[,1:4],
"Índice de uso"= indice_uso[,4],
"PC 1 análisis considerando la producción y los gastos"= scores_pca_general[,4],
"PC 1 eficiencia (PBT/Gasto)"= scores_pca_df_eficiencia[,4],
"PC 1 uso (Gasto/PBT)"= scores_pca_df_uso[,4])
colnames(indices_all)[4] <- "Índice de eficiencia"
fila_textos <- data.frame(matrix(c(
"",
"",
"",
"Considera el promedio de las relaciones de PBT/Gasto",
"Considera el promedio de las relaciones de Gasto/PBT",
"En promedio de los 3 años, 54% Varianza Explicada. Valores negativos altos de PC1 implican actividades con mayores producciones, consumos de agua, energía, etc.",
"En promedio de los 3 años, 52.1% Varianza Explicada. Valores negativos altos de PC1 implican una mayor eficiencia (PBT/Gasto) en el uso de agua, energía, combustibles, empaques y papelería.",
"En promedio de los 3 años, 32.9% Varianza Explicada. Debido a su baja explicación este componente no puede considerarse como una medida general suficientemente representativa del uso de recursos en las actividades."),
nrow=1))
colnames(fila_textos) <- colnames(indices_all)
indices_all <- rbind(fila_textos, indices_all)
write.xlsx(indices_all, file = "indices_all.xlsx", rowNames = FALSE)