Analisis Explotatorio Sobre una Base de Datos de Usuarios de Amazon

En el siguiente texto vamos a analizar los datos de losn usuarios en el cual se hara un pequeño analisis exploratorio para encontrar patrones, relaciones o tendencias entre las diferentes variantes dadas

Hipotesis

El promedio de las calificaciones otorgadas por los usuarios que usan frecuentemente la aplicación de Amazon disminuye a medida en que aumenta la cantidad de llamadas realizadas al servicio de atención al cliente, siempre y cuando excluimos a los usuarios que realizan 0 y 10 llamadas.

Analísis Exploratorio

Primero debemos de descarcar los paquetes que usaremos, en este caso usaremos “dplyr” y “ggplot2”

Despues continuamos descargando la base de datos

Amazon_Data <- read.csv("Escobar Ortiz Alan Saul - data_set_amazon.csv",
              stringsAsFactors = TRUE) 

y corroboramos que los datos esten

head(Amazon_Data)
##   User.ID             Name                  Email.Address           Username
## 1       1    Ronald Murphy     williamholland@example.com     williamholland
## 2       2      Scott Allen            scott22@example.org            scott22
## 3       3 Jonathan Parrish           brooke16@example.org           brooke16
## 4       4   Megan Williams        elizabeth31@example.net        elizabeth31
## 5       5    Kathryn Brown pattersonalexandra@example.org pattersonalexandra
## 6       6       Sandra Cox             gparks@example.org             gparks
##   Date.of.Birth Gender       Location Membership.Start.Date Membership.End.Date
## 1    1953-06-03   Male Rebeccachester            2024-01-15          2025-01-14
## 2    1978-07-08   Male  Mcphersonview            2024-01-07          2025-01-06
## 3    1994-12-06 Female      Youngfort            2024-04-13          2025-04-13
## 4    1964-12-22 Female   Feliciashire            2024-01-24          2025-01-23
## 5    1961-06-04   Male   Port Deborah            2024-02-14          2025-02-13
## 6    1954-09-19 Female Lake Johnathan            2024-01-15          2025-01-14
##   Subscription.Plan Payment.Information Renewal.Status Usage.Frequency
## 1            Annual          Mastercard         Manual         Regular
## 2           Monthly                Visa         Manual         Regular
## 3           Monthly          Mastercard         Manual         Regular
## 4           Monthly                Amex     Auto-renew         Regular
## 5            Annual                Visa     Auto-renew        Frequent
## 6           Monthly                Amex         Manual      Occasional
##   Purchase.History Favorite.Genres Devices.Used Engagement.Metrics
## 1      Electronics     Documentary     Smart TV             Medium
## 2      Electronics          Horror   Smartphone             Medium
## 3            Books          Comedy     Smart TV                Low
## 4      Electronics     Documentary     Smart TV               High
## 5         Clothing           Drama     Smart TV                Low
## 6            Books          Action       Tablet                Low
##   Feedback.Ratings Customer.Support.Interactions
## 1              3.6                             3
## 2              3.8                             7
## 3              3.3                             8
## 4              3.3                             7
## 5              4.3                             1
## 6              3.8                             2

Ahora si, para obtener los datos que necesito para cumplir la hipotesis se corrio el siguiente código

data_filtrada_2 <- Amazon_Data %>%
  filter(Usage.Frequency == "Regular") %>%
  group_by(Customer.Support.Interactions) %>% 
  filter(Customer.Support.Interactions >= 1 & Customer.Support.Interactions <= 9) %>%
  summarise(promedio = mean(Feedback.Ratings))

En este codigo lo que se hace es:

1.- En primera se le dice que se agarren los datos de la base de usuarios de Amazon 2.- Despues, filtramos los datos para que solo nos aparezcan aquellos ususarios que usan frecuentemente la aplicación 3.- Mas tarde, se le pide que agrupe por la variable “Customer.Support.Interactions” la cual representa la cantidad de interacciones con el servicio de atención al cliente 4.- Despues se le pide que se filtren los datos para que solo incluya a los usuarios que hayan hecho entre 1 y 9 interacciones con el servicio al cliente 5.- Se le pide calcular el promedio dentro de cada grupo, y el resultado se le llama “promedio”

El cuadro quedaria mas o menos asi:

data_filtrada_2
## # A tibble: 9 × 2
##   Customer.Support.Interactions promedio
##                           <int>    <dbl>
## 1                             1     4.10
## 2                             2     4.03
## 3                             3     3.96
## 4                             4     4.08
## 5                             5     4.07
## 6                             6     4.01
## 7                             7     4.03
## 8                             8     3.91
## 9                             9     4.00

Con esto podemos graficar lo siguiente, donde vemos una grafica hecha con ggplot la cual nos enseña la la relación entre las llamadas a atención al cliente y las calificaciones promedio de los usuarios frecuentes:

ggplot(data_filtrada_2, aes( x = Customer.Support.Interactions,
                             y = promedio)) + 
  geom_point() + geom_smooth(method = "lm") +
  scale_x_continuous(breaks = seq(1, 9, by = 1))
## `geom_smooth()` using formula = 'y ~ x'

Con esto ya podemos hacer nuestro modelo de regresión lineal

modelo <- lm(data = data_filtrada_2, promedio ~ Customer.Support.Interactions)
summary(modelo)
## 
## Call:
## lm(formula = promedio ~ Customer.Support.Interactions, data = data_filtrada_2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.08343 -0.02807  0.02641  0.03528  0.04791 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    4.07935    0.03990 102.246 2.26e-12 ***
## Customer.Support.Interactions -0.01189    0.00709  -1.677    0.137    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05492 on 7 degrees of freedom
## Multiple R-squared:  0.2867, Adjusted R-squared:  0.1848 
## F-statistic: 2.813 on 1 and 7 DF,  p-value: 0.1374
modelo
## 
## Call:
## lm(formula = promedio ~ Customer.Support.Interactions, data = data_filtrada_2)
## 
## Coefficients:
##                   (Intercept)  Customer.Support.Interactions  
##                       4.07935                       -0.01189

Conclusiones

Al parecer, el modelo nos dice que por cada aumento en las llamadas al servicio al cliente hay uns disminución de 0.01189 en el promedio dado por los usuarios, por lo que nuestro modelo no es capaz de explicar del todo, por si mismo, las calificaciones dadas por los usuarios