Impacto de gasto publicidad en las ventas

require(ggplot2)
require(plotly)
require(datarium)

data("marketing")
head(marketing)
##   youtube facebook newspaper sales
## 1  276.12    45.36     83.04 26.52
## 2   53.40    47.16     54.12 12.48
## 3   20.64    55.08     83.16 11.16
## 4  181.80    49.56     70.20 22.20
## 5  216.96    12.96     70.08 15.48
## 6   10.44    58.68     90.00  8.64

Exploracion de datos

mean(marketing$sales) # Promedio ventas
## [1] 16.827
sd(marketing$sales) # Desviación Ventas
## [1] 6.260948
G1=ggplot(data = marketing, mapping = aes(x= sales))+geom_histogram(fill="blue")+theme_bw()
G1

ggplotly(G1)

Se observa un promedio mensual de 16 MM en las ventas con una desviacion de 6 MM

Exploracion Bivariada ( Relacion entre ventas y mercado)

G1=ggplot(data=marketing,mapping=aes(x=newspaper,y=sales))+geom_point()+theme_bw()+geom_smooth()
ggplotly(G1)

Se puede observar que no existe una relacion entre la inversion en periodicos con las ventas con un coeficiente de correlacion de 0,22 (Muy Bajo)

G3=ggplot(data=marketing,mapping=aes(x=facebook,y=sales))+geom_point()+geom_point()+theme_bw()+geom_smooth()
ggplotly(G3)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Se observa por otro lado una relacion positiva (Directa) entre la inversion en publicidad en Facebook y las ventas con un coeficiente de 0,6

G4=ggplot(data=marketing,mapping=aes(x=youtube,y=sales))+geom_point()+geom_point()+theme_bw()+geom_smooth()
ggplotly(G4)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Se observa que la relación entre la publicidad en youtube y las ventas es mas fuerte con una correlacion de 0,8, es decir que tiene mucha mas relevancia en la explicacion de las ventas que facebook y newspaper

Estimación del modelo de regresión lineal simple

Se va a realizar un modelo de estimacion de las ventas

mod_You=lm(sales~youtube, data = marketing)
mod_You
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Coefficients:
## (Intercept)      youtube  
##     8.43911      0.04754

El modelo estimado es igual a \(sales = 8.43911 + +(0.04754*youtube)\) en donde \(\beta_0 = 8.43911\) y \(\beta_1 = 0.04754\). Podemos interpretar que las ventas promedio esperadas cuando no se invierte en youtube son de 8.33, millones de dolares y por cada mil dolares adicionales de inversion en mercadeo en youtube se espera un retorno en ventas de 0.04754 millones de dolares

summary(mod_You)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.0632  -2.3454  -0.2295   2.4805   8.6548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.439112   0.549412   15.36   <2e-16 ***
## youtube     0.047537   0.002691   17.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.6119, Adjusted R-squared:  0.6099 
## F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16

Se observa en la tabla del modelo que you tube es significativo en el modelo por que el valor de p lo que indica un nivel de confianza del 99% adicionalmente este modelo logra explicar

Predecir con el Modelo

Estimar las ventas para un mes en el cual se invierta

predict(mod_You, list(youtube=65), interval = "confidence", level = 0.95)
##        fit      lwr      upr
## 1 11.52899 10.72462 12.33337

El promedio esperado de ventas para una eventual inversion en youtube de 65 mil dolares seria de 11.528 millones de dolares. El intervalo de confianza para la prediccion de las ventas nos indica que el promedio de de ventas estaria entre 10.72 y 12.33 millones de dolares con una confianza del 95 %

marketing[10:20,]
##    youtube facebook newspaper sales
## 10  239.76     3.12     25.44 12.72
## 11   79.32     6.96     29.04 10.32
## 12  257.64    28.80      4.80 20.88
## 13   28.56    42.12     79.08 11.04
## 14  117.00     9.12      8.64 11.64
## 15  244.92    39.48     55.20 22.80
## 16  234.48    57.24     63.48 26.88
## 17   81.36    43.92    136.80 15.00
## 18  337.68    47.52     66.96 29.28
## 19   83.04    24.60     21.96 13.56
## 20  176.76    28.68     22.92 17.52

1 Paso segmentar los datos

Id_Model=sample(1:200, size = 160)
marketing_modelar=marketing[Id_Model,]
marketing_validar=marketing[-Id_Model,]

2 Paso - Estimar el modelo

mod_you_modelar=lm(sales~youtube, data = marketing_modelar)
mod_you_modelar
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing_modelar)
## 
## Coefficients:
## (Intercept)      youtube  
##     8.48883      0.04736

3 Paso Predecir set Validación

sales_pred=predict(mod_you_modelar,list(youtube=marketing_validar$youtube))

4 Comparar ventas del modelo y Reales

sales_real=marketing_validar$sales
error=sales_real-sales_pred
res=data.frame(sales_real,sales_pred,error)

Paso 5 Calcular Indicador de Evaluación de la predicción

MEA=mean(abs(error))
MEA
## [1] 2.843336

La validacion cruzada en un primer paso dejando un 80% para el modelo y un 20% para el modelo para validar, luego se ajusta el modelo con el 80%, posteriormente predecimos las ventas del 20% y finalmente se compara los resultados del modelo contra los reales, promedio de la metrica MAE, la cual en este caso nos da un promedio de 3 millones de dolares como error de prediccion (Pronostico de Ventas)