Predicción de la Producción de Cafe Colombiano

Monica Ramirez
9 min readApr 26, 2019

--

There’s an english version of this post here

Ha finalizado la primera semana del Bootcamp de Data Science que estoy estudiando en New York (aquí, para saber qué es un Bootcamp y porqué estoy metida en esto)

Ahora, por fin, es momento de trabajar en los siguientes proyectos que son: personales (Yo elijo el tema) e individuales (Yo sola, sin equipo como el primer proyecto). La única condición es que este, el Proyecto #2, incluya Data Scrapping y Regresión Lineal.

Para este proyecto debo:

  • Recolectar los datos usando Data Scrapping
  • Analizar los datos usando Regresión Lineal. El proceso incluye: selección de atributos, variables categóricas, series de tiempo, regularización, …
  • Visualizar cada paso donde sea posible, para tener un mejor panorama de los resultados e ir tomando mejores decisiones.

Como tema para este proyecto decidí predecir la producción del cafe colombiano (mi país!) por muchas razones: Debía usar una variable contínua pues se trata de Regresión Lineal, quería analizar datos de diferentes fuentes (clima, económicos, etc.) y, personalmente, quería un tema para contarle a mis compañeros un poco acerca de mi país ya que ellos no tenían una imagen muy positiva.

Contexto:

Colombia es el segundo productor de café en el mundo. Tan solo el 3% del territorio colombiano, produce el 10% del café que se consume en todo el mundo! El propósito de este proyecto es analizar y determinar cuáles son los factores que influencian la alta producción de café para asegurar siempre tener producto listo para exportar en meses futuros. Para eso, analicé diferentes tipos de información:

  • Clima: Las condiciones climáticas y, en particular, el mes de la cosecha, puede influenciar el crecimiento de los cultivos
  • Países competidores: Brasil es el mayor productor de café del mundo, el único que esta por encima de Colombia; Vietnam produce volúmenes similares en algunos meses del año; así como la producción de países vecinos, puede afectar los volúmenes de exportación también
  • Factores Económicos: La mayoría del café que se produce en Colombia es exportado, pueden los volúmenes de exportación (demanda) influenciar? Además, ya que en Colombia no se usa como moneda oficial, el dolar, que es es la moneda en la que se maneja el mercado internacional, la tasa de cambio entre el dólar y el Peso Colombiano también debe ser analizada.

Extraer Datos de las Fuentes:

Recolectar toda la información fue realmente el mayor desafío de este proyecto:

Pienso escribir un post más adelante, detallando el proceso de Web Scrapping con Scrapy pues fue desafíante, pero me gustó mucho, fue muy útil y aprendí muchísimo en el proceso.

Análisis General EDA para todas las variables

Primero, se hizo un análisis exploratorio (EDA) general para encontrar posibles relaciones entre las variables y tener una idea más clara de los atributos que serán usados en el modelo final.

Mapa de calor con la correlación entre variables

Se puede observar que la mayor correlación se encuentra entre variables económicas (Volúmenes de exportación y tasa del dólar), lo cuál tiene sentido, y el precio del café en otros países, lo cuál será analizado con mayor detalle más adelante. Las condiciones climáticas, por el contrario, parecen ser independientes entre ellas, en general.

Creando el Modelo

Primer Modelo

Primero que todo se debe dividir la data en set de entrenamiento (70%) y set de prueba (30%), esto se hace para probar el modelo con datos que el modelo “no ha visto”, es decir con los que no fue entrenado, para validar que el modelo generaliza correctamente y no “memoriza” (sobreajusta). Generalmente los datos se partes en 3 sets, incluyendo el set de validación, en este caso no lo hice por el poco volumen de datos con el que estaba trabajando: ocho años, un registro por mes: 96 registros.

El primer modelo que realicé fue una regresión lineal simple de Mínimos Cuadrados Ordinarios (OLS) usando únicamente variables climáticas que recolecté del sitio web de Weather Underground: Temperatura, Velocidad del viento, % precipitaciones, humedad y temperatura de rocío (todos los valores: promedios mensuales). También incluí en intercepto para darle más flexibilidad al modelo
Resultados: R2(prueba): 0.14, P-valores entre [0.039–0.745]
Esto significa que algunas variables son relevantes pero aún hace falta información u otra variables influyente. Aún hay que trabajar en el modelo…

Variables Categóricas

Otra variable que puede influir, y que está muy asociada al clima es el mes en el que se realiza la cosecha. Se dice que el café crece mejor en los meses de mayo y octubre, así que ésta puede ser una buena variable para incluir en mi modelo.

Ahora, a pesar de que en los datos el mes de cosecha es un número entero de 1 a 12, no es una variable ordinal o numérica: No tiene sentido decir que febrero (valor=2) es el doble que enero (valor=1) o que ambos son menores que diciembre (valor=12). Todos los meses son igual de importantes, el número del mes no representa una cantidad y no da ningún orden (Por ahora, mas tarde veremos Series de Tiempo). El mes es denominada una variable categórica, y en lugar de tratarlo como una columna con calores de 1–12, s debe convertir a 11 columnas con valores 1–0. Cada fila tendrá 10 valores en 0 y un valor en 1, en el mes que le corresponde. Este proceso es llamado One-Hot Encoding y la razón por la que se generan 11 columnas y no 12 es para evitar redundancia y correlación entre estas nuevas variables: Si en una fila todas las columnas, de la 1 a la 11 (Enero a noviembre) tienen el valor 0, esto significa que esa fila pertenece a diciembre, no es necesaria una nueva columna para este mes pues crearía correlación entre ellas.

Antes y Después de One-Hot Encoding

Resultados: Después de incluir las nuevas 11 columnas: R2(prueba) = 0.64, P-valores entre [0.002–0.759].
El modelo está mejorando! Definitivamente el mes de cosecha es una variable que influye fuertemente en la producción.

Países Competidores y Análisis Económico

Precio vs Producción en diferentes países

Como se puede ver en la figura, parece haber una fuerte relación negativa entre el precio del café en Colombia, Brasil y otros países y el volumen de producción en cada uno de ellos. Esto tiene sentido? Precios más bajos generan mayor producción? De echo, es todo lo contrario: Altos volúmenes de producción hacen bajar el precio, y una baja producción induce a un café más caro. Si lo pensamos con calma, es simplemente teoría de oferta y demanda.
Resultado: El volumen de producción no depende del precio del café. Por el contrario, es el precio el que depende del volumen de producción. El precio en Colombia o en otros países, no debe ser incluido en este análisis.

Análisis de Serie de Tiempo

Ya hemos visto que el mes en el que se hace la cosecha es de gran importancia a la hora de predecir el volumen de producción, pero qué hay de los meses anteriores? Si asumimos que el proceso previo a exportar café: pelarlo, secarlo y en ocasiones molerlo (Todos estos procesos en Colombia se hacen manualmente!) toma al rededor de un mes, vamos a ver si la producción de café es afectada por el volumen producido en el mes anterior. Es decir: la producción de diciembre, depende de la producción de noviembre? Y ésta de la de octubre? y así sucesivamente. Este es la forma más sencilla de realizar una serie de tiempo: incluir la variable dependiente de un mes como variable independiente del mes siguiente

Análisis con una sola variable de tiempo

Hay más formas de realizar series de tiempo, ésta es la más sencilla. Un análisis más completo incluye más meses hacia atrás, análisis de estacionalidad, etc. Sobre este tema también pienso hacer un post detallado más adelante

Resultados: R2(prueba) = 0.67 (Mejoró!)
Abajo se puede ver una gráfica the predicciones usando únicamente la producción del mes anterior como variable independiente. se puede ver que los valores para los últimos meses del análisis (estrellas moradas) son muy cercanos a los valores reales (estrellas verdes). Este modelo predice para Abril del 2018, una producción de 1.176 miles de sacos de café, debemos esperar a ver los resultados.
El modelo mejoró, así que se incluirá la producción del mes anterior como variable en el modelo final.

Predicción usando unicamente un mes atras de producción para los meses Enero-Abril 2018

Actualización (Mayo 2018): El valor real para abril 2018 fue de 1.037 miles de sacos de café. Solamente 130.000 sacos de diferencia con lo que predijo el modelo!

Ahora, cómo encontrar las mejores variables? (Regularización)

La regularización es un proceso para encontrar las variables más importantes o relevantes en un modelo. Matemáticamente, esto se hace agregando un termino más a nuestra ecuación, que representa el costo. Hay varias maneras de hacer esto, pero todas tratan de minimizar el valor o la cantidad de variables que participan en el modelo. Si simplemente incluyéramos todas las variables al modelo, tendríamos sobreajuste/overfit, es decir, se acomodaría muy bien a los datos de entrenamiento (memorizaría los datos), pero no a los datos de prueba: no generalizaría. (El caso contrario es el subajuste/underfit, en dónde el modelo es muy general, no identifica los patrones o coeficientes correctamente y no puede predecir bien en ninguno de los casos).

Los métodos de regularización que utilicé fueron:

  • Lasso (L1): Calcula el costo como la suma de la magnitud (valor absoluto) de todos los coeficientes, tratará de llevar las variables menos importantes a cero.
  • Ridge (L2): Calcula el costo como la suma del cuadrado de los coeficientes, tratará de llevar las variables menos importantes a un valor muy bajo.
  • Elastic-Net: Es una mezcla de los dos anteriores, tratará de deteminar, para cada coeficiente, el costo óptimo.
Importancia de las variables según cada modelo y las variables finales elegidas

Resultado: La gráfica de arriba, me encanta! Muestra el valor absoluto de los coeficientes de cada variable de acuerdo a cada uno de los modelos probados (OLS es la regresión lineal sin ningún tipo de regularización). Las que están indicadas con flechas rojas son las que yo escogí (Decisión propia, personal, bien sea porque los modelos están de acuerdo, o porque en mi análisis e investigación ví que era importante) para mi modelo final: R2(prueba) = 0.783!!!

Conclusiones:

La producción de café contrario a lo que se creía al principio de este análisis, no parece ser afectada por variables climáticas. El café crece bajo cualquier condición de temperatura y humedad en el área de observación (Región cafetera de Colombia). A pesar de eso, se debe cuidar las plantas de la lluvia: las precipitaciones parecen ser el único factor climático que afecta la producción.

Factores económicos en países competidores como Brasil, Vietnam, Perú y México, no parecen afectar tampoco según éste análisis. La producción en estos países, al igual que en Colombia, está afectada en paralelo por otros factores externos en común no incluidos en este análisis.

El mes de cosecha es, según éste análisis, la variable más influyente en la producción de café. Los periodos entre mayo-agosto y octubre-diciembre tienen el mayor impacto en los años analizados.

Si quieres ver este análisis completo, datos y código, puedes visitar mi Github

--

--