En este trabajo realizaremos un análisis exploratorio de datos que ilustra las características de una muestra de clientes del servicio de Amazon Prime. Para ello, haremos uso de las diferentes skills de programación en lenguaje R adquiridas durante el “curso de introducción a ciencia de datos”, es con este fin que haré uso de la librería “dplyr” para manejar los datos y “ggplot2” para realizar apoyos visuales.

En este trabajo intentaré mostrar cual es la plataforma de pago más utilizada (Visa, Master Card o American Express) y si las formas de pago guardan alguna relación con el hecho de que el pago se haga de forma manual o automática.

Librerias y data

Iniciamos cargando las librerías y leyendo nuestra base de datos CSV y analizando los títulos de las columnas.

library(dplyr)
library(ggplot2)
amz <- read.csv("data_set_amazon.csv")
names(amz)
##  [1] "User.ID"                       "Name"                         
##  [3] "Email.Address"                 "Username"                     
##  [5] "Date.of.Birth"                 "Gender"                       
##  [7] "Location"                      "Membership.Start.Date"        
##  [9] "Membership.End.Date"           "Subscription.Plan"            
## [11] "Payment.Information"           "Renewal.Status"               
## [13] "Usage.Frequency"               "Purchase.History"             
## [15] "Favorite.Genres"               "Devices.Used"                 
## [17] "Engagement.Metrics"            "Feedback.Ratings"             
## [19] "Customer.Support.Interactions"
summary(amz)
##     User.ID           Name           Email.Address        Username        
##  Min.   :   1.0   Length:2500        Length:2500        Length:2500       
##  1st Qu.: 625.8   Class :character   Class :character   Class :character  
##  Median :1250.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :1250.5                                                           
##  3rd Qu.:1875.2                                                           
##  Max.   :2500.0                                                           
##  Date.of.Birth         Gender            Location         Membership.Start.Date
##  Length:2500        Length:2500        Length:2500        Length:2500          
##  Class :character   Class :character   Class :character   Class :character     
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character     
##                                                                                
##                                                                                
##                                                                                
##  Membership.End.Date Subscription.Plan  Payment.Information Renewal.Status    
##  Length:2500         Length:2500        Length:2500         Length:2500       
##  Class :character    Class :character   Class :character    Class :character  
##  Mode  :character    Mode  :character   Mode  :character    Mode  :character  
##                                                                               
##                                                                               
##                                                                               
##  Usage.Frequency    Purchase.History   Favorite.Genres    Devices.Used      
##  Length:2500        Length:2500        Length:2500        Length:2500       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##  Engagement.Metrics Feedback.Ratings Customer.Support.Interactions
##  Length:2500        Min.   :3.000    Min.   : 0.000               
##  Class :character   1st Qu.:3.500    1st Qu.: 2.000               
##  Mode  :character   Median :4.000    Median : 5.000               
##                     Mean   :4.005    Mean   : 4.952               
##                     3rd Qu.:4.500    3rd Qu.: 8.000               
##                     Max.   :5.000    Max.   :10.000

Análisis exploratorio

Es momento de seleccionar las columnas que serán útiles en nuestro análisis. En este caso, nos interesan las comunas “Payment.Information, Renewal.Status”

pago <- select(amz, Payment.Information, Renewal.Status)

pagot <-select(amz, Payment.Information, Renewal.Status) %>% 
  summarise(n = n())

Ahora realizamos tablas para agrupoar los datos y obtener los porcetajes de cada variable.

metodo <- pago %>% group_by(Renewal.Status) %>%  
  summarise(total_metodo = n()) %>%   
  mutate(porcentaje_metodo = round(total_metodo/sum(total_metodo)*100, 1))     

fp <- pago %>% group_by(Payment.Information) %>%  
  summarise(total_fp = n()) %>% 
  mutate(porcentaje_fp = round(total_fp/sum(total_fp)*100, 1)) 

fpxmetodo <- pago %>% group_by(Payment.Information, Renewal.Status) %>%  
  summarise(total_fpxmp = n()) %>%   
  mutate(porcentaje_fpxmp = round(total_fpxmp/sum(total_fpxmp)*100, 1)) 

Resltados del análisis

pagot
##      n
## 1 2500
metodo   
## # A tibble: 2 × 3
##   Renewal.Status total_metodo porcentaje_metodo
##   <chr>                 <int>             <dbl>
## 1 Auto-renew             1274                51
## 2 Manual                 1226                49
fp 
## # A tibble: 3 × 3
##   Payment.Information total_fp porcentaje_fp
##   <chr>                  <int>         <dbl>
## 1 Amex                     806          32.2
## 2 Mastercard               856          34.2
## 3 Visa                     838          33.5
fpxmetodo 
## # A tibble: 6 × 4
## # Groups:   Payment.Information [3]
##   Payment.Information Renewal.Status total_fpxmp porcentaje_fpxmp
##   <chr>               <chr>                <int>            <dbl>
## 1 Amex                Auto-renew             385             47.8
## 2 Amex                Manual                 421             52.2
## 3 Mastercard          Auto-renew             441             51.5
## 4 Mastercard          Manual                 415             48.5
## 5 Visa                Auto-renew             448             53.5
## 6 Visa                Manual                 390             46.5

Gráficas

Ahora realizamos una gráfica con los datos obtenidos.

#Metodo de pago
ggplot(metodo, aes(x = Renewal.Status, y = porcentaje_metodo)) +
  geom_bar(stat = "identity", position = "dodge", fill = "aquamarine2") +
  geom_text(aes(label=paste0(total_metodo," ", "", "(", porcentaje_metodo, "%",")")), 
            vjust=1.6, 
            color="black", 
            hjust=0.5,
            position = position_dodge(0.9),  
            angle=0, 
            size=4.0
  ) + labs(title = "Metodo de pago",
       x = "Metodo de pago",
       y = "%")

#Forma de pago
ggplot(fp, aes(x = Payment.Information, y = porcentaje_fp, 
               fill = Payment.Information)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_text(aes(label=paste0(total_fp," ", "", "(", porcentaje_fp, "%",")")), 
            vjust=1.6, 
            color="black", 
            hjust=0.5,
            position = position_dodge(0.9),  
            angle=0, 
            size=4.0
  ) + labs(title = "Forma de pago",
           x = "",
           y = "%") +  scale_fill_discrete(name = "Forma de pago")

#Forma de pago por metodo de pago
ggplot(fpxmetodo, aes(x = Renewal.Status, y = porcentaje_fpxmp, 
               fill = Payment.Information)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_text(aes(label=paste0("", porcentaje_fpxmp, "%","")), 
            vjust=1.6, 
            color="black", 
            hjust=0.5,
            position = position_dodge(0.9),  
            angle=0, 
            size=4.0
  ) + labs(title = "Forma de pago por metodo de pago",
           x = "Metodo de pago",
           y = "%") +  scale_fill_discrete(name = "Forma de pago")

Modelo de regresión

Por ultimo realizaré un modelo de correlación simple entre las variables de la valoración del servicio y la cantidad de interacciones que se han tenido con servicio al cliente.

x <- amz$Customer.Support.Interactions
y <- amz$Feedback.Ratings

cor(x, y)
## [1] 0.008025796
#ajuste de modelo
modelo <- lm(x~y, data=amz)
summary(modelo)
## 
## Call:
## lm(formula = x ~ y, data = amz)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.9955 -2.9382  0.0376  3.0266  5.0927 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.77497    0.44492  10.732   <2e-16 ***
## y            0.04411    0.10995   0.401    0.688    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.192 on 2498 degrees of freedom
## Multiple R-squared:  6.441e-05,  Adjusted R-squared:  -0.0003359 
## F-statistic: 0.1609 on 1 and 2498 DF,  p-value: 0.6883

Gráfico del modelo

car::scatterplot(data = amz,
                 x~y,
                 smooth = FALSE)

Conclusiones

Podemos observar que el método de pago más utilizado son las tarjetas Master Card, seguido de las tarjetas Visa y, por ultimo las tarjetas AMEX.

En cuanto a cómo se realiza el pago de la suscripción, la proporción es casi mitad y mitad, sin embargo, hay una pequeña cantidad de personas que prefieren que el pago se haga de forma automática.

Desglosándolo por método de pago, en el caso de Master Card y Visa la mayoría de clientes prefieren domiciliar el cargo, mientras que con AMEX la mayoría prefiere mantener el pago de forma manual.