El presente trabajo se basa en la exploración y análisis de un conjunto de datos extraído de la aplicación Precios Claros [1]. Este conjunto de datos ya fue analizado anteriormente en [2]. En esta oportunidad, nos proponemos poner el foco en el análisis a partir de reglas de asociación. Se utilizará esta técnica con el propósito de extraer nuevo conocimiento así como también, para corroborar o reformular afirmaciones realizadas en el trabajo previo.
Si bien el uso las reglas de asociación será el foco de este estudio, se utilizarán también algunas herramientas de text mining con el fin de poder clasificar productos a partir de sus datos de descripción, marca y presentación. También se utilizará análisis de correspondencias para validar algunas conclusiones elaboradas en nuestro trabajo previo.
El presente documento se encuentra organizado de la siguiente manera: en la sección 2 se presentarán los objetivos centrales del análisis; en la sección 3 se detallará el proceso de preparación de datos realizado a fin de poder llevar a cabo los análisis de la sección 4; finalmente, en la sección 5 se elaborarán las conclusiones finales.
La investigación se abordará a partir del análisis de los siguientes temas:
El primer paso necesario para avanzar sobre la preparación de los datos consiste en averiguar qué variables del conjunto de datos se desean estudiar. Algunas de ellas fueron sugeridas en el enunciado del trabajo práctico (niveles de precios y de variación de los mismos) y otras fueron adicionadas por los autores. En todos los casos, el abordaje inicial consistió en la discretización de las variables continuas y en la reagrupación de variables categóricas ya existentes.
Se comenzó, entonces, llevando a cabo todas las transformaciones de precios indicadas en el enunciado. Por tal motivo, no ahondaremos en detalles sobre dichas transformaciones, sino que las enumeraremos para dar completitud al presente documento:
Luego se utilizaron técnicas de text mining para extraer palabras frecuentes de los nombres de los productos a fin de poder utilizar dicha información para seleccionar productos determinados y realizar análisis pocalizados en dichos productos. Para llevar a cabo esta tarea, se elaboró un vocabulario con todas la palabras incluidas en los nombres de los productos, eliminando números, tildes, espacios, signos de puntuación, marcas, unidades de presentación y términos frecuentes. De ese conjunto de palabras, muchas de ellas se encontraron en varios productos.
Para eliminar palabras poco frecuentes, se construyó una tabla para indicar la cantidad de productos que incluían a cada término del vocabulario dentro de su descripción. Luego se analizó la distribucion de esa, encontrándose que el percentil 75 corresponde el valor 4. Esto significa que solamente 25% de los términos tienen una frecuencia mayor o igual a 4. Consideramos a ese valor como el umbral mínimo para determinar si un término es frecuente o no. A partir de dicho umbral, se encontraron 234 términos con los cuales se construyeron una matriz de tipo término-documento donde cada una de las filas corresponde a cada uno de los 1000 productos del conjunto de datos. Esta información luego pudo ser integrada al conjunto de precios, a través de la variable productoId.
Además de realizarse las transformaciones y discretizaciones sugeridas, se realizaron otras adecuaciones al conjunto inicial de datos. Para las primeras iteraciones exploratorias se contaban con datos de 15 comunas y 11 unidades de negocios. Este nivel de atomización en las variables comuna y comercio dificultó la extracción de reglas que incluyeran dichos atributos, por lo que se procedió a la agregación de ambas variables de acuerdo a distintas transformaciones Para el caso de las comunas, se procedió a agrupar las mismas en zonas de acuerdo a la ubicación geográfica, tal como se detalla en el mapa de la figura siguiente.
Zonificación de comunas de la Ciudad Autónoma de Buenos Aires
Para el caso de las unidades de negocios, se unificaron según el comerco. Además, se acortaron manualmente los nombres de las razones sociales para evitar que se generen reglas difíciles de leer y con mucho texto. En la figura siguiente se muestra la cantidad de datos por comercio y por zona de acuerdo a las agrupaciones realizadas. Para el caso de las zonas, se observa que tanto para la zona sur como para la zona oeste, hay pocos datos. Esto obedece a la irregular distribución de datos originales relevados. Algo aún más marcado sucede con los comercios, por el mismo motivo previamente expuesto.
Proporción de datos resultantes para cada zona y comercio luego de la reagrupación de dichas variables en nuevas categorías.
Luego de esta serie de transformaciones y reagrupamientos, se integraron todos los datos es un único data frame a partir del cual se llevaron a cabo los distintos análisis que a continuación se detallarán. Para que el lector pueda comprender el significado de cada variable utilizada en las reglas de asociación extraídas, se presenta la siguiente tabla.
| Variable | Descripción |
|---|---|
| zona | Zona asociada a la comuna de la sucursal relevada |
| comercio | Comercio (razón social) correspondiente a la sucursal relevada |
| tipo | Tipo de sucursal relevada (hipermercado o supermercado) |
| DPR1 | Nivel de precio del producto relevado en relación al mismo producto dentro del período 1 |
| DPR2 | Nivel de precio del producto relevado en relación al mismo producto dentro del período 2 |
| DPR3 | Nivel de precio del producto relevado en relación al mismo producto dentro del período 3 |
| DPR4 | Nivel de precio del producto relevado en relación al mismo producto dentro del período 4 |
| DPRT | Nivel de precio del producto relevado en relación al mismo producto para todas las mediciones |
| DV1 | Nivel de variación de precio del producto relevado en relación al mismo producto entre el período 1 y el 2 |
| DV2 | Nivel de variación de precio del producto relevado en relación al mismo producto entre el período 2 y el 3 |
| DV3 | Nivel de variación de precio del producto relevado en relación al mismo producto entre el período 3 y el 4 |
| DVT | Nivel de variación de precio del producto relevado en relación al mismo producto entre la primera medición y la última |
| termino_XXX | Presencia del término XXX en el producto relevado (existen 234 columnas de este tipo dado el vocabulario elaborado) |
Esta serie de análisis requirió de la realización de muchas iteraciones, las cuales involucraron en primer lugar los reagrupamientos por comercio y región descriptos en la sección previa. La razón de estos reagrupamientos se sustentó principalmente en que no se encontraban reglas de asociación que incluyeran atributos con cierto nivel de atomización (por ejemplo, las comunas que tenían 15 valores distintos o las unidades de negocio, de las cuales había 11).
También requirió del armado de conjuntos de datos con distintas combinaciones de atributos y de la inspección del conjunto de reglas resultantes. Este proceso resultó sumamente laborioso por tener que buscar combinaciones de atributos que se enfocaran en la pregunta a responder. Aún así, luego se tuvo que iterar sobre distintos subsets de reglas para eliminar asociaciones triviales o que no aportaran información relevante. En todos los casos, salvo que se indique lo contrario se buscaron reglas con los siguientes parámetros:
Para este análisis, se armaron reglas con los siguientes atributos: región, zona, tipo de sucursal, nivel total de precio y nivel de variación total de precio. Más adelante, se analizarán los niveles de precio y variaciones por períodos y los productos. Por tal motivo, y habiendo hecho varias pruebas con mayor cantidad de atributos, consideramos que al efecto de describir la generalidad del conjunto de datos, es suficiente con el conjunto atributos propuesto, para los cuales se han extraido las siguientes reglas.
| Antecedente | Consecuente | Soporte | Confianza | Lift | |
|---|---|---|---|---|---|
| 1 | {DPRT=Muy caro} | {comercio=Jumbo} | 0.04 | 0.90 | 3.38 |
| 2 | {tipo=Hipermercado,DPRT=Medio,DVT=Mantiene} | {comercio=Coto} | 0.01 | 0.83 | 2.10 |
| 3 | {DPRT=Muy barato} | {comercio=Carrefour} | 0.03 | 0.73 | 2.74 |
| 4 | {zona=Este,tipo=Hipermercado} | {comercio=Coto} | 0.05 | 0.69 | 1.75 |
| 5 | {zona=Sur,tipo=Hipermercado} | {comercio=Coto} | 0.03 | 0.68 | 1.73 |
| 6 | {DPRT=Medio} | {comercio=Coto} | 0.16 | 0.61 | 1.56 |
| 7 | {zona=Oeste,tipo=Hipermercado} | {comercio=Carrefour} | 0.02 | 0.60 | 2.27 |
Las reglas 1, 3 y 6 confirman lo que ya se había encontrado en el trabajo anterior: los niveles de precios muy baratos, medios y muy caros están asociados a los comercios Carrefour, Coto y Jumbo respectivamente. Más aún, la regla 2 indica con alto nivel de confianza que los hipermercados de precio medio que mantuvieron sus precios estables fueron los de razón social Coto. Las reglas 4, 5, y 7 se escogieron para mostrar la heterogeneidad de hipermercados según la zona. Se observa por ejemplo que en la zona oeste los hipermercados son mayoritariamente de Carrefour, mientras que en las zonas sur y este, son Coto.
En las consignas del trabajo se sugiere que hay una desaceleración de aumento precios en las últimas mediciones (asociadas al período 4). Lo primero que se hizo fue investigar la veracidad de dicha afirmación. En primer lugar de confeccionó un mapa de calor donde el valor de cada celda representa para cada interperíodo o transición (DV1: P1-P2, DV2: P2-P3, DV3: P3-P4) el porcentaje de los datos para cada categoría de nivel de variación de precios. A partir de este gráfico no se observa una desaceleración marcada y evidente, sino más bien un descenso en la categoría mantiene y un aumento de las categorías aumento leve y disminución leve.
Para profundizar un poco más, se realizó también un análisis de correspondencia simple entre ambas variables (interperíodo y nivel de aumento). En el biplot simétrico se observa que el interperíodo inicial está asociado principalmente a mantenimiento de precios, mientras que el segundo está más vinculado a aumentos moderados. A su vez, estos dos interperíodos son más similares entre si en cuanto al aumento de precios que en relación al último. El último interperíodo está bastante más alejado de los primeros y se asocia principalmente a aumentos leves.
Análisis de correspondencias de niveles de variación de precios asociados a los distintos interperíodos.
Desde este punto de vista, se podría argumentar en líneas muy generales que los precios comienzan manteniéndose al principio para luego aumentar moderadamente y finalmente concluir con aumentos leves. Sin embargo, cuando analizamos casos con mayor nivel de detalle utilizando reglas de asociación, vemos que hay distintas dinámicas de precios bien definidas, las cuales se presentan en la siguiente tabla.
| Antecedente | Consecuente | Soporte | Confianza | Lift | |
|---|---|---|---|---|---|
| 1 | {comercio=Coto,DV1=Mantiene,DV2=Aumento Leve} | {DV3=Aumento Leve} | 0.04 | 0.94 | 3.24 |
| 2 | {comercio=Coto,DV1=Aumento Moderado,DV2=Aumento Moderado} | {DV3=Mantiene} | 0.03 | 0.86 | 2.47 |
| 3 | {DV1=Aumento Moderado,DV2=Aumento Moderado} | {DV3=Mantiene} | 0.03 | 0.71 | 2.05 |
| 4 | {comercio=Dia,DV2=Mantiene} | {DV3=Mantiene} | 0.02 | 0.66 | 1.91 |
| 5 | {DV2=Aumento Leve} | {DV3=Aumento Leve} | 0.15 | 0.66 | 2.28 |
| 6 | {DV1=Aumento Fuerte,DV2=Mantiene} | {DV3=Mantiene} | 0.04 | 0.60 | 1.73 |
En las reglas 1, 2 y 4 vemos dinámicas de precios asociadas a los comercios Coto y Día. Se observa por ejemplo que coto presenta dos dinámicas diferentes: a) si hay mantenimiento en la primer transición y aumento leve en la segunda, también hay aumento leve en la tercera; y b) si hay aumento moderado en las primeras transiciones, entonces en la última los precios se mantienen. Ambas reglas tienen un nivel de confianza muy alto. En el caso de Día, se observa que si mantuvo los precios en la segunda transición, también lo hace en la tercera.
Las reglas restantes (3, 5 y 6) aplican a todos los comercios y zonas en general: a) aumentos moderados en las primeras transiciones implican mantenimiento en la última; b) aumento leve en la segunda transición implica aumento leve en la última; y c) aumento fuerte al comienzo y mantenimiento en la segunda transición implican mantenimiento en la última transición. Estas reglas, si bien tienen menor confianza que las primeras, resultan bastante interesantes para pronosticar el nivel de aumento en la última transición.
Para cerrar la subsección de análisis exploratorio, realizamos un análisis de reglas de asociación vinculadas un cierto grupo de bebidas: a) vinos; b) gaseosas; y c) cervezas. A tal fin, se utilizó el conjunto de datos integrado que se describió en la sección de preparación de datos. A partir de ese conjunto de datos, se eliminaron aquellos relevamientos correspondientes a productos que no pertenecieran a alguna de las categorías indicadas. De los datos restantes, nos quedamos con los atributos correspondientes a zonas, comercios, niveles totales de precios y variaciones y los términos asociados al producto relevado. A continuación se generaron las reglas de asociación con un nivel de confianza mínimo de 0,7 a fin de limitar el conjunto de reglas obtenidas y poder inspeccionarlas individualmente. Finalmente, se seleccionaron aquellas que se muestran en la siguiente tabla.
| Antecedente | Consecuente | Soporte | Confianza | Lift | |
|---|---|---|---|---|---|
| 1 | {DVT=Disminución Moderada,termino_vino=S} | {comercio=Carrefour} | 0.02 | 0.90 | 3.46 |
| 2 | {DPRT=Levemente barato,termino_vino=S} | {DVT=Mantiene} | 0.04 | 0.89 | 3.08 |
| 3 | {DPRT=Muy caro,termino_vino=S} | {comercio=Jumbo} | 0.07 | 0.79 | 2.93 |
| 4 | {comercio=Dia,termino_vino=S} | {DPRT=Muy barato} | 0.03 | 0.78 | 4.74 |
| 5 | {comercio=Coto,termino_cerveza=S} | {DPRT=Medio} | 0.05 | 0.74 | 3.91 |
| 6 | {DVT=Mantiene,termino_cerveza=S} | {DPRT=Medio} | 0.03 | 0.74 | 3.89 |
| 7 | {comercio=Carrefour,termino_vino=S} | {DPRT=Muy barato} | 0.12 | 0.74 | 4.49 |
| 8 | {comercio=Jumbo,termino_gaseosa=S} | {DVT=Aumento Fuerte} | 0.04 | 0.73 | 2.86 |
| 9 | {comercio=Jumbo,termino_gaseosa=S} | {DPRT=Levemente caro} | 0.04 | 0.72 | 3.66 |
| 10 | {comercio=Coto,termino_gaseosa=S} | {DVT=Aumento Fuerte} | 0.05 | 0.70 | 2.76 |
Las reglas 1, 2, 3, 4 y 7 corresponden a vinos. Es interesante resaltar que hay vinos cuyo precio disminuyó moderadamente durante el período. Con alto grado de confiabilidad se puede aseverar que son vinos provenientes de Carrefour. A su vez, tanto Carrefour como Día son los comercios cuyos vinos están categorizados como los más baratos en relación a otras cadenas. Coto, por su lado, se ubica en precios medios. Finalmente, se observa también que aquellos vinos muy caros provienen de Jumbo (nótese que esto no implica que si el supermercado es Jumbo, entonces los vinos son muy caros).
Por el lado de las gaseosas (reglas 8 a 10), vemos que tanto Jumbo como Coto mostraron aumento fuerte en este rubro. Es de interés notar también, que las gaseosas de Jumbo están categorizadas como levemente caras, en contraste a lo que se hubiera esperado de acuerdo a análisis previos (por tener los precios más caros). Para las cervezas no se encontró demasiada información a partir de reglas. Solamente cabe destacar que Coto tiene cervezas con precio medio (como era de esperar) y que aquellas cervezas que mantuvieron su nivel de precios durante el período, son aquellas cuya sucursal tiene niveles de precios medios para estos productos (reglas 5 y 6).
En este caso, el objetivo es buscar reglas de asociación para niveles de precios en los primeros tres períodos y ver cuáles de ellas se encuentran también en el último período. A fin de llevar a cabo este análisis, lo primero que debe realizarse es una transformación de los datos. Para cada uno de los períodos nos quedaremos con los datos de zona, comercio, tipo, nivel de precio del período y nivel de variación total de precios. A fin de poder determinar qué reglas están presentes en varios períodos de forma automática, llamaremos al nivel de precio de un períodos DPRPer. Adicionaremos además un atributo que indique el período al que pertenece cada regla.
Una vez generado el conjunto de datos buscado, procedimos a buscar las reglas para cada período con los parámetros definidos al inicio de este documento. Luego filtramos aquellas reglas de los primeros tres períodos que estuvieran también en el último y nos quedamos con la métrica de confianza para evaluar su evolución a lo largo de los períodos esperando encontrar algún tipo de patrón emergente. Para ello, elaboramos el siguiente mapa de calor donde se muestra en cada celda el valor de confianza de cada regla para cada período. Aquellas reglas no presentes en un período aparecen como celdas vacías.
Evolución de métricas de reglas asociadas a niveles de precio por período.
Se destacan dos reglas dos reglas con alto grado de confianza durante todos los períodos. Son aquellas que indican (con sutiles diferencias) que el comercio con nivel de precio muy caro es Jumbo independientemente del período que se considere. Esto fue previamente descubierto en el trabajo anterior (ver mapa de calor de 4.2.2). También observamos reglas similares para productos muy baratos o de precio medio asociados a Carrefour y Coto. Esto también es consistente con lo encontrado en el trabajo anterior.
Resulta también de interés una de las reglas que no se encuentra en todos los períodos (por no superar alguno de los umbrales). Por ejemplo, se observa que en los períodos 2 y 4 los supermercados de zona norte con nivel de precio levemente caro corresponden a Jumbo con nivel de confiaza aproximado a 0,6 (que en líneas generales siempre es muy caro). No obstante, en líneas generales el conocimiento aportado por este análisis no es significativamente nuevo.
A lo largo de los análisis anteriores, hemos encontrado reglas de asociación que ratificaron los hallazgos realizados en el trabajo previo [2]. Las más notorias fueron aquellas que vinculaban los niveles de precios muy barato, medio y muy caro con las cadenas de comercios Carrefour, Coto y Jumbo respectivamente. Sin embargo, recordemos que fue necesario reagrupar las comunas y los comercios para que los datos no estuvieran tan atomizados y eso nos imposibilitara cumplir con el requisito de soporte mínimo.
Por tal motivo, en este análisis proponemos validar todo lo analizado en el trabajo previo (mediante análisis exploratorios a partir de gráficos) y el actual (mediante reglas de asociación) utilizando análisis de correspondencias simple. Esta metodología nos permitirá encontrar mayor detalle, dado que analizaremos todas las comunas y todas las unidades de negocios relevadas contrastándolas contra los niveles de precios discretizados para todo el período de análisis (DPRT).
Análisis de correspondencias de niveles de de precios en relación a comunas y comercios.
En el biplot simétrico de la izquierda, observamos una interesante asociación entre los niveles de precios y las comunas. La dimensión 1, que capta casi el 77% de la inercia, representa en forma ordenada los niveles de precio desde muy barato hasta muy caro. Esto significa que la proyección de los scores vinculados a las comunas sobre dicha dimensión marca la asociación de las mismas con los niveles de precio. Esto confirma por ejemplo que Caballito (Comuna 6) es el barrio que tiene los precios más elevados, mientras que la Comuna 9 (de zona Sur) es la que tiene los precios más bajos.
La dimensión 2 captura poco más del 20% de la inercia y representa distancia de niveles de precios a precios medios. Los valores negativos están asociados a cercanía a precios medios, mientras que valores positivos están más asociados a niveles de precios más extremos (bajos y elevados). Se observa entonces que hay comunas como la 13 (zona Norte) donde hay mayor coexistencia de precios relativamente extremos (moderadamente baratos y moderadamente caros). Por otro lado, las comunas como las 3, 5, 7 y 8 (zona centro y sur) tienen mayoritariamente precios de niveles medios.
Finalmente, el biplot simétrico de la derecha, tiene dimensiones que representan los niveles de precios del mismo modo que el anterior: la dimensión 1 (casi 83% de la inercia) ordena niveles de precios de menor a mayor y la dimensión 2 (11% de la inercia) ordena por distancia respecto a niveles medios de precio. Esto ratifica lo encontrado en el trabajo previo y mediante reglas: a) Hipermercados Carrefour, Carrefour Market y Día son los comercios con precios más bajos; b) Coto es el comercio con precios más cercanos al nivel medio; y c) Jumbo y Disco son los comercios con precios más elevados.
A lo largo de todos los análisis, hemos podido encontrar asociaciones que han confirmado las aseveraciones realizadas en el trabajo anterior. Desde este punto de vista, el uso de reglas de asociación ha resultado útil para darle mayor validez al trabajo previo. También fue apropiado para encontrar encontrar algunas relaciones interesantes en ciertos tópicos abordados. Por ejemplo, para encontrar reglas que nos permitieran predecir el nivel de aumento de la última transición a partir de las transiciones previas (subsección 4.1.2 y 4.2.1).
También resultó de gran utilidad la tipificación de productos a partir de las descripciones de los mismos. El uso de herramientas de text mining nos permitió categorizar de forma programática los productos y buscar con facilidad reglas asociadas a los mismos (4.1.3). A partir de ellas, se encontraron asociaciones interesantes por el hecho de ser inesperadas. Por ejemplo, comercios (Carrefour) que disminuyeron el valor de los vinos en contraste con lo que se hubiera esperado en un contexto inflacionario.
Complementar el uso de reglas de asociación con análisis de correspondencias (AC) también resultó ser de gran importancia para poder entender las variaciones de precios entre períodos (4.2.1). Los resultados del AC nos permitieron comprender mejor las asociaciones entre transiciones y niveles de aumento de precios a fin de orientar la búsqueda de reglas sin necesidad de tener que realizar demasiadas iteraciones ni inspecciones. El AC también sirvió para agregar valor a la validación (4.2.2) en aspectos donde las reglas de asociación resultaron ser limitantes. Nos referimos a la necesidad de dicretizar las unidades de negocio y las comunas para que su nivel de atomización no nos impidiera encontrar reglas vinculadas a dichas variables. En este sentido, el AC nos permitió asociar niveles de precio con todas las comunas y todas las unidades de negocio (nuevamente, ratificando todo lo hallado en el trabajo previo y agregando información adicional).
A partir de lo expuesto, consideramos sumamente importante destacar que el uso de múltiples herramientas de análisis (reglas de asociación, text mining y análisis de correspondencias) resultó esencial e imprescindible para este trabajo. Creemos que el uso de reglas de asociación para obtener conocimiento sobre este conjunto de datos no hubiera sido lo suficientemente apropiado de no haberse complementado con las herramientas anteriormente mencionadas. Es por ello que resaltamos la riqueza de abordar el análisis desde diversos enfoques y con distintas herramientas.
[1] Precios Claros (https://www.preciosclaros.gob.ar)
[2] Data Mining: Trabajo Práctico nº 1 - Análisis de un conjunto de datos de Precios Claros (https://rpubs.com/srovere/precios-claros)