Datos de la pasta dental

library(readxl)
pasta <- read_excel("pasta.xlsx")
View(pasta)
st<- ts(pasta, start = c(1, 1), frequency = 52)
plot(st, main= "Gràfico de serie temporal", xlab= "Tiempo", ylab= "ventas")

Ver si es estacionaria

prueba de Dickey-Fuller

La hipótesis nula (H0) de la prueba de Dickey-Fuller es que la serie temporal tiene una raíz unitaria, es decir, que la serie no es estacionaria.

library(tseries)
adf.test(st)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  st
## Dickey-Fuller = -0.74961, Lag order = 4, p-value = 0.9627
## alternative hypothesis: stationary

como el p-valor nos dio un valor de 0.9627 mayor a 0.05 se acepta la Ho y decimos que la serie no es estacionaria.

Diferencia

Restar el valor anterior del valor actual puede ayudar a eliminar tendencias de estacionariedad.

serie_diferenciada <- diff(st)
serie_diferenciada
## Time Series:
## Start = c(1, 2) 
## End = c(2, 38) 
## Frequency = 52 
##       ventas
##  [1,]  4.000
##  [2,]  5.090
##  [3,]  8.641
##  [4,] 11.646
##  [5,] 13.557
##  [6,]  8.753
##  [7,]  8.942
##  [8,] 14.815
##  [9,] 14.668
## [10,] 11.179
## [11,]  8.168
## [12,] 10.940
## [13,] 12.292
## [14,] 16.312
## [15,] 14.039
## [16,] 14.927
## [17,]  9.932
## [18,] 12.059
## [19,] 10.893
## [20,] 10.076
## [21,]  9.655
## [22,] 12.310
## [23,] 13.514
## [24,] 16.304
## [25,]  9.525
## [26,]  7.112
## [27,]  7.755
## [28,]  5.993
## [29,]  6.851
## [30,]  6.977
## [31,]  6.004
## [32,]  6.356
## [33,]  7.879
## [34,] 10.762
## [35,] 12.369
## [36,] 11.733
## [37,] 10.513
## [38,]  5.400
## [39,] 10.495
## [40,] 13.935
## [41,] 10.859
## [42,] 12.547
## [43,] 14.680
## [44,]  5.535
## [45,]  2.565
## [46,]  7.118
## [47,] 12.035
## [48,] 13.803
## [49,]  9.916
## [50,]  6.774
## [51,]  8.024
## [52,] 13.038
## [53,] 13.587
## [54,] 13.218
## [55,] 14.774
## [56,]  9.278
## [57,]  7.783
## [58,]  7.758
## [59,]  8.937
## [60,]  7.362
## [61,]  6.868
## [62,]  7.010
## [63,] 10.235
## [64,]  6.717
## [65,]  3.351
## [66,]  3.083
## [67,]  5.982
## [68,]  4.758
## [69,]  6.322
## [70,] 11.850
## [71,]  9.373
## [72,]  8.275
## [73,] 10.520
## [74,]  8.999
## [75,]  2.068
## [76,]  7.669
## [77,]  8.058
## [78,]  4.377
## [79,]  4.931
## [80,]  0.194
## [81,]  1.903
## [82,]  3.429
## [83,]  2.899
## [84,]  5.517
## [85,]  4.941
## [86,]  6.809
## [87,]  7.220
## [88,]  8.100
## [89,] 11.060
plot.ts(serie_diferenciada, main="Serie de Tiempo Diferenciada")

verificamos nuevamente la estacionariedad

adf.test(serie_diferenciada)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  serie_diferenciada
## Dickey-Fuller = -3.3837, Lag order = 4, p-value = 0.06285
## alternative hypothesis: stationary

Esto nos da un p-valor de 0.06285 mayor a 0.05, por tanto se acepta la Ho y decimos que la serie no es estacionaria. Lo que hacemos es volver a diferenciar la serie.

serie_diferenciada2<- diff(serie_diferenciada)
serie_diferenciada2
## Time Series:
## Start = c(1, 3) 
## End = c(2, 38) 
## Frequency = 52 
##       ventas
##  [1,]  1.090
##  [2,]  3.551
##  [3,]  3.005
##  [4,]  1.911
##  [5,] -4.804
##  [6,]  0.189
##  [7,]  5.873
##  [8,] -0.147
##  [9,] -3.489
## [10,] -3.011
## [11,]  2.772
## [12,]  1.352
## [13,]  4.020
## [14,] -2.273
## [15,]  0.888
## [16,] -4.995
## [17,]  2.127
## [18,] -1.166
## [19,] -0.817
## [20,] -0.421
## [21,]  2.655
## [22,]  1.204
## [23,]  2.790
## [24,] -6.779
## [25,] -2.413
## [26,]  0.643
## [27,] -1.762
## [28,]  0.858
## [29,]  0.126
## [30,] -0.973
## [31,]  0.352
## [32,]  1.523
## [33,]  2.883
## [34,]  1.607
## [35,] -0.636
## [36,] -1.220
## [37,] -5.113
## [38,]  5.095
## [39,]  3.440
## [40,] -3.076
## [41,]  1.688
## [42,]  2.133
## [43,] -9.145
## [44,] -2.970
## [45,]  4.553
## [46,]  4.917
## [47,]  1.768
## [48,] -3.887
## [49,] -3.142
## [50,]  1.250
## [51,]  5.014
## [52,]  0.549
## [53,] -0.369
## [54,]  1.556
## [55,] -5.496
## [56,] -1.495
## [57,] -0.025
## [58,]  1.179
## [59,] -1.575
## [60,] -0.494
## [61,]  0.142
## [62,]  3.225
## [63,] -3.518
## [64,] -3.366
## [65,] -0.268
## [66,]  2.899
## [67,] -1.224
## [68,]  1.564
## [69,]  5.528
## [70,] -2.477
## [71,] -1.098
## [72,]  2.245
## [73,] -1.521
## [74,] -6.931
## [75,]  5.601
## [76,]  0.389
## [77,] -3.681
## [78,]  0.554
## [79,] -4.737
## [80,]  1.709
## [81,]  1.526
## [82,] -0.530
## [83,]  2.618
## [84,] -0.576
## [85,]  1.868
## [86,]  0.411
## [87,]  0.880
## [88,]  2.960
plot(serie_diferenciada2, main= "serie diferenciada 2")

verificamos nuevamente la estacionariedad

adf.test(serie_diferenciada2)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  serie_diferenciada2
## Dickey-Fuller = -6.0598, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

como el p-valor nos da 0.01 menor a 0.05 rechazamos la Ho y decimos que la serie es estacionaria

Cálculo y gráfico de la función de autocorrelación (ACF)

acf(serie_diferenciada2, main="Función de Autocorrelación (ACF)")

Cálculo y gráfico de la función de autocorrelación parcial (PACF)

pacf(serie_diferenciada2, main="Función de Autocorrelación Parcial (PACF)")

Mejor modelo de acuerdo a ACF Y PACF

modelo_arima <- arima(st, order=c(1,2,1))
modelo_arima
## 
## Call:
## arima(x = st, order = c(1, 2, 1))
## 
## Coefficients:
##          ar1      ma1
##       0.6106  -0.9561
## s.e.  0.1103   0.0441
## 
## sigma^2 estimated as 7.725:  log likelihood = -215.41,  aic = 436.82

Pronòsticos

library(forecast)
pronosticos2<- forecast(modelo_arima, h=12)
pronosticos2
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2.730769       1039.155 1035.593 1042.717 1033.707 1044.603
## 2.750000       1047.984 1041.098 1054.871 1037.452 1058.516
## 2.769231       1056.297 1046.134 1066.460 1040.755 1071.839
## 2.788462       1064.294 1050.984 1077.604 1043.938 1084.650
## 2.807692       1072.099 1055.784 1088.415 1047.146 1097.052
## 2.826923       1079.786 1060.594 1098.979 1050.434 1109.139
## 2.846154       1087.402 1065.442 1109.362 1053.817 1120.987
## 2.865385       1094.973 1070.334 1119.613 1057.291 1132.656
## 2.884615       1102.518 1075.269 1129.768 1060.844 1144.192
## 2.903846       1110.047 1080.242 1139.852 1064.464 1155.630
## 2.923077       1117.565 1085.245 1149.886 1068.135 1166.995
## 2.942308       1125.078 1090.272 1159.883 1071.847 1178.309