EN EL SIGUIENTE EJEMPLO VAMOS A TRABAJAR CON LOS DATOS EN LAS VENTAS DE UNA COMPAÑIA PARA RELACIONAR LAS VENTAS CON LA INVERSION DE MERCADEO.
require(ggplot2)
require(plotly)
require(datarium)
## Warning: package 'datarium' was built under R version 4.0.5
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
##Exploración de las ventas (sales)
mean(marketing$sales) #promedio / media
## [1] 16.827
sd(marketing$sales) #desviacion estandar
## [1] 6.260948
g1=ggplot(data = marketing,mapping = aes(x=sales))+geom_histogram(fill="blue")+theme_bw()
ggplotly(g1)
##Exploración Bivariada - (Relaciones entre ventas con mercadeo)
g2=ggplot(data=marketing,mapping = aes(x=newspaper,y=sales))+geom_point()+theme_bw()+geom_smooth()
g2
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
cor(marketing$newspaper,marketing$sales)
## [1] 0.228299
se puede observar que no se evidencia una relación entre la variable inversión en marcadeo por medio de periodico y las ventas, con coeficiente de correlación de 0,22 (muy bajo).
##Exploración Bivariada - (Relaciones entre ventas con mercadeo)
g3=ggplot(data=marketing,mapping = aes(x=facebook,y=sales))+geom_point()+theme_bw()+geom_smooth()
g3
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
cor(marketing$facebook,marketing$sales)
## [1] 0.5762226
se observa por otro lado una relación positiva o directa entren la inversión en publicidad y facebook y las ventas, esta relación tiene una fuerza media ya que el coeficiente de correlación de pearson es de casi 0,6
##Exploración Bivariada - (Relaciones entre ventas con mercadeo)
g4=ggplot(data=marketing,mapping = aes(x=youtube,y=sales))+geom_point()+theme_bw()+geom_smooth()
g4
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
cor(marketing$youtube,marketing$sales)
## [1] 0.7822244
se observa que la relación entre la inversión en mercadeo en youtube y las ventas en fuerte con un coweficiente de correlación de aproximadamente 0,8 es decir que tiene mucha relevancia en las ventas que facebook y periodico.
A continuación vamos a estimar un modelo de regresión lineal simple entre las ventas en función de la inversión de mercadeo en youtube.
## Estimación del Modelo
mod_you=lm(sales~youtube,data=marketing)
mod_you
##
## Call:
## lm(formula = sales ~ youtube, data = marketing)
##
## Coefficients:
## (Intercept) youtube
## 8.43911 0.04754
#sales_8,4391 +(0,04754*youtube)
call: lm(formula = sales - youtube, data = marketing)
coeficientes: (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.33911 millones de dolares y por cada 1000 dolares adicionales de inversión en mercadeo en youtube se espera un retorno en ventas de 0.04754 millones de dolares.
## Interpretación del summary del modelo
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 summary modelo que youtube es significativo con el modelo por que el valor p lo indica con un nivel de confianza del 99% (***), adicionalmente este modelo logra explicar el 61,39% de la variabilidad de las ventas (en general de las ventas).
##Predecir con el Modelo
#Estimar las ventas para un mes en el cual se invierta en mercadeo en youtube 65 mil dolares.
predict(mod_you,list(youtube=65),interval = "confidence",level = 0,95)
## $fit
## fit lwr upr
## 1 11.52899 11.52899 11.52899
##
## $se.fit
## [1] 0.4078948
##
## $df
## [1] 198
##
## $residual.scale
## [1] 3.910388
El promedio esperado de ventas para una eventual inversión youtube de 65 mil dolares seria de 11.528 millines de dolares.El intervalo de confianza para la predicción de las ventas nos indica que el promedio de ventas estaría entre los 10.72 y 12.33 millones de dolares con un 95% de confianza.
A continuación vamos a relaizar una validación cruzada para evaluar el poder predictivo del modelo. Usaremos un escenario 80-20 (modelar-validar) como se observa:
1:200
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## [19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
## [37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
## [55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
## [73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
## [91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
## [109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
## [127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
## [145] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
## [163] 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## [181] 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
## [199] 199 200
MAE=array(NA,500)
for(i in 1:500){
##Paso 1 - Segmentar los Datos
id_modelar=sample(1:200,size = 160)
marketing_modelar=marketing[id_modelar,]
marketing_validar=marketing[-id_modelar,]
##Paso 2 - Estimar el Modelo Set de Modelar
mod_you_modelar=lm(sales~youtube,data=marketing_modelar)
##Paso 3 - Predeccir Set de Validación
sales_pred=predict(mod_you_modelar,list(youtube=marketing_validar$youtube))
##Paso 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
MAE[i]=mean(abs(error)) #Mean Absolut Error (Error Medio Absoluto)
}
hist(MAE,col="gray",main="MAE para diferentes escenarios")
La validación cruzada en un primer paso segmentamos los datos dejando 80% para el modelo y 20% aleatorios para validar. Luego se ajusta el modelo 80%. Posteriormentepredecimos las ventas del 20% y finalmente se comparan los resultados del modelo contra los reales por medio de la metrica MAE qye en este caso nos da alrededor de 3 millone de dolares como error de predicción (pronostica de ventas).