#Cargamos los datos históricos de las ventas iniciales del teléfono celular, está dado en millones de unidades (del tercer trimestre de 2014 al primer trimestre del 2020).
Ventas<-c(0.2943,1.21971,2.52335,1.94347,4.05153,7.51228,4.76657,4.13437,5.76392,8.00823,9.52333,10.62968,10.89782,15.41478,16.93315,21.41523,22.16842,18.60957,29.47796,38.21976,26.62652,29.34171,51.43601)
#Construimos la serie de tiempo de los históricos de la venta de los teléfonos celulares.
Ventas=ts(Ventas,start=c(2014,3),freq=4)
Ventas
## Qtr1 Qtr2 Qtr3 Qtr4
## 2014 0.29430 1.21971
## 2015 2.52335 1.94347 4.05153 7.51228
## 2016 4.76657 4.13437 5.76392 8.00823
## 2017 9.52333 10.62968 10.89782 15.41478
## 2018 16.93315 21.41523 22.16842 18.60957
## 2019 29.47796 38.21976 26.62652 29.34171
## 2020 51.43601
#Resultado:
#Graficamos la serie de tiempo histórica.
plot(Ventas,type="l",lty=2, col="red", ylab="", xlab="")
points(Ventas,pch=20, col="blue")
title("Ventas trimestrales del teléfono celular (millones)")
#Graficamos las ventas acumuladas de la serie de tiempo de la venta de teléfonos celulares.
Y=cumsum(Ventas)
Y=ts(Y,start=c(2014,3),freq=4)
plot(Y,type="l", lty=2, col="red", ylab="",xlab="")
points(Y,pch=20,col="blue")
title("Ventas acumuladas del teléfono celular (millones)")
#Construimos el modelo de Bass y calculamos m, p y q.
Y=c(0,Y[1:(length(Y)-1)])
Ysq=Y**2
out=lm(Ventas~Y+Ysq)
summary(out)
##
## Call:
## lm(formula = Ventas ~ Y + Ysq)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.1789 -1.1306 0.3516 1.4683 9.6525
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.358e+00 1.577e+00 1.495 0.150421
## Y 1.640e-01 3.638e-02 4.508 0.000215 ***
## Ysq -9.608e-05 1.365e-04 -0.704 0.489611
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.427 on 20 degrees of freedom
## Multiple R-squared: 0.8984, Adjusted R-squared: 0.8882
## F-statistic: 88.4 on 2 and 20 DF, p-value: 1.175e-10
a=out$coef[1]
b=out$coef[2]
c=out$coef[3]
mplus=(-b+sqrt(b**2-4*a*c))/(2*c)
mminus=(-b-sqrt(b**2-4*a*c))/(2*c)
m=mminus
p=1/m
q=b+p
#Desplegamos en el Scrip (Cuadran I de R) los valores calculados de m, p y q. #m=1721.235 #p=0.0005809781 #q=0.1645916
m
## Y
## 1721.235
p
## Y
## 0.0005809781
q
## Y
## 0.1645916
#Calculamos el modelo de Bass
bassModel=function(p,q,m,T=65)
{
S=double(T)
Y=double(T+1)
Y[1]=0
for(t in 1:T)
{
S[t]=p*m+(q-p)*Y[t]-(q/m)*Y[t]**2
Y[t+1]=Y[t]+S[t]
}
return(list(sales=S,cumSales=cumsum(S)))
}
Spred=bassModel(p,q,m,T=23)$sales
Spred=ts(Spred,start=c(2014,3),freq=4)
#Graficamos el comparativo de la serie histórica de ventas vs. la proyección estimada con el modelo de Bass.
ts.plot(Ventas,Spred,col=c("blue","red"))
legend("topleft", legend=c("Ventas históricas", "Proyección con modelo de Bass"),fill=c("blue","red"))
#Calculamos y graficamos la proyección del modelo de Bass hasta el año 2030 de manera trimestral. Se observa que a largo plazo este dispositivo móvil alcanzará su madurez de venta -ceteris paribus- en 2028-2030, información relevante para la estrategia de la compañía y toma de decisiones.
Spred=bassModel(p,q,m)$sales
CumSpred=ts(cumsum(Spred),start=c(2014,3),freq=4)
CumVentas=ts(cumsum(Ventas),start=c(2014,3),freq=4)
ts.plot(CumVentas,CumSpred,col=c("blue","red"))
legend("topleft", legend=c("Ventas históricas", "Proyección con modelo de Bass"),fill=c("blue","red"))
title("Proyección de ventas acumuladas del teléfono celular ")
Elaboración propia con guía de UCLA Anderson School of Management. Sales Forecasting 2013.