bd_limpia <- read.csv("/Users/lizmanzano/Desktop/abarrotes_bd_limpia.csv")
# install.packages("plyr")
library(Matrix)
# install.packages("arules")
library(arules)
##
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
##
## abbreviate, write
# install.packages("arulesViz")
library(arulesViz)
library(datasets)
bd_limpia <- bd_limpia[order(bd_limpia$F.Ticket),]
head(bd_limpia)
## vcClaveTienda DescGiro Fecha Hora Marca
## 1 MX001 Abarrotes 2020-06-19 8 NUTRI LECHE
## 2 MX001 Abarrotes 2020-06-19 8 DAN UP
## 3 MX001 Abarrotes 2020-06-19 8 BIMBO
## 4 MX001 Abarrotes 2020-06-19 8 PEPSI
## 5 MX001 Abarrotes 2020-06-19 8 BLANCA NIEVES (DETERGENTE)
## 6 MX001 Abarrotes 2020-06-19 8 FLASH
## Fabricante Producto Precio
## 1 MEXILAC Nutri Leche 1 Litro 16.0
## 2 DANONE DE MEXICO DANUP STRAWBERRY P/BEBER 350GR NAL 14.0
## 3 GRUPO BIMBO Rebanadas Bimbo 2Pz 5.0
## 4 PEPSI-COLA MEXICANA Pepsi N.R. 400Ml 8.0
## 5 FABRICA DE JABON LA CORONA Detergente Blanca Nieves 500G 19.5
## 6 ALEN Flash Xtra Brisa Marina 500Ml 9.5
## Ult.Costo Unidades F.Ticket NombreDepartamento NombreFamilia
## 1 12.31 1 1 Abarrotes Lacteos y Refrigerados
## 2 14.00 1 2 Abarrotes Lacteos y Refrigerados
## 3 5.00 1 3 Abarrotes Pan y Tortilla
## 4 8.00 1 3 Abarrotes Bebidas
## 5 15.00 1 4 Abarrotes Limpieza del Hogar
## 6 7.31 1 4 Abarrotes Limpieza del Hogar
## NombreCategoria Estado Mts.2 Tipo.ubicación Giro
## 1 Leche Nuevo León 60 Esquina Abarrotes
## 2 Yogurt Nuevo León 60 Esquina Abarrotes
## 3 Pan Dulce Empaquetado Nuevo León 60 Esquina Abarrotes
## 4 Refrescos Plástico (N.R.) Nuevo León 60 Esquina Abarrotes
## 5 Lavandería Nuevo León 60 Esquina Abarrotes
## 6 Limpiadores Líquidos Nuevo León 60 Esquina Abarrotes
## Hora.inicio Hora.cierre Dia_de_la_semana Subtotal Utilidad
## 1 8:00 22:00 6 16.0 3.69
## 2 8:00 22:00 6 14.0 0.00
## 3 8:00 22:00 6 5.0 0.00
## 4 8:00 22:00 6 8.0 0.00
## 5 8:00 22:00 6 19.5 4.50
## 6 8:00 22:00 6 9.5 2.19
tail(bd_limpia)
## vcClaveTienda DescGiro Fecha Hora Marca
## 107394 MX004 Carnicería 2020-10-15 11 YEMINA
## 167771 MX004 Carnicería 2020-10-15 11 DEL FUERTE
## 149429 MX004 Carnicería 2020-10-15 11 COCA COLA ZERO
## 168750 MX004 Carnicería 2020-10-15 11 DIAMANTE
## 161193 MX004 Carnicería 2020-10-15 12 PEPSI
## 112970 MX004 Carnicería 2020-10-15 12 COCA COLA
## Fabricante Producto Precio Ult.Costo
## 107394 HERDEZ PASTA SPAGHETTI YEMINA 200G 7 5.38
## 167771 ALIMENTOS DEL FUERTE PURE DE TOMATE DEL FUERTE 345G 12 9.23
## 149429 COCA COLA COCA COLA ZERO 600ML 15 11.54
## 168750 EMPACADOS ARROZ DIAMANTE225G 11 8.46
## 161193 PEPSI-COLA MEXICANA PEPSI N. R. 500ML 10 7.69
## 112970 COCA COLA COCA COLA RETORNABLE 500ML 10 7.69
## Unidades F.Ticket NombreDepartamento NombreFamilia
## 107394 2 450032 Abarrotes Sopas y Pastas
## 167771 1 450032 Abarrotes Salsas y Sazonadores
## 149429 2 450034 Abarrotes Bebidas
## 168750 1 450037 Abarrotes Granos y Semillas
## 161193 1 450039 Abarrotes Bebidas
## 112970 8 450040 Abarrotes Bebidas
## NombreCategoria Estado Mts.2 Tipo.ubicación Giro
## 107394 Fideos, Spaguetti, Tallarines Sinaloa 53 Esquina Abarrotes
## 167771 Salsa para Spaguetti Sinaloa 53 Esquina Abarrotes
## 149429 Refrescos Retornables Sinaloa 53 Esquina Abarrotes
## 168750 Arroz Sinaloa 53 Esquina Abarrotes
## 161193 Refrescos Plástico (N.R.) Sinaloa 53 Esquina Abarrotes
## 112970 Refrescos Retornables Sinaloa 53 Esquina Abarrotes
## Hora.inicio Hora.cierre Dia_de_la_semana Subtotal Utilidad
## 107394 7:00 23:00 5 14 1.62
## 167771 7:00 23:00 5 12 2.77
## 149429 7:00 23:00 5 30 3.46
## 168750 7:00 23:00 5 11 2.54
## 161193 7:00 23:00 5 10 2.31
## 112970 7:00 23:00 5 80 2.31
# install.packages("plyr")
library(plyr)
basket <- ddply(bd_limpia,c("F.Ticket"), function(bd_limpia)paste(bd_limpia$Marca, collapse = ","))
basket$F.Ticket <- NULL
colnames(basket) <- c("Marca")
write.csv(basket,"basket_abarrotes.csv", quote = FALSE, row.names = FALSE)
tr <- read.transactions("/Users/lizmanzano/Desktop/basket_abarrotes.csv", format = "basket" , sep= ",")
reglas.asociacion <- apriori(tr, parameter = list(supp= 0.001, conf=0.2, maxlen=10))
## Apriori
##
## Parameter specification:
## confidence minval smax arem aval originalSupport maxtime support minlen
## 0.2 0.1 1 none FALSE TRUE 5 0.001 1
## maxlen target ext
## 10 rules TRUE
##
## Algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
##
## Absolute minimum support count: 115
##
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[604 item(s), 115111 transaction(s)] done [0.04s].
## sorting and recoding items ... [207 item(s)] done [0.00s].
## creating transaction tree ... done [0.05s].
## checking subsets of size 1 2 3 done [0.00s].
## writing ... [11 rule(s)] done [0.00s].
## creating S4 object ... done [0.01s].
# summary(reglas.asociacion)
# inspect(reglas.asociacion)
reglas.asociacion <- sort(reglas.asociacion, by = "confidence", decreasing = TRUE)
# summary(reglas.asociacion)
# inspect(reglas.asociacion)
top10reglas <- head(reglas.asociacion, n = 10, by = "confidence")
plot(top10reglas, method = "graph", engine = "htmlwidget")
Lo que se llevó a cabo dentro de este market basket fue mas que nada un análisis de las compras, de esta manera se analizaron los conjuntos de artículos para comprender a los clientes de mejor manera y así predecir sus necesidades, esto se hizo con la ayuda de herramientas como tidyverse y dplyr. Para esta tienda de abarrotes se ordenaron de menor a mayor los tickets y también se obtuvo una gráfica de top 10 reglas en dónde se pueden observar las marcas de productos que se encuentran en la tienda de abarrotes.