Análisis de Eficiencia de Canasta Básica
Un análisis estadístico sobre datos de costos e indicadores nutricionales de la Canasta Básica Alimentaria argentina, implementando PCA, clustering y mínimos cuadrados desde cero con álgebra lineal.
El problema
La Canasta Básica Alimentaria (CBA) argentina define qué y cuánto debería comer una persona para cubrir sus necesidades nutricionales mínimas. El objetivo de este trabajo fue analizar la evolución de los precios de esos alimentos, evaluar los cambios en su contenido nutricional y determinar si existe alguna relación entre precio y valor nutricional — usando reducción de dimensionalidad (PCA), clustering y mínimos cuadrados.
Fuente de datos: composición nutricional de ~40 alimentos de la CBA y precios mensuales de "Consumidores Libres" (Ciudad de Buenos Aires), diciembre 2023 – abril 2024.
Preprocesamiento y márgenes de la OMS
Primero estandaricé la tabla nutricional (conversión de miligramos a gramos, manejo de valores nulos) y crucé esos datos con los precios mensuales de "Consumidores Libres". Con eso armé una función que evalúa si el aporte de proteínas, carbohidratos, grasas, sodio, fibra y frutas/verduras de la CBA cumple los márgenes de ingesta recomendados por la OMS para una dieta de 2750 kcal/día (usando las equivalencias estándar: proteínas y carbohidratos 4 kcal/g, grasas 9 kcal/g).
El resultado: la composición original de la CBA no cumple esos márgenes — se aleja del rango recomendado en varios de los nutrientes evaluados.
Reducción de dimensionalidad: PCA vía SVD
Para poder visualizar y agrupar los ~40 alimentos de la canasta según su perfil nutricional completo (más de 10 variables por alimento), implementé el Análisis de Componentes Principales desde cero, a partir de la descomposición en valores singulares (SVD) de la matriz de covarianza — sin usar sklearn.decomposition.PCA — para proyectar los alimentos en un espacio de 3 componentes y poder graficarlos.
Que la primera componente sola explique más del 90% de la varianza confirma que casi toda la información nutricional relevante se puede representar en una sola dirección — es decir, los alimentos varían principalmente en un solo "eje" nutricional dominante.
El cluster más numeroso agrupa alimentos con alto promedio de grasas y bajo contenido de carbohidratos; otro cluster, muy chico, quedó formado solo por la leche fluida entera y la papa, y un tercero por el pan francés en solitario, que tiene el valor más alto de carbohidratos de toda la tabla.
Mínimos cuadrados: la evolución de precios
Con el precio por gramo de cada macronutriente (calculado cruzando la composición nutricional con el precio mensual de cada alimento), apliqué el método de mínimos cuadrados —resolviendo las ecuaciones normales con np.linalg.solve, sin usar funciones de regresión ya armadas— para estimar la tasa de aumento mensual de cada alimento entre diciembre de 2023 y abril de 2024.
Acá apareció el hallazgo más interesante del trabajo: las carnes, pese a ser de los alimentos más caros en términos absolutos, tuvieron uno de los aumentos porcentuales más bajos de toda la canasta. Un paquete de acelga pasó de $450 a $1.990 (+350%) entre diciembre de 2023 y abril de 2024, mientras que la paleta pasó de $5.200 a $7.900 (+50% aprox.) en el mismo período.
¿Y si consumimos menos carne?
Las carnes (asado, bola de lomo, carne picada y paleta) están entre los alimentos con mayor aporte de proteínas y grasas de toda la tabla. Simulé qué pasaría si se redujera su consumo en la misma proporción que aumentó su precio (~45%): la CBA resultante seguía sin cumplir los márgenes de la OMS, pero el porcentaje de proteínas pasaba a estar dentro del rango correcto — lo que confirma que las carnes son, por lejos, la principal fuente de proteína de la canasta.
Buscando sustitutos
Con esa pérdida de proteína para compensar, probé dos estrategias distintas de sustitución dietaria, reduciendo el consumo de carne un 18,5%:
1. Alimentos del mismo cluster de PCA, con menor aumento de precio. Filtrando por precio (menos de la mitad del aumento de la carne), aparecieron cebolla, aceite de girasol, zanahoria y manzana como candidatos. Elegí cebolla y manzana para el análisis: entre las dos aportan apenas 0,53 g de proteínas cada ~105 g, muy lejos de compensar los 4,61 g perdidos — haría falta consumir más de 900 g de ambas para cubrir esa pérdida, lo cual no es una sustitución realista.
2. Alimentos más alejados de las carnes por distancia euclidiana en el espacio de PCA — es decir, nutricionalmente "opuestos". Acá el resultado fue mucho mejor: pan francés y leche fluida entera resultaron ser los más lejanos, y la leche por sí sola resultó capaz de compensar casi toda la pérdida de proteína — bastan unos 148,7 ml adicionales de leche fluida entera al día para cubrir los 4,61 g de proteína perdidos.
Conclusión
La Canasta Básica Alimentaria argentina, en su composición original, no cumple los márgenes de ingesta recomendados por la OMS. Las carnes concentran la mayor parte del aporte proteico de la canasta, así que cualquier reducción en su consumo necesita compensarse con otro alimento: buscar sustitutos por similitud de precio no alcanza, pero buscarlos por distancia nutricional en el espacio de PCA sí — la leche fluida entera resultó, dentro del universo de datos disponible, la sustitución más eficiente para no perder ese nutriente.
Más allá del resultado puntual, el proyecto fue una buena excusa para implementar PCA (vía SVD) y mínimos cuadrados (vía ecuaciones normales) desde cero, en vez de usar directamente las funciones de scikit-learn — lo cual obliga a entender qué está pasando matemáticamente detrás de esas herramientas, no solo a saber llamarlas.