Fecha: 2016-12-01
Queremos empezar a encontrar relaciones interesantes en los datos. Empezamos por descargar los datos y declarar librerías, Imputaremos la variable valor facturado para sacar del análisis el efecto “Adriana Arboleda” quien tiene unas compras tan inusuales que podría distorcionar el análisis.
1)Todo este análisis se hace desde el 1 de agosto de 2016.
2)En este análisis se incluyo la observación hecha por Natalia Jimenez de que se redefiniera el concepto de recompra el cual anteriormente se entendía como que había recompra siempre y cuando el cliente comprar más de una vez sin importar si las compras eran hechas el mismo día. A partir de ahora el concepto de recompra se define que además de haber comprado más de una sola vez, tiene que haber sido en días diferentes para considerarse una recompra efectiva.
3)También se tuvo en cuenta la observación hecha por Viviana Molinares de quitar datos atípicos del análisis (caso Adriana Arboleda y otros) para poder quitar una posible distorción en las conclusiones. Para ello se decidió hacer imputación de datos para todo lo que esté por encima de $2.474.392 (quantil 98%) se le asigné el valor de ese cuantil.
## <environment: R_GlobalEnv>
Vamos a identificar las variables que tengan fecha, las convertiremos de caracteres a formato fecha y de ahi crearemos las columnas dia de la semana y mes. De aquí podriamos calcular, la edad de las personas, configurar rangos de edades, el mes de la factura,la hora de la factura,
Limpiaremos los datos de la variable valor facturado para sacar a Adriana Arboleda y otros con comportamientos atípicos del análisis. Esos datos serán guardados en la variable valor. También conservaremos los datos originales sin imputación en la variable valor2. El propósito de ellos es que para el análisis de clusteres necesitaremos los datos originales sin imputación.
Queremos analizar los clientes que usan hicieron más de una compra en el centro comercial de los que no. La idea que tengo es que identificar cuantos facturas existen por cada cliente. Los clientes que tengan más de una factura que clasificarían como si recompraron, mientras que los que tengan una sola factura los clasificaremos como No en la variable categórica recompra
Hay 1532 contratos de clientes que al menos una vez hicieron una compra, pero de ellos 1447 volvieron a efectuar más de una compra. Entonces es obvio que si hay clientes que hacen compras frecuentemente. El porcentaje de Churn es del 5.55 %.
RFM es uno de los métodos de segmentación de clientes más sencillos de implantar, y al mismo tiempo uno de los que mejores resultados aportan a corto plazo. Se basa en el célebre principio de Pareto, según la cual el 20% de los clientes de una compañía generan el 80% de los ingresos. El RFM es la mejor manera de constatar hasta qué punto este paradigma es real en nuestro caso, y ubicar a cada cliente en su escalón de la pirámide de valor.
El análisis consiste en clasificar a los clientes por su valor en función de tres variables:
1)Recencia. Días transcurridos desde la última compra.
2)Frecuencia. Número de compras por período de tiempo, como promedio. Por ejemplo, número de compras mensuales.
3)Money. Valor de las compras totales realizadas por el cliente en el tiempo de análisis.
En caso de que se incluya el valor facturado al modelo se recomienda hacer transformación a los datos.
Finalmente empezaremos por unir los datos de tiendas y usuarios con las tablas de: usuarios-tiendas-seleccionadas y usuarios-tiendas-categorias para analizar a los usuarios por tiendas visitadas y categorías.
##
## To cite qcc in publications use:
##
## Scrucca, L. (2004). qcc: an R package for quality control
## charting and statistical process control. R News 4/1, 11-17.
##
## A BibTeX entry for LaTeX users is
##
## @Article{,
## title = {qcc: an R package for quality control charting and statistical process control},
## author = {Luca Scrucca},
## journal = {R News},
## year = {2004},
## pages = {11--17},
## volume = {4/1},
## url = {http://CRAN.R-project.org/doc/Rnews/},
## }
##
## Pareto chart analysis for y[1:10]
## Frequency Cum.Freq. Percentage Cum.Percent.
## Exito 56996307 56996307 80.57927546 80.57928
## Mont Blanc 4618672 61614979 6.52970831 87.10898
## Brissa 2333467 63948447 3.29897010 90.40795
## Naf Naf 1777800 65726247 2.51338803 92.92134
## Avianca - Deprisa 1397670 67123917 1.97597427 94.89732
## Planeta Sport 1011000 68134917 1.42931449 96.32663
## Café Illy 987430 69122347 1.39599209 97.72262
## Nike 939500 70061847 1.32823043 99.05085
## Jenos Pizza 659150 70720997 0.93188194 99.98274
## Agencia de Pantuflas 12212 70733209 0.01726487 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## Posgrado 213130.8 213130.8 34.50806 34.50806
## No det 187320.5 400451.3 30.32912 64.83718
## Profesional 108697.8 509149.1 17.59930 82.43648
## Secundaria 108476.9 617626.0 17.56352 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## Posgrado 213130.8 213130.8 34.50806 34.50806
## No det 187320.5 400451.3 30.32912 64.83718
## Profesional 108697.8 509149.1 17.59930 82.43648
## Secundaria 108476.9 617626.0 17.56352 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## No det 123069590 123069590 49.97456 49.97456
## Profesional 61849063 184918653 25.11489 75.08946
## Posgrado 57332176 242250829 23.28073 98.37019
## Secundaria 4013644 246264473 1.62981 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## No det 123069590 123069590 49.97456 49.97456
## Profesional 61849063 184918653 25.11489 75.08946
## Posgrado 57332176 242250829 23.28073 98.37019
## Secundaria 4013644 246264473 1.62981 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## 11 93340134 93340134 37.9023951 37.90240
## 10 77142531 170482665 31.3250750 69.22747
## 9 58782798 229265463 23.8697841 93.09725
## 8 16706511 245971973 6.7839711 99.88123
## 12 292500 246264473 0.1187747 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## 11 93340134 93340134 37.9023951 37.90240
## 10 77142531 170482665 31.3250750 69.22747
## 9 58782798 229265463 23.8697841 93.09725
## 8 16706511 245971973 6.7839711 99.88123
## 12 292500 246264473 0.1187747 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## sábado 58215289 58215289 23.639337 23.63934
## jueves 40511426 98726714 16.450373 40.08971
## miércoles 36400065 135126780 14.780884 54.87059
## viernes 32754110 167880890 13.300380 68.17097
## domingo 28727214 196608104 11.665188 79.83616
## martes 25359762 221967866 10.297775 90.13394
## lunes 24296608 246264473 9.866063 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## sábado 58215289 58215289 23.639337 23.63934
## jueves 40511426 98726714 16.450373 40.08971
## miércoles 36400065 135126780 14.780884 54.87059
## viernes 32754110 167880890 13.300380 68.17097
## domingo 28727214 196608104 11.665188 79.83616
## martes 25359762 221967866 10.297775 90.13394
## lunes 24296608 246264473 9.866063 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## No det 123069590 123069590 49.97456 49.97456
## Casado 75292488 198362077 30.57383 80.54839
## Soltero 47902396 246264473 19.45161 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## No det 123069590 123069590 49.97456 49.97456
## Casado 75292488 198362077 30.57383 80.54839
## Soltero 47902396 246264473 19.45161 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## Soltero 202976.3 202976.3 39.94609 39.94609
## No det 187320.5 390296.8 36.86502 76.81111
## Casado 117828.6 508125.4 23.18889 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## Soltero 202976.3 202976.3 39.94609 39.94609
## No det 187320.5 390296.8 36.86502 76.81111
## Casado 117828.6 508125.4 23.18889 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## 1 265614.39 265614.4 10.307092 10.30709
## 7 202267.57 467882.0 7.848937 18.15603
## 11 199349.08 667231.0 7.735685 25.89171
## 9 196944.31 864175.3 7.642369 33.53408
## 3 182331.22 1046506.6 7.075312 40.60940
## 4 181942.58 1228449.2 7.060231 47.66963
## 16 181631.67 1410080.8 7.048166 54.71779
## 10 179915.90 1589996.7 6.981586 61.69938
## 8 166308.47 1756305.2 6.453554 68.15293
## 6 160893.39 1917198.6 6.243423 74.39636
## 14 140444.49 2057643.1 5.449909 79.84627
## 13 132801.92 2190445.0 5.153341 84.99961
## 12 123380.37 2313825.4 4.787741 89.78735
## 15 107783.33 2421608.7 4.182502 93.96985
## 5 106141.17 2527749.9 4.118778 98.08863
## 2 49256.17 2577006.0 1.911372 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## 1 265614.39 265614.4 10.307092 10.30709
## 7 202267.57 467882.0 7.848937 18.15603
## 11 199349.08 667231.0 7.735685 25.89171
## 9 196944.31 864175.3 7.642369 33.53408
## 3 182331.22 1046506.6 7.075312 40.60940
## 4 181942.58 1228449.2 7.060231 47.66963
## 16 181631.67 1410080.8 7.048166 54.71779
## 10 179915.90 1589996.7 6.981586 61.69938
## 8 166308.47 1756305.2 6.453554 68.15293
## 6 160893.39 1917198.6 6.243423 74.39636
## 14 140444.49 2057643.1 5.449909 79.84627
## 13 132801.92 2190445.0 5.153341 84.99961
## 12 123380.37 2313825.4 4.787741 89.78735
## 15 107783.33 2421608.7 4.182502 93.96985
## 5 106141.17 2527749.9 4.118778 98.08863
## 2 49256.17 2577006.0 1.911372 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## No det 142509629 142509629 57.8685292 57.86853
## Usaquén 42347437 184857065 17.1959179 75.06445
## Chicó 31010657 215867722 12.5924201 87.65687
## Puente Aranda 12941568 228809290 5.2551502 92.91202
## Engativa 12465844 241275134 5.0619742 97.97399
## Suba 3380454 244655588 1.3726925 99.34668
## Ciudad Kennedy 1608885 246264473 0.6533159 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## No det 142509629 142509629 57.8685292 57.86853
## Usaquén 42347437 184857065 17.1959179 75.06445
## Chicó 31010657 215867722 12.5924201 87.65687
## Puente Aranda 12941568 228809290 5.2551502 92.91202
## Engativa 12465844 241275134 5.0619742 97.97399
## Suba 3380454 244655588 1.3726925 99.34668
## Ciudad Kennedy 1608885 246264473 0.6533159 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## (45,65] 135862427 135862427 55.169316 55.16932
## (35,45] 46185580 182048006 18.754463 73.92378
## (65,Inf] 27605570 209653577 11.209725 85.13350
## (25,35] 15963255 225616831 6.482159 91.61566
## (-1,18] 14916282 240533113 6.057017 97.67268
## (18,25] 5731360 246264473 2.327319 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## (45,65] 135862427 135862427 55.169316 55.16932
## (35,45] 46185580 182048006 18.754463 73.92378
## (65,Inf] 27605570 209653577 11.209725 85.13350
## (25,35] 15963255 225616831 6.482159 91.61566
## (-1,18] 14916282 240533113 6.057017 97.67268
## (18,25] 5731360 246264473 2.327319 100.00000
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## (-1,18] 298325.6 298325.6 25.40140 25.40140
## (65,Inf] 230046.4 528372.1 19.58766 44.98906
## (18,25] 220436.9 748809.0 18.76944 63.75850
## (45,65] 161548.7 910357.7 13.75531 77.51381
## (25,35] 143813.1 1054170.8 12.24519 89.75900
## (35,45] 120274.9 1174445.7 10.24100 100.00000
## png
## 2
##
## Pareto chart analysis for y
## Frequency Cum.Freq. Percentage Cum.Percent.
## (-1,18] 298325.6 298325.6 25.40140 25.40140
## (65,Inf] 230046.4 528372.1 19.58766 44.98906
## (18,25] 220436.9 748809.0 18.76944 63.75850
## (45,65] 161548.7 910357.7 13.75531 77.51381
## (25,35] 143813.1 1054170.8 12.24519 89.75900
## (35,45] 120274.9 1174445.7 10.24100 100.00000
Es muy posible que los resultados del análisis de árboles se vea distorcionado por la poca cantidad de datos asi como el hecho de que hay usuarios que no han querido especificar su genero, estado civil, edad y nivel educativo.
## png
## 2
## png
## 2
## png
## 2
Es muy posible que los resultados del análisis de cajas también se vea distorcionado por la poca cantidad de datos asi como el hecho de que hay usuarios que no han querido especificar su genero, estado civil, edad y nivel educativo.
## png
## 2
Del primer análisis de cajas se evidencia la existencia de datos atípicos y que las mujeres tienen mayor variabilidad de precios en los valores facturados.
## png
## 2
## png
## 2
## png
## 2
## png
## 2
## png
## 2
## png
## 2
Seleccionaremos las siguientes variables para determinar si hay correlación entre las siguientes variables:Tienda,valor,documento, genero,ciudad,sector,nivel_educativo,estado.civil,hijos,week.day,rango.edad y recompra.
## png
## 2
## png
## 2
## png
## 2
Del análisis de individuos se puede apreciar como hay mayor cantidad de personas que recompran que las que no. Se necesitaría más datos para predecir mejor los que no harían recompras.
Del Análisis multifactorial podemos evidenciár la correlación negativa que hay entre recompra y rango de edades.También hay correlación negativa entre recompra y valor facturado, pero el tamaño del vector es tan pequeño que no se puede afirmar. Parececiera haber una correlación positiva con No de hijos del usuario.
También viendo la gráfica veo que es mejor convertir las variables factor a dummies e intentar mejorar el modelo con esa transformación a las variables categóricas.
Empezaremos por transformar variables categóricas a dummies. Luego haremos la transformación a la variable valor antes de construir el modelo predictivo
## Warning in `[.data.table`(training_sample, , `:=`((c(34)), NULL), with
## = F): with=FALSE ignored, it isn't needed when using :=. See ?':=' for
## examples.
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Si
## No 57 0
## Si 3 1013
##
## Accuracy : 0.9972
## 95% CI : (0.9919, 0.9994)
## No Information Rate : 0.9441
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9729
## Mcnemar's Test P-Value : 0.2482
##
## Sensitivity : 0.95000
## Specificity : 1.00000
## Pos Pred Value : 1.00000
## Neg Pred Value : 0.99705
## Prevalence : 0.05592
## Detection Rate : 0.05312
## Detection Prevalence : 0.05312
## Balanced Accuracy : 0.97500
##
## 'Positive' Class : No
##
Cuando se gráfican los componentes principales contra el error se encuentra que el error baja a su mínimo cuando el número de componentes principales es 16, por lo que usaremos ese número de pca para predecir
## Warning in `[.data.table`(testing_sample, , `:=`((c(34)), NULL), with = F):
## with=FALSE ignored, it isn't needed when using :=. See ?':=' for examples.
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Si
## No 4 8
## Si 21 426
##
## Accuracy : 0.9368
## 95% CI : (0.9105, 0.9573)
## No Information Rate : 0.9455
## P-Value [Acc > NIR] : 0.82405
##
## Kappa : 0.1875
## Mcnemar's Test P-Value : 0.02586
##
## Sensitivity : 0.160000
## Specificity : 0.981567
## Pos Pred Value : 0.333333
## Neg Pred Value : 0.953020
## Prevalence : 0.054466
## Detection Rate : 0.008715
## Detection Prevalence : 0.026144
## Balanced Accuracy : 0.570783
##
## 'Positive' Class : No
##
Es evidente que con más y mejores datos el modelo predictivo puede mejorar. Al menos está prediciendo bien los que si recompran, pero es necesario que aprenda a predecir mejor a los que no.
Cuando incluí la variable tienda, la predicción mejoró en un 4% pero tuve que quitarla porque al no haber suficientes datos, cuando se hace la prueba con los datos de testeo se genera un error, porque aparecen en los datos de testeo nuevas tiendas que no fueron incluidas en los datos de entrenamiento.