Este script muestra un análisis de las compras y
Se exploran las estructuras de los archivos de “olist_orders_dataset.csv”, “olist_order_items_dataset.csv”, “olist_order_payments_dataset.csv” y “olist_order_reviews_dataset.csv”
Por medio de instrucciones R str(), se exploran las estructuras de los archivos y se determinan algunos estadísticos descriptivos por medio de summary() y table() para determinar frecuencias.
Se determina algunas visualziaciones básicas por medio de ggplot2() y plot()
Las librerías
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(sqldf)
## Loading required package: gsubfn
## Loading required package: proto
## Loading required package: RSQLite
library(RSQLite)
library(proto)
library(gsubfn)
library(readr)
Cargar los datos de compras
compras <- read.csv("olist_orders_dataset.csv",
header = TRUE, sep = ",",
stringsAsFactors = TRUE)
head(compras) #
## order_id customer_id
## 1 e481f51cbdc54678b7cc49136f2d6af7 9ef432eb6251297304e76186b10a928d
## 2 53cdb2fc8bc7dce0b6741e2150273451 b0830fb4747a6c6d20dea0b8c802d7ef
## 3 47770eb9100c2d0c44946d9cf07ec65d 41ce2a54c0b03bf3443c3d931a367089
## 4 949d5b44dbf5de918fe9c16f97b45f8a f88197465ea7920adcdbec7375364d82
## 5 ad21c59c0840e6cb83a9ceb5573f8159 8ab97904e6daea8866dbdbc4fb7aad2c
## 6 a4591c265e18cb1dcee52889e2d8acc3 503740e9ca751ccdda7ba28e9ab8f608
## order_status order_purchase_timestamp order_approved_at
## 1 delivered 2017-10-02 10:56:33 2017-10-02 11:07:15
## 2 delivered 2018-07-24 20:41:37 2018-07-26 03:24:27
## 3 delivered 2018-08-08 08:38:49 2018-08-08 08:55:23
## 4 delivered 2017-11-18 19:28:06 2017-11-18 19:45:59
## 5 delivered 2018-02-13 21:18:39 2018-02-13 22:20:29
## 6 delivered 2017-07-09 21:57:05 2017-07-09 22:10:13
## order_delivered_carrier_date order_delivered_customer_date
## 1 2017-10-04 19:55:00 2017-10-10 21:25:13
## 2 2018-07-26 14:31:00 2018-08-07 15:27:45
## 3 2018-08-08 13:50:00 2018-08-17 18:06:29
## 4 2017-11-22 13:39:59 2017-12-02 00:28:42
## 5 2018-02-14 19:46:34 2018-02-16 18:17:02
## 6 2017-07-11 14:58:04 2017-07-26 10:57:55
## order_estimated_delivery_date
## 1 2017-10-18 00:00:00
## 2 2018-08-13 00:00:00
## 3 2018-09-04 00:00:00
## 4 2017-12-15 00:00:00
## 5 2018-02-26 00:00:00
## 6 2017-08-01 00:00:00
Explorar compras
- En la siguiente sección se muestran los primeros seis rgistros y las 8 variables de comrpas.
- El archivo de “olist_orders_dataset.csv”" denominado aquí “compras”" se compone por 99441 registos y las siguientes variables:
- Las variables son: “order_id”, “customer_id”,order_status“,”order_purchase_timestamp“,”order_approved_at“,”order_delivered_carrier_date" “order_delivered_customer_date”, “order_estimated_delivery_date”
- siendo un total de 8 variables
str(compras)
## 'data.frame': 99441 obs. of 8 variables:
## $ order_id : Factor w/ 99441 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 88951 32546 27770 57386 67044 63543 7553 39236 46083 89697 ...
## $ customer_id : Factor w/ 99441 levels "00012a2ce6f8dcda20d059ce98491703",..: 61761 68730 25514 96584 53774 31118 92191 60518 95387 19282 ...
## $ order_status : Factor w/ 8 levels "approved","canceled",..: 4 4 4 4 4 4 5 4 4 4 ...
## $ order_purchase_timestamp : Factor w/ 98875 levels "2016-09-04 21:15:19",..: 27602 90668 94566 35023 55222 15891 6386 9743 667 18535 ...
## $ order_approved_at : Factor w/ 90734 levels "","2016-09-15 12:16:38",..: 26910 83755 86887 33880 52143 15447 6368 9419 707 18033 ...
## $ order_delivered_carrier_date : Factor w/ 81019 levels "","2016-10-08 10:34:01",..: 24736 76469 78219 31487 49664 13978 1 9013 594 17711 ...
## $ order_delivered_customer_date: Factor w/ 95665 levels "","2016-10-11 13:46:32",..: 25876 88743 91784 33916 50233 15592 1 9155 597 18403 ...
## $ order_estimated_delivery_date: Factor w/ 459 levels "2016-09-30 00:00:00",..: 213 412 428 252 299 159 100 121 56 175 ...
summary(compras)
## order_id
## 00010242fe8c5a6d1ba2dd792cb16214: 1
## 00018f77f2f0320c557190d7a144bdd3: 1
## 000229ec398224ef6ca0657da4fc703e: 1
## 00024acbcdf0a6daa1e931b038114c75: 1
## 00042b26cf59d7ce69dfabb4e55b4fd9: 1
## 00048cc3ae777c65dbb7d2a0634bc1ea: 1
## (Other) :99435
## customer_id order_status
## 00012a2ce6f8dcda20d059ce98491703: 1 delivered :96478
## 000161a058600d5901f007fab4c27140: 1 shipped : 1107
## 0001fd6190edaaf884bcaf3d49edf079: 1 canceled : 625
## 0002414f95344307404f0ace7a26f1d5: 1 unavailable: 609
## 000379cdec625522490c315e70c7a9fb: 1 invoiced : 314
## 0004164d20a9e969af783496f3408652: 1 processing : 301
## (Other) :99435 (Other) : 7
## order_purchase_timestamp order_approved_at
## 2017-11-20 10:59:08: 3 : 160
## 2017-11-20 11:46:30: 3 2018-02-27 04:31:10: 9
## 2018-02-19 15:37:47: 3 2017-11-07 07:30:29: 7
## 2018-03-31 15:08:21: 3 2017-11-07 07:30:38: 7
## 2018-04-11 10:48:14: 3 2017-12-05 10:30:42: 7
## 2018-06-01 13:39:44: 3 2018-01-10 10:32:03: 7
## (Other) :99423 (Other) :99244
## order_delivered_carrier_date order_delivered_customer_date
## : 1783 : 2965
## 2018-05-09 15:48:00: 47 2016-10-27 17:32:07: 3
## 2018-05-10 18:29:00: 32 2017-06-19 18:47:51: 3
## 2018-05-07 12:31:00: 21 2017-12-02 00:26:45: 3
## 2018-05-02 15:15:00: 16 2018-02-14 21:09:19: 3
## 2018-07-24 16:07:00: 16 2018-05-08 19:36:48: 3
## (Other) :97526 (Other) :96461
## order_estimated_delivery_date
## 2017-12-20 00:00:00: 522
## 2018-03-12 00:00:00: 516
## 2018-03-13 00:00:00: 513
## 2018-05-29 00:00:00: 513
## 2018-02-14 00:00:00: 507
## 2017-12-18 00:00:00: 493
## (Other) :96377
colnames(compras)
## [1] "order_id" "customer_id"
## [3] "order_status" "order_purchase_timestamp"
## [5] "order_approved_at" "order_delivered_carrier_date"
## [7] "order_delivered_customer_date" "order_estimated_delivery_date"
De la anterior sección se exploran lo siguiente:
- Las variable “order_id” representa algo así como el folio de cada compra
- La variable “customer_id” representa como en la anterior entrada el identifiador o clave del cliente.
- No es significativo determinar estadísticos descriptivos para estas variables ya que son valores únicos.
Explorando las variables de compras
Se exploran las varibles más significativas
frecuencias <- data.frame(table(compras$order_status))
frecuencias <- cbind(frecuencias, frecuencias$Freq / sum(frecuencias$Freq) * 100)
colnames(frecuencias) <- c("Estado", "Frecuencia","FrecPorcentual")
frecuencias <- arrange(frecuencias, desc(Frecuencia))
frecuencias
## Estado Frecuencia FrecPorcentual
## 1 delivered 96478 97.020343721
## 2 shipped 1107 1.113222916
## 3 canceled 625 0.628513390
## 4 unavailable 609 0.612423447
## 5 invoiced 314 0.315765127
## 6 processing 301 0.302692049
## 7 created 5 0.005028107
## 8 approved 2 0.002011243
- Como se puede apreciar con respeto a la variable “order_status” que significa algo así como el estado que guarda cada compra, puediendo ser de los siguients tipos: delivered, shipped, canceled, unavailable, invoiced, processing, created, approved
- Existen un porcentaje del 97% de compras entregadas
- Existe un porcentaje de 1% aproximadamente de compras enviadas aún no entregadas seguramente.
- Todas las demás compras en condiciones de canceled, unavailable, invoiced, processing, created, approved tienen un porcentaje por debajo del 1%.
- Las variable o atributos siguientes de: “order_purchase_timestamp”, “order_approved_at”, “order_delivered_carrier_date” “order_delivered_customer_date”, “order_estimated_delivery_date” Son atributo tipo date que indican la fecha y hora en que se ha realizado la compra, fecha de aprobación de la compra, fecha de salida de la compra, fecha de entrega, fecha estimada de entrega
- Aquí lo que se puede analizar el tiempo de la fecha de compra realizada por el cliente con la fecha de entrega al cliente
Analizando fechas de compra y fechas de entrega
comprasEntregadas <- filter(compras, order_status == "delivered" )
head(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"))
## Time differences in days
## [1] 8 14 9 14 3 17
promedio <- mean(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"), na.rm = TRUE)
maximo <- max(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"), na.rm = TRUE)
minimo <- min(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"), na.rm = TRUE)
promedio
## Time difference of 12.49685 days
maximo
## Time difference of 210 days
minimo
## Time difference of 0 days
- Con lo anterior se observa el promedio de dias de una compra es ente 12 y 13 dias.
- El número de días máximo que se ha tardado una compra es de 210 dias, po el contrario hay compras que se han entregado al cliente de manera inmediata el mismo dia.
- El análisis a realizar sería ¿cuáles compras están por encima de la media? e identificar las causas así como establecer y regular mediante una política que el tiempo de entrega sea menor a la media, tal vez 10 dias u 8.
Explorando “olist_order_items_dataset.csv” como archivo dealleCompras
detalleCompras <- read.csv("olist_order_items_dataset.csv",
header = TRUE, sep = ",",
stringsAsFactors = TRUE)
head(detalleCompras)
## order_id order_item_id
## 1 00010242fe8c5a6d1ba2dd792cb16214 1
## 2 00018f77f2f0320c557190d7a144bdd3 1
## 3 000229ec398224ef6ca0657da4fc703e 1
## 4 00024acbcdf0a6daa1e931b038114c75 1
## 5 00042b26cf59d7ce69dfabb4e55b4fd9 1
## 6 00048cc3ae777c65dbb7d2a0634bc1ea 1
## product_id seller_id
## 1 4244733e06e7ecb4970a6e2683c13e61 48436dade18ac8b2bce089ec2a041202
## 2 e5f2d52b802189ee658865ca93d83a8f dd7ddc04e1b6c2c614352b383efe2d36
## 3 c777355d18b72b67abbeef9df44fd0fd 5b51032eddd242adc84c38acab88f23d
## 4 7634da152a4610f1595efa32f14722fc 9d7a1d34a5052409006425275ba1c2b4
## 5 ac6c3623068f30de03045865e4e10089 df560393f3a51e74553ab94004ba5c87
## 6 ef92defde845ab8450f9d70c526ef70f 6426d21aca402a131fc0a5d0960a3c90
## shipping_limit_date price freight_value
## 1 2017-09-19 09:45:35 58.90 13.29
## 2 2017-05-03 11:05:13 239.90 19.93
## 3 2018-01-18 14:48:30 199.00 17.87
## 4 2018-08-15 10:10:18 12.99 12.79
## 5 2017-02-13 13:57:51 199.90 18.14
## 6 2017-05-23 03:55:27 21.90 12.69
str(detalleCompras)
## 'data.frame': 112650 obs. of 7 variables:
## $ order_id : Factor w/ 98666 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ order_item_id : int 1 1 1 1 1 1 1 1 1 1 ...
## $ product_id : Factor w/ 32951 levels "00066f42aeeb9f3007548bb9d3f33c38",..: 8629 29598 25668 15323 22080 30848 18182 11123 6385 9013 ...
## $ seller_id : Factor w/ 3095 levels "0015a82c2db000af6aaaf3ae2ecb0532",..: 855 2679 1118 1920 2698 1224 1372 1091 1997 2231 ...
## $ shipping_limit_date: Factor w/ 93318 levels "2016-09-19 00:15:34",..: 24067 7194 45696 89769 1641 9384 39631 81823 60182 81339 ...
## $ price : num 58.9 239.9 199 13 199.9 ...
## $ freight_value : num 13.3 19.9 17.9 12.8 18.1 ...
colnames(detalleCompras)
## [1] "order_id" "order_item_id" "product_id"
## [4] "seller_id" "shipping_limit_date" "price"
## [7] "freight_value"
Explorar detalleCompras
- En la anterior sección se muestran los primeros seis registros y las 7 variables de detalleCompras.
- El archivo de “olist_order_items_dataset.csv”" denominado aquí “compras”" se compone por 112650 registos y las siguientes variables:
- Las variables son: “order_id”, “order_item_id”, “product_id” “seller_id”, “shipping_limit_date” “price”, “freight_value”
- siendo un total de 7 variables
- La variable “order_id” es el compra relacionada con el archivo compras al igual que la variable order_item_id que son valores únicos
- La variable product_id es como la clave del producto
- La variable “seller_id” es el vendedor que registra la compra o atiende el envío de la compra.
- La “shipping_limit_date” es como la fecha límite para entrega del producto de la compra
- La variable “price”, representa el precio del producto y
- La variable “freight_value” significa algo así como el costo del envío por el tamaño, tipo dimensiones, entre otras cosas del producto.
Determinando algunos estadísticos descriptivos del detalleCompras
summary(detalleCompras)
## order_id order_item_id
## 8272b63d03f5f79c56e9e4120aec44ef: 21 Min. : 1.000
## 1b15974a0141d54e36626dca3fdc731a: 20 1st Qu.: 1.000
## ab14fdcfbe524636d65ee38360e22ce8: 20 Median : 1.000
## 428a2f660dc84138d969ccd69a0ab6d5: 15 Mean : 1.198
## 9ef13efd6949e4573a18964dd1bbe7f5: 15 3rd Qu.: 1.000
## 73c8ab38f07dc94389065f7eba4f297a: 14 Max. :21.000
## (Other) :112545
## product_id
## aca2eb7d00ea1a7b8ebd4e68314663af: 527
## 99a4788cb24856965c36a24e339b6058: 488
## 422879e10f46682990de24d770e7f83d: 484
## 389d119b48cf3043d311335e499d9c6b: 392
## 368c6c730842d78016ad823897a372db: 388
## 53759a2ecddad2bb87a079a1f1519f73: 373
## (Other) :109998
## seller_id shipping_limit_date
## 6560211a19b47992c3666cc44a7e94c0: 2033 2017-07-21 18:25:23: 21
## 4a3ca9315b744ce9f8e9374361493884: 1987 2018-03-01 02:50:48: 21
## 1f50f920176fa81dab994f9023523100: 1931 2017-08-30 14:30:23: 20
## cc419e0650a3c5ba77189a1882b7556a: 1775 2017-02-03 21:44:49: 15
## da8622b14eb17ae2831f4ac5b9dab84a: 1551 2017-11-30 10:30:51: 15
## 955fee9216a65b617aa5c0531780ce60: 1499 2017-12-21 02:30:41: 15
## (Other) :101874 (Other) :112543
## price freight_value
## Min. : 0.85 Min. : 0.00
## 1st Qu.: 39.90 1st Qu.: 13.08
## Median : 74.99 Median : 16.26
## Mean : 120.65 Mean : 19.99
## 3rd Qu.: 134.90 3rd Qu.: 21.15
## Max. :6735.00 Max. :409.68
##
- El precio medio de los productos es de 120.65, el precio más barto es de 0.85 y el producto más caro es de 6735.00.
- Por otra parte el precio medio de carga (freight_value) es 19.99, el menor es 0.0, el mayor es de 409.68.
Explorando “”olist_order_payments_dataset.csv" como archivo metodoPago
metodoPago <- read.csv("olist_order_payments_dataset.csv",
header = TRUE, sep = ",",
stringsAsFactors = TRUE)
head(metodoPago)
## order_id payment_sequential payment_type
## 1 b81ef226f3fe1789b1e8b2acac839d17 1 credit_card
## 2 a9810da82917af2d9aefd1278f1dcfa0 1 credit_card
## 3 25e8ea4e93396b6fa0d3dd708e76c1bd 1 credit_card
## 4 ba78997921bbcdc1373bb41e913ab953 1 credit_card
## 5 42fdf880ba16b47b59251dd489d4441a 1 credit_card
## 6 298fcdf1f73eb413e4d26d01b25bc1cd 1 credit_card
## payment_installments payment_value
## 1 8 99.33
## 2 1 24.39
## 3 1 65.71
## 4 8 107.78
## 5 2 128.45
## 6 2 96.12
str(metodoPago)
## 'data.frame': 103886 obs. of 5 variables:
## $ order_id : Factor w/ 99440 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 71446 65633 14657 72396 25967 16046 46192 23843 12217 2146 ...
## $ payment_sequential : int 1 1 1 1 1 1 1 1 1 1 ...
## $ payment_type : Factor w/ 5 levels "boleto","credit_card",..: 2 2 2 2 2 2 2 2 2 1 ...
## $ payment_installments: int 8 1 1 8 2 2 1 3 6 1 ...
## $ payment_value : num 99.3 24.4 65.7 107.8 128.4 ...
colnames(metodoPago)
## [1] "order_id" "payment_sequential" "payment_type"
## [4] "payment_installments" "payment_value"
- Este archivo denominado en la variable merodoPago tiene 103886 y 5 variables.
- La variable “order_id” es el folio o id de la compra, asociada con archivo compras y detalleCompras.
- La variable “payment_sequential” es un concepto de pago secuencial ????.
- La variable “payment_type” como tipo de pago tiene varios factores: boleto, credit_card, debit_card, not_defined y voucher (boleto, tarjeta de crédito, tarjeta de débito, no definido y vale)
- La “payment_installments” como un pago o cuota extra de la compra.
- Y finalmente, la variable “payment_value” valor del pago como valor numérico.
Determinando algunos estadísticos descriptivos del metodoPago
summary(metodoPago)
## order_id payment_sequential
## fa65dad1b0e818e3ccc5cb0e39231352: 29 Min. : 1.000
## ccf804e764ed5650cd8759557269dc13: 26 1st Qu.: 1.000
## 285c2e15bebd4ac83635ccc563dc71f4: 22 Median : 1.000
## 895ab968e7bb0d5659d16cd74cd1650c: 21 Mean : 1.093
## ee9ca989fc93ba09a6eddc250ce01742: 19 3rd Qu.: 1.000
## fedcd9f7ccdc8cba3a18defedd1a5547: 19 Max. :29.000
## (Other) :103750
## payment_type payment_installments payment_value
## boleto :19784 Min. : 0.000 Min. : 0.00
## credit_card:76795 1st Qu.: 1.000 1st Qu.: 56.79
## debit_card : 1529 Median : 1.000 Median : 100.00
## not_defined: 3 Mean : 2.853 Mean : 154.10
## voucher : 5775 3rd Qu.: 4.000 3rd Qu.: 171.84
## Max. :24.000 Max. :13664.08
##
- Con la anterior sección se identifica lo siguiente:
- El mecanismo de pago mas utilizado es por medio de tarjeta de crédito con un total de 76795 compras realizadas por este medio; por boleto y vale son los mecanismos de compra que le siguen; luego por tarjeta de débito y 3 compras sin definir su mecanismo de pago.
- Se observa que el valor medio de payment_installments es de 2.853, el valor mínimo es 1 y el valor máximo es de 24.00.
- El valor medio de payment_value es de 154.10, su valor mínimo fue de 0 y el máximo fue de 13664.08
Explorando “olist_order_reviews_dataset.csv” como archivo metodoPago
retroalimentacionCompras <- read.csv("olist_order_reviews_dataset.csv",
header = TRUE, sep = ",",
stringsAsFactors = TRUE)
head(retroalimentacionCompras)
## review_id order_id
## 1 7bc2406110b926393aa56f80a40eba40 73fc7af87114b39712e6da79b0a377eb
## 2 80e641a11e56f04c1ad469d5645fdfde a548910a1c6147796b98fdf73dbeba33
## 3 228ce5500dc1d8e020d8d1322874b6f0 f9e4b658b201a9f2ecdecbb34bed034b
## 4 e64fb393e7b32834bb789ff8bb30750e 658677c97b385a9be170737859d3511b
## 5 f7c4243c7fe1938f181bec41a392bdeb 8e6bfb81e283fa7e4f11123a3fb894f1
## 6 15197aa66ff4d0650b5434f1b46cda19 b18dcdf73be66366873cd26c5724d1dc
## review_score review_comment_title
## 1 4
## 2 5
## 3 5
## 4 5
## 5 5
## 6 1
## review_comment_message
## 1
## 2
## 3
## 4 Recebi bem antes do prazo estipulado.
## 5 Parabéns lojas lannister adorei comprar pela Internet seguro e prático Parabéns a todos feliz Páscoa
## 6
## review_creation_date review_answer_timestamp
## 1 2018-01-18 00:00:00 2018-01-18 21:46:59
## 2 2018-03-10 00:00:00 2018-03-11 03:05:13
## 3 2018-02-17 00:00:00 2018-02-18 14:36:24
## 4 2017-04-21 00:00:00 2017-04-21 22:02:06
## 5 2018-03-01 00:00:00 2018-03-02 10:26:53
## 6 2018-04-13 00:00:00 2018-04-16 00:39:37
retroalimentacionCompras$review_score <- as.factor(retroalimentacionCompras$review_score)
str(retroalimentacionCompras)
## 'data.frame': 100000 obs. of 7 variables:
## $ review_id : Factor w/ 99173 levels "0001239bc1de2e33cb583967c2ca4c67",..: 48013 50030 13322 89282 95962 8159 3060 48292 63672 52194 ...
## $ order_id : Factor w/ 99441 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 45052 63915 97051 39397 55031 68818 88966 75802 60275 72099 ...
## $ review_score : Factor w/ 5 levels "1","2","3","4",..: 4 5 5 5 5 1 5 5 5 4 ...
## $ review_comment_title : Factor w/ 4601 levels "","-","- Luminária de Mesa pelic",..: 1 1 1 1 1 1 1 1 1 3805 ...
## $ review_comment_message : Factor w/ 36923 levels "","'entrega feita dentro do prazo",..: 1 1 1 31778 25773 1 1 1 1 4357 ...
## $ review_creation_date : Factor w/ 637 levels "2016-10-02 00:00:00",..: 413 463 442 147 454 497 230 620 170 536 ...
## $ review_answer_timestamp: Factor w/ 99010 levels "2016-10-07 18:32:28",..: 45452 56963 51957 5910 54897 66179 15081 93211 7935 75810 ...
colnames(retroalimentacionCompras)
## [1] "review_id" "order_id"
## [3] "review_score" "review_comment_title"
## [5] "review_comment_message" "review_creation_date"
## [7] "review_answer_timestamp"
Determinando algunos estadísticos descriptivos del metodoPago
summary(retroalimentacionCompras)
## review_id
## 08528f70f579f0c830189efc523d2182: 3
## 0c76e7a547a531e7bf9f0b99cba071c1: 3
## 1fb4ddc969e6bea80e38deec00393a6f: 3
## 2172867fd5b1a55f98fe4608e1547b4b: 3
## 2d6ac45f859465b5c185274a1c929637: 3
## 308316408775d1600dad81bd3184556d: 3
## (Other) :99982
## order_id review_score
## 03c939fd7fd3b38f8485a0f95798f1f6: 3 1:11858
## 8e17072ec97ce29f0e1f111e598b0c85: 3 2: 3235
## c88b1d1b157a9999ce368f218a407141: 3 3: 8287
## df56136b8031ecd28e200bb18e6ddb2e: 3 4:19200
## 0035246a40f520710769010f752e7507: 2 5:57420
## 013056cfe49763c6f66bda03396c5ee3: 2
## (Other) :99984
## review_comment_title review_comment_message
## :88285 :58245
## Recomendo : 426 Muito bom: 230
## recomendo : 346 Bom : 189
## Bom : 294 muito bom: 122
## super recomendo: 271 bom : 107
## Excelente : 248 (Other) :41106
## (Other) :10130 NA's : 1
## review_creation_date review_answer_timestamp
## 2017-12-19 00:00:00: 466 2017-06-15 23:21:05: 4
## 2018-08-28 00:00:00: 453 2017-02-14 13:58:48: 3
## 2017-12-20 00:00:00: 445 2017-02-21 23:30:22: 3
## 2018-05-19 00:00:00: 434 2017-04-13 21:12:43: 3
## 2018-05-15 00:00:00: 428 2017-05-19 19:12:36: 3
## 2018-08-14 00:00:00: 426 2017-06-25 14:04:22: 3
## (Other) :97348 (Other) :99981
- La secciones anteriores identifican registros de la tabla retroalimentacionCompras del archivo olist_order_reviews_dataset.csv, la cual para efectos de conocimiento de los datos implica lo que los clientes mencionan o dicen por medio de un mensaje acerca de la compra que hicieron. Buzón de quejas y/o nivel de satisfacción de la compra.
- El archivo tiene 100000 observaciones y 7 variables
- La variable “review_id” es el folio de la retroalimentación de la compra del cliente.
- La variable “order_id” es la identificación de la compra relacionada con todos los archivos de compras descritos anteriormente
- La variable “review_score” recibe un nivel de satisfacción del cliente con valores entre 1 y 5 de la compra que realiza.
- La variable
- La varaible review_comment_title" es el título del comentario y por consiguiente la variable “review_comment_message” es el mensaje del comentario de la compra realizada.
- La variable “review_creation_date” es la fecha en que se revisa el comentario y
- La variable “review_answer_timestamp” es la fecha de la respuesta al comentario, o tal vez cuando se hace el comentario.
Determinando niveles de satisfacción del cliente
summary(as.numeric(retroalimentacionCompras$review_score))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 4.000 5.000 4.071 5.000 5.000
frecuenciasSatis <- data.frame(table(retroalimentacionCompras$review_score))
frecuenciasSatis <- arrange(frecuenciasSatis, desc(Freq))
frecuenciasSatis
## Var1 Freq
## 1 5 57420
## 2 4 19200
## 3 1 11858
## 4 3 8287
## 5 2 3235
- De lo anterior, se interpreta que la media en cuanto a nivel de satisfacción es 4.071, con valores mínimos y máximos de 1 y 5 respectivamente.
- Se observa también, que en un nivel de satisfacción de 1 a 5 siendo 1 menos satisfecho y 5 más satisfecho, hay gran satisfacción por las compras con una frecuencia de 57420 clientes que opinan 5.
- 19200 clientes opinan 4,
- 11858 clientes opinan 1,
- 8287 clientes opinan 3 y,
- 3235 clientes opinan 2
frecuenciasTitle <- data.frame(table(retroalimentacionCompras$review_comment_title))
frecuenciasTitle <- arrange(frecuenciasTitle, desc(Freq))
head(frecuenciasTitle, 20) # 20 mas frecuentes títulos de msjs
## Var1 Freq
## 1 88285
## 2 Recomendo 426
## 3 recomendo 346
## 4 Bom 294
## 5 super recomendo 271
## 6 Excelente 248
## 7 Muito bom 247
## 8 Ótimo 240
## 9 Super recomendo 218
## 10 Ótimo 207
## 11 Otimo 174
## 12 10 158
## 13 Excelente 119
## 14 otimo 105
## 15 bom 97
## 16 Boa 87
## 17 Muito bom 87
## 18 Recomendo 62
## 19 Não recomendo 57
## 20 Perfeito 57
tail(frecuenciasTitle, 20) # 20 menos frecuentes títulos de msjs
## Var1 Freq
## 4582 Vou avaliar na instalação 1
## 4583 Vou devolver 1
## 4584 vou devolver o produto 1
## 4585 Vou Instalar ele hj 1
## 4586 Vou recomendar sempre 1
## 4587 Vrio com defeito 1
## 4588 Wagner 1
## 4589 X 1
## 4590 XADREZ 1
## 4591 xx 1
## 4592 Xxc 1
## 4593 Xxx 1
## 4594 XXXX 1
## 4595 xxxxxxxxxxx 1
## 4596 Zenildo 1
## 4597 Zero 1
## 4598 zero estrela 1
## 4599 Zero nota zero 1
## 4600 zero vou ao procom 1
## 4601 ZMA 1
- Hay 88285 mensajes sin título
- Se muestra la mayor frecuencia de títulos de messajes (Idioma Portugués)
- Se muestra la menor frecuencia de títulos de mensajes (Idioma Portugués)
diasRespuesta <- difftime(retroalimentacionCompras$review_answer_timestamp, retroalimentacionCompras$review_creation_date, units= "days")
frecuenciasDiasResp <- data.frame(table(as.factor(diasRespuesta)))
frecuenciasDiasResp <- arrange(frecuenciasDiasResp, desc(Freq))
head(frecuenciasDiasResp)
## Var1 Freq
## 1 1 31130
## 2 0 24582
## 3 2 15815
## 4 3 13891
## 5 4 4490
## 6 5 2637
tail(frecuenciasDiasResp)
## Var1 Freq
## 382 433 1
## 383 446 1
## 384 471 1
## 385 507.958333333333 1
## 386 511.958333333333 1
## 387 517.958333333333 1
- Existe 31130 encuestas de satisfacción responden en 1 dia
- 24582 respondidas el mismo dia
- 15815 en 2 dias
- 13891 en 3 dias
- 4490 en 2 dias
- 2637 en 5 dias
- Siendo 100,000 mil encuestas de satisfacción, el 61% de las encuestas se responden en menos de 6 dias.
media <- mean(frecuenciasDiasResp$Freq)
maximo <- max(frecuenciasDiasResp$Freq)
minimo <- min(frecuenciasDiasResp$Freq)
media
## [1] 258.3979
maximo
## [1] 31130
minimo
## [1] 1
- Se muestra la media 258 dias como promedio en responder, los valores máximos 31130 y 1 dia como mínimo en la respuesta a las encuestas de satisfacción de las compras de los clientes.