Análisis de preferencias

Introducción

Actualmente las plataformas de comercio electrónico como Amazon han transformado la manera en que los consumidores compran y consumen productos. Con el auge de la personalización y las recomendaciones basadas en datos, entender los patrones de comportamiento de los usuarios se ha vuelto crucial para mejorar la experiencia del cliente y aumentar la retención. Amazon, como una de las mayores plataformas de comercio electrónico, recopila una vasta cantidad de datos sobre sus usuarios, que incluye información demográfica, historial de compra, y preferencias de género. Este estudio se centra en analizar los géneros favoritos de los usuarios de Amazon. En este documento, aplicaremos los comandos y habilidades aprendidas en el curso de Ciencia de Datos para trabajar con una base de datos de Amazon.

Pregunta de Investigación

¿Cuál es el género más popular en la base de datos?

Hipótesis

La cantidad de películas en el género 'Drama' es significativamente diferente de la cantidad de películas en otros géneros

Desarrollo

Abrimos las paqueterías con las que trabajaremos y posteriormente, procedemos a tomar nuestra base y filtrar para tener los datos con los que trabajaremos

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
data_set_amazon <- read.csv(file = "data_Set_amazon.csv", 
                            stringsAsFactors = TRUE)

Empezamos con una exploración de datos, creando una tabla estadística que nos muestre la distribución de géneros favoritos

gen_fav <- data_set_amazon %>%
  select("Favorite.Genres") 

Sumamos la cantidad de gente que prefiere cada género

sum(gen_fav$`Favorite Genres` == "Drama")
## [1] 0
sum(gen_fav$`Favorite Genres` == "Horror")
## [1] 0
sum(gen_fav$`Favorite Genres` == "Comedy")
## [1] 0
sum(gen_fav$`Favorite Genres` == "Documentary")
## [1] 0
sum(gen_fav$`Favorite Genres` == "Action")
## [1] 0
sum(gen_fav$`Favorite Genres` == "Romance")
## [1] 0

Generamos nuestro data frame respecto a los datos obtenidos

gen_fav <- data.frame(
  "GF" = c("Drama", "Horror", "Comedy", "Documentary", "Action", "Sci-Fi", "Romance"), 
  "n" = c(361, 383, 349, 340, 380, 319, 368)
  )
print(gen_fav)
##            GF   n
## 1       Drama 361
## 2      Horror 383
## 3      Comedy 349
## 4 Documentary 340
## 5      Action 380
## 6      Sci-Fi 319
## 7     Romance 368

Para tener una mejor visión de los datos, abrimos nuestra librería ggplot2 y graficamos nuestro data frame

ggplot(gen_fav, aes(x = GF, y = n)) +
  geom_bar(stat = "identity", fill = "pink") +
  theme_minimal() +
  labs(title = "Cantidad de Películas por Género",
       x = "Género",
       y = "Cantidad de Películas")

Para evaluar nuestra hipótesis antes expuesta, haremos un modelo de regresión lineal simple, pero para continuar con la regresión lineal en este contexto, convertiremos las variables categóricas (GF) en variables numéricas mediante la siguiente codificación:

gen_fav$GF_index <- as.numeric(as.factor(gen_fav$GF))

print(gen_fav)
##            GF   n GF_index
## 1       Drama 361        4
## 2      Horror 383        5
## 3      Comedy 349        2
## 4 Documentary 340        3
## 5      Action 380        1
## 6      Sci-Fi 319        7
## 7     Romance 368        6

Generamos nuestro modelo

modelo <- lm(n ~ GF_index, data = gen_fav)
summary(modelo)
## 
## Call:
## lm(formula = n ~ GF_index, data = gen_fav)
## 
## Residuals:
##       1       2       3       4       5       6       7 
##   3.857  29.500 -15.429 -20.786  11.929 -27.214  18.143 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  371.714     19.883  18.695 8.06e-06 ***
## GF_index      -3.643      4.446  -0.819     0.45    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.53 on 5 degrees of freedom
## Multiple R-squared:  0.1184, Adjusted R-squared:  -0.05795 
## F-statistic: 0.6714 on 1 and 5 DF,  p-value: 0.4499

Y graficamos

ggplot(gen_fav, aes(x = GF_index, y = n)) +
  geom_point(color = "blue") +  
  geom_smooth(method = "lm", se = FALSE, color = "red") + 
  theme_minimal() +
  labs(title = "Regresión Lineal de Cantidad de Películas por Índice de Género",
       x = "Índice de Género",
       y = "Cantidad de Películas") +
  scale_x_continuous(breaks = gen_fav$GF_index, labels = gen_fav$GF)
## `geom_smooth()` using formula = 'y ~ x'

Conclusiones

La hipótesis inicial no se cumple, ya que incialmente se creía que el género "Drama" sería el más popular, sin embargo, al realizar una exploración de datos observamos que "Drama" es el cuarto género más popular, mientras que "Horror" es el primero. Esto puede deberse a que dentro de la aplicación hay más contenido o marketing dirigido hacia este género, pero si quisiéramos (en este caso) aumentar la popularidad de "Drama" bastaría con dirigir marketing a los usuarios para que se consuma aún más, incluir más contenido del género e incluso podría disminuirse el catálogo de los otros géneros para aumentar el consumo de "Drama"