Trabajo práctico · Álgebra Lineal Computacional, UBA (FCEyN)

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.

Python Estadística PCA K-Means Mínimos cuadrados

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.

90,9%
Varianza explicada por la 1ª componente
7,1%
Varianza explicada por la 2ª componente
98,9%
Varianza acumulada con las 3 componentes

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.

Proyección PCA 3D de los alimentos de la canasta básica, coloreados por cluster
Proyección de los 43 alimentos en el espacio de las 3 componentes principales, agrupados en 4 clusters (K-Means)

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.

Promedio de macronutrientes por cluster
Perfil nutricional promedio de cada cluster (HC, proteínas, azúcares libres, grasas y fibra)

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.

Aumento de precios por producto, calculado con mínimos cuadrados
Tasa de aumento mensual por producto (pendiente de la regresión lineal). Las carnes están destacadas en verde.

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.

Aumento porcentual de precios por producto entre diciembre 2023 y abril 2024
Aumento porcentual dic. 2023 – abr. 2024. Las carnes (celeste) muy por debajo del resto pese a ser de los productos más caros.

¿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.

Alimentos más alejados de las carnes en el espacio de componentes principales
Alimentos más alejados de las carnes (en azul) en el espacio de PCA — pan francés y leche fluida entera

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.