se cargan librerías
library(dplyr)

library(lubridate)
library(ggplot2)

 amazon <- read.csv("data_set_amazon.csv",
               stringsAsFactors = FALSE)

Hipotesis

Contando únicamnente a las mujeres, las compras de ropa estan hechas mayoritariamente por mujeres entre 18 y 30 años Primero debo convertir la columna de hombres y mujeres a numerica, donde: # 0 sea hombre y 1 mujer

df2 <- amazon_2 %>% mutate(Gender_str = as.character(Gender))
df2$gender_num[df2$Gender_str == "Female"] <- 1
df2$gender_num[df2$Gender_str == "Male"] <- 0

Dado que tengo la fecha de nacimiento de los compradores puedo calcular su edad

amazon_2 <- amazon %>% #mutate para que haga otra columna
#difftime es la diferencia de tiempo y Sys.date arroja la fecha actual 
mutate(edad = floor(difftime(Sys.Date(),
            Date.of.Birth, units = "weeks")/52.25)) #floor es para que rendonee hacia abajo 
df2$edad_char = as.character(df2$edad)
df2$edad_char = as.numeric(as.character(df2$edad))  

Debo converitr a numerico la columna de compras, de manera que: # electronicos= 3, libros= 4 y ropa = 5

df3 <- df2 %>% mutate(Purchase_str = as.character(Purchase.History))         
df3$Purchase_num[df3$Purchase_str == "Electronics"] <- 3
df3$Purchase_num[df3$Purchase_str == "Books"] <- 4
df3$Purchase_num[df3$Purchase_str == "Clothing"] <- 5

Debido a que la base es muy extensa y hay datos irrelevantes seleccionaré las variables de interes

df4<- df3 %>% select(Purchase_num, edad_char, gender_num)

Para facilitar la lectura de los datos voy a crear clases en las edades

Es notorio que los productos más comprados son los libros, después los electrónicos y la ropa lo menos comprado

Posterior una tabla para ver las frecuencias de cada rubro especificamente para mujeres

df5 <- df4 %>% filter(gender_num == 1, grupo_edad == "18-30")

 tabla_1 <- table(df5)

 tabla_1

La tabla nos ayuda a verificar que el producto mas popular entre mujeres de 18-30 años son los libros

Dado que el interés en la exploración de datos son las mujeres de 18 a 30 y la compra de ropa , filtraré esas variables

 df_mujer_joven_4 <- df4 %>% filter(gender_num== 1, Purchase_num== 4, grupo_edad == "18-30")

Regresión lineal

modelo <- lm(Purchase_num ~  gender_num + edad_char, data = df_mujer_joven_4)

summary(modelo)

Interpretación de coeficientes

Efectivamente las mujeres entre 18 y 30 años compran libros en amazon el 49.68% de estas compras pueden explicarse por la edad y sexo debido a que tengo un p-value < 0.05