Penelitian ini dapat digolongkan kedalam jenis penelitian kuantitatif. Penelitian ini bertujuan untuk mengolah data kuantitatif (angka) yang berupa data jumlah penumpang kereta api periode 2016-2019 di Jabodetabek untuk menghasilkan ramalan jumlah penumpang kereta api 2 tahun mendatang.

Sumber data penelitian ini berasal dari data sekunder. Data sekunder adalah data yang mengacu pada informasi yang dikumpulkan dari sumber yang telah ada. Sumber data sekunder adalah catatan atau dokumentasi perusahaan, publikasi pemerintah, analisis industri oleh media, situs Web, internet dan seterusnya (Uma Sekaran, 2011). a. Studi Kepustakaan, yaitu mencari data buku atau sumber data tertulis lainnya untuk mendapatkan konsep teori dan data yang dapat mendukung analisis dan pembahasan penelitian ini. b. Data yang dipublikasi oleh badan pusat statistik (BPS) yang diperoleh dari PT Kereta Api Indonesia dan PT. KAI Commuter Jabodetabek.

installpackages

library(readr)
## Warning: package 'readr' was built under R version 3.6.3
library(tsoutliers)
## Warning: package 'tsoutliers' was built under R version 3.6.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(forecast)
## Warning: package 'forecast' was built under R version 3.6.3
library(tseries)
## Warning: package 'tseries' was built under R version 3.6.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 3.6.3
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(FitAR)
## Warning: package 'FitAR' was built under R version 3.6.3
## Loading required package: lattice
## Warning: package 'lattice' was built under R version 3.6.3
## Loading required package: leaps
## Warning: package 'leaps' was built under R version 3.6.3
## Loading required package: ltsa
## Loading required package: bestglm
## Warning: package 'bestglm' was built under R version 3.6.3
## 
## Attaching package: 'FitAR'
## The following object is masked from 'package:forecast':
## 
##     BoxCox

input data

##INPUT DATA
data=read.csv("datapenumpang.csv", header = T, sep = ";")
head(data)
##   jumlah.penumpang
## 1            22238
## 2            21229
## 3            23206
## 4            23149
## 5            24401
## 6            23821
##UBAH DATA MENJADI FORMAT TIME SERIES (+ PLOT DATA)
Yt <- ts(data, start = c(2016,1), freq=12)
Yt
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2016 22238 21229 23206 23149 24401 23821 21574 23923 23570 24533 24104 24841
## 2017 24185 21743 25775 25411 27385 24432 27016 27679 26158 28765 28246 29059
## 2018 28075 25362 29223 28942 28995 24833 29086 28098 27618 29317 28049 29201
## 2019 27768 25305 28366 28062 28369 25816 29714 27651 28293 29278 28563 28860

Menguji kestasioneran data dengan melihat plot data (time series plot) dan plot ACF serta PACF.

plot(Yt)

Berdasarkan plot data diatas, plot time series dari penumpang kereta api di Jabodetabek dapat diketahui secara visual bahwa data penumpang kereta api di Jabodetabek dari bulan Januari 2016 hingga Desember 2019 belum stasioner. Namun, kestasioneran data tidak dapat dapat ditentukan hanya dengan menggunakan plot. Oleh karena itu, perlu dilakukan uji kestasioneran data yang meliputi uji kestasioneran dalam varians dan juga uji kestasioneran dalam mean. Uji kestasioneran dalam varians dilakukan dengan melihat nilai lambda menggunakan metode Box-Cox transformation. Sedangkan uji kestasioneran data dalam mean dilakukan dengan menggunakan Augmented Dickey Fuller (ADF) test.

##PLOT ACF PACF
#ACF PACF Jumlah Penumpang
par(mfrow=c(2,1))
acf(Yt, lag=100)
pacf(Yt, lag=100)

##UJI STASIONER TERHADAP VARIANS (BOX.COX)
lambda=BoxCox.lambda(Yt)
lambda
## [1] 0.04704793

Apabila data yang digunakan belum stasioner dalam varian maka perlu dilakukan transformasi data yaitu dengan menggunakan metode Box-Cox

##TRANSFORMASI DATA
Ytr=((Yt^lambda)-1)/lambda

##UJI STASIONER TERHADAP VARIANS yang sudah ditransformasi(BOX.COX)
lambda=BoxCox.lambda(Ytr)
lambda
## [1] 0.9849505
par(mfrow=c(2,1))
acf(Ytr, lag=100)
pacf(Ytr, lag=100)

Kemudian apa bila data yang digunakan belum stasioner dalam rata-rata maka perlu dilakukan pembedaan (differencing).

##UJI STASIONER TERHADAP RATA-RATA (ADF)
adf.test(Ytr)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  Ytr
## Dickey-Fuller = -1.8698, Lag order = 3, p-value = 0.6261
## alternative hypothesis: stationary
##DIFFERENCING
Yt1=diff(Ytr, lag=12, differences = 1)
adf.test(Yt1)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  Yt1
## Dickey-Fuller = -1.9455, Lag order = 3, p-value = 0.5944
## alternative hypothesis: stationary
acf(Yt1, lag=100)

pacf(Yt1, lag=100)

Yt2=diff(Yt1, differences = 1)
adf.test(Yt2)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  Yt2
## Dickey-Fuller = -2.7772, Lag order = 3, p-value = 0.2713
## alternative hypothesis: stationary
par(mfrow=c(2,1))
acf(Yt2, lag=100)
pacf(Yt2, lag=100)

Setelah memperoleh data yang stasioner dalam varians dan mean, selanjutnya melakukan pendugaan model awal menggunakan plot ACF dan PACF. Plot ACF dan PACF data penumpang kereta api di Jabodetabek setelah differencing dapat di lihat di gambar berikut

Yt3=diff(Yt2, differences = 1)
adf.test(Yt3)
## Warning in adf.test(Yt3): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  Yt3
## Dickey-Fuller = -6.2444, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
par(mfrow=c(2,1))
acf(Yt3, lag=100)
pacf(Yt3, lag=100)

Lalu tentukan orde pada model dengan melihat plot ACF serta PACF dan menetapkan model dugaan sementara berdasarkan orde model yang telah ditentukan. Setelah itu menguji signifikansi parameter modelnya. Uji signifikansi parameter menggunakan uji t dan p-value dengan kriteria pengambilan keputusan sebagai berikut. Tolak H0 jika │thitung│ > 𝑡𝑎/2 ,df dengan df = T-p dengan T adalah banyaknya data serta p adalah banyaknya parameter ada pada model.

##PENAKSIRAN PARAMETER (4,1,1)(0,0,1)12
fitS1=Arima(Ytr, order=c(0,1,0),seasonal=list(order=c(0,0,1),period=12))
fitS2=Arima(Ytr, order=c(1,1,0),seasonal=list(order=c(0,0,1),period=12))
fitS3=Arima(Ytr, order=c(2,1,0),seasonal=list(order=c(0,0,1),period=12))
fitS4=Arima(Ytr, order=c(3,1,0),seasonal=list(order=c(0,0,1),period=12))
fitS5=Arima(Ytr, order=c(4,1,0),seasonal=list(order=c(0,0,1),period=12))
fitS6=Arima(Ytr, order=c(0,1,1),seasonal=list(order=c(0,0,1),period=12))
fitS7=Arima(Ytr, order=c(1,1,1),seasonal=list(order=c(0,0,1),period=12))
fitS8=Arima(Ytr, order=c(2,1,1),seasonal=list(order=c(0,0,1),period=12))
fitS9=Arima(Ytr, order=c(3,1,1),seasonal=list(order=c(0,0,1),period=12))
fitS10=Arima(Ytr, order=c(4,1,1),seasonal=list(order=c(0,0,1),period=12))

list(fitS1,fitS2,fitS3,fitS4,fitS5,fitS6,fitS7,fitS8,fitS9,fitS10)
## [[1]]
## Series: Ytr 
## ARIMA(0,1,0)(0,0,1)[12] 
## 
## Coefficients:
##        sma1
##       1.000
## s.e.  0.288
## 
## sigma^2 estimated as 0.00564:  log likelihood=45.97
## AIC=-87.93   AICc=-87.66   BIC=-84.23
## 
## [[2]]
## Series: Ytr 
## ARIMA(1,1,0)(0,0,1)[12] 
## 
## Coefficients:
##           ar1    sma1
##       -0.5002  0.9995
## s.e.   0.1234  0.3514
## 
## sigma^2 estimated as 0.004268:  log likelihood=52.91
## AIC=-99.82   AICc=-99.26   BIC=-94.27
## 
## [[3]]
## Series: Ytr 
## ARIMA(2,1,0)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ar2    sma1
##       -0.6303  -0.2495  1.0000
## s.e.   0.1397   0.1378  0.4461
## 
## sigma^2 estimated as 0.004068:  log likelihood=54.48
## AIC=-100.96   AICc=-100.01   BIC=-93.56
## 
## [[4]]
## Series: Ytr 
## ARIMA(3,1,0)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ar2      ar3    sma1
##       -0.6805  -0.3726  -0.1871  0.9999
## s.e.   0.1420   0.1630   0.1376  0.6695
## 
## sigma^2 estimated as 0.003999:  log likelihood=55.37
## AIC=-100.75   AICc=-99.28   BIC=-91.5
## 
## [[5]]
## Series: Ytr 
## ARIMA(4,1,0)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ar2      ar3      ar4    sma1
##       -0.6886  -0.3882  -0.2159  -0.0394  0.9999
## s.e.   0.1449   0.1724   0.1728   0.1417  0.9091
## 
## sigma^2 estimated as 0.004087:  log likelihood=55.41
## AIC=-98.82   AICc=-96.72   BIC=-87.72
## 
## [[6]]
## Series: Ytr 
## ARIMA(0,1,1)(0,0,1)[12] 
## 
## Coefficients:
##           ma1    sma1
##       -0.5887  0.9999
## s.e.   0.0992  0.5862
## 
## sigma^2 estimated as 0.00395:  log likelihood=54.65
## AIC=-103.3   AICc=-102.74   BIC=-97.75
## 
## [[7]]
## Series: Ytr 
## ARIMA(1,1,1)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ma1   sma1
##       -0.1840  -0.4863  0.999
## s.e.   0.2046   0.1684  0.639
## 
## sigma^2 estimated as 0.003974:  log likelihood=55.03
## AIC=-102.06   AICc=-101.1   BIC=-94.65
## 
## [[8]]
## Series: Ytr 
## ARIMA(2,1,1)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ar2      ma1    sma1
##       -0.2762  -0.0879  -0.4018  0.9997
## s.e.   0.3115   0.2162   0.2849  0.6744
## 
## sigma^2 estimated as 0.004049:  log likelihood=55.11
## AIC=-100.21   AICc=-98.75   BIC=-90.96
## 
## [[9]]
## Series: Ytr 
## ARIMA(3,1,1)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ar2      ar3      ma1    sma1
##       -0.5976  -0.3208  -0.1676  -0.0865  1.0000
## s.e.   0.4948   0.3414   0.1855   0.4909  0.7452
## 
## sigma^2 estimated as 0.004091:  log likelihood=55.39
## AIC=-98.78   AICc=-96.68   BIC=-87.68
## 
## [[10]]
## Series: Ytr 
## ARIMA(4,1,1)(0,0,1)[12] 
## 
## Coefficients:
##           ar1      ar2      ar3      ar4     ma1    sma1
##       -1.3784  -0.8813  -0.5322  -0.2463  0.6868  0.8660
## s.e.   0.2890   0.2889   0.2519   0.1480  0.2601  0.6362
## 
## sigma^2 estimated as 0.004623:  log likelihood=55.96
## AIC=-97.92   AICc=-95.05   BIC=-84.97
##UJI SIGNIFIKANSI PARAMETER
printstatarima=function(Ytr,digits=4,se=T,...){
  if (length(Ytr$coef)>0){
    cat("\nCoefficients:\n")
    coef=round(Ytr$coef,digits=digits)
    if(se && nrow(Ytr$var.coef)){
      ses=rep(0, length(coef))
      ses[Ytr$mask] = round(sqrt(diag(Ytr$var.coef)),digits=digits)
      coef=matrix(coef,1,dimnames=list(NULL, names(coef)))
      coef=rbind(coef,s.e.=ses)
      statt=coef[1,]/ses
      pval=2*pt(abs(statt),df=length(Ytr$residuals)-1,lower.tail=F)
      coef=rbind(coef,t=round(statt,digits=digits),sign.=round(pval,digits=digits))
      coef=t(coef)
    }
    print.default(coef,print.gap=2)
  }
}
printstatarima(fitS1)
## 
## Coefficients:
##           s.e.       t   sign.
## sma1  1  0.288  3.4722  0.0011
printstatarima(fitS2)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.5002  0.1234  -4.0535  0.0002
## sma1   0.9995  0.3514   2.8443  0.0066
printstatarima(fitS3)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.6303  0.1397  -4.5118  0.0000
## ar2   -0.2495  0.1378  -1.8106  0.0766
## sma1   1.0000  0.4461   2.2416  0.0297
printstatarima(fitS4)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.6805  0.1420  -4.7923  0.0000
## ar2   -0.3726  0.1630  -2.2859  0.0268
## ar3   -0.1871  0.1376  -1.3597  0.1804
## sma1   0.9999  0.6695   1.4935  0.1420
printstatarima(fitS5)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.6886  0.1449  -4.7522  0.0000
## ar2   -0.3882  0.1724  -2.2517  0.0291
## ar3   -0.2159  0.1728  -1.2494  0.2177
## ar4   -0.0394  0.1417  -0.2781  0.7822
## sma1   0.9999  0.9091   1.0999  0.2770
printstatarima(fitS6)
## 
## Coefficients:
##                  s.e.        t   sign.
## ma1   -0.5887  0.0992  -5.9345  0.0000
## sma1   0.9999  0.5862   1.7057  0.0947
printstatarima(fitS7)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.1840  0.2046  -0.8993  0.3731
## ma1   -0.4863  0.1684  -2.8878  0.0058
## sma1   0.9990  0.6390   1.5634  0.1247
printstatarima(fitS8)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.2762  0.3115  -0.8867  0.3798
## ar2   -0.0879  0.2162  -0.4066  0.6862
## ma1   -0.4018  0.2849  -1.4103  0.1650
## sma1   0.9997  0.6744   1.4824  0.1449
printstatarima(fitS9)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -0.5976  0.4948  -1.2078  0.2332
## ar2   -0.3208  0.3414  -0.9397  0.3522
## ar3   -0.1676  0.1855  -0.9035  0.3709
## ma1   -0.0865  0.4909  -0.1762  0.8609
## sma1   1.0000  0.7452   1.3419  0.1861
printstatarima(fitS10)
## 
## Coefficients:
##                  s.e.        t   sign.
## ar1   -1.3784  0.2890  -4.7696  0.0000
## ar2   -0.8813  0.2889  -3.0505  0.0037
## ar3   -0.5322  0.2519  -2.1127  0.0400
## ar4   -0.2463  0.1480  -1.6642  0.1027
## ma1    0.6868  0.2601   2.6405  0.0112
## sma1   0.8660  0.6362   1.3612  0.1799

Diketahui bahwa hanya model SARIMA (0,1,0)(0,0,1) 12 dan SARIMA (1,1,0)(0,0,1) 12 yang parameternya signifikan (P-value berada dibawah level toleransi (α = 0,05). Dengan demikian model tersebut memenuhi syarat signifikansi parameter.

Lakukan diagnostic checking

##UJI ASUMSI RESIDUAL (01)
#Pengujian Non Autokorelasi
resY1=residuals(fitS1)
wnY1=Box.test(resY1, type=c("Ljung-Box"))
wnY1
## 
##  Box-Ljung test
## 
## data:  resY1
## X-squared = 13.847, df = 1, p-value = 0.0001983
#Pengujian Normalitas
nY1=length(resY1)
sdY1=sd(resY1)
resnY1=rnorm(nY1,0,sdY1)
ks.test(resY1,resnY1)
## 
##  Two-sample Kolmogorov-Smirnov test
## 
## data:  resY1 and resnY1
## D = 0.083333, p-value = 0.9969
## alternative hypothesis: two-sided
#Pengujian Homoskedastisitas
Box.test(resY1^2, type=c("Ljung-Box"))
## 
##  Box-Ljung test
## 
## data:  resY1^2
## X-squared = 1.3224, df = 1, p-value = 0.2502
##UJI ASUMSI RESIDUAL (02)
#Pengujian Non Autokorelasi
resY2=residuals(fitS2)
wnY2=Box.test(resY2, type=c("Ljung-Box"))
wnY2
## 
##  Box-Ljung test
## 
## data:  resY2
## X-squared = 1.1623, df = 1, p-value = 0.281
#Pengujian Normalitas
nY2=length(resY2)
sdY2=sd(resY2)
resnY2=rnorm(nY2,0,sdY2)
ks.test(resY2,resnY2)
## 
##  Two-sample Kolmogorov-Smirnov test
## 
## data:  resY2 and resnY2
## D = 0.1875, p-value = 0.3707
## alternative hypothesis: two-sided
#Pengujian Homoskedastisitas
Box.test(resY2^2, type=c("Ljung-Box"))
## 
##  Box-Ljung test
## 
## data:  resY2^2
## X-squared = 0.15689, df = 1, p-value = 0.692
dekomposisi<-decompose(Yt,"multiplicative")
dekomposisi
## $x
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2016 22238 21229 23206 23149 24401 23821 21574 23923 23570 24533 24104 24841
## 2017 24185 21743 25775 25411 27385 24432 27016 27679 26158 28765 28246 29059
## 2018 28075 25362 29223 28942 28995 24833 29086 28098 27618 29317 28049 29201
## 2019 27768 25305 28366 28062 28369 25816 29714 27651 28293 29278 28563 28860
## 
## $seasonal
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2016 0.9997982 0.8986086 1.0309072 1.0139561 1.0388996 0.9163046 0.9950453
## 2017 0.9997982 0.8986086 1.0309072 1.0139561 1.0388996 0.9163046 0.9950453
## 2018 0.9997982 0.8986086 1.0309072 1.0139561 1.0388996 0.9163046 0.9950453
## 2019 0.9997982 0.8986086 1.0309072 1.0139561 1.0388996 0.9163046 0.9950453
##            Aug       Sep       Oct       Nov       Dec
## 2016 1.0197282 0.9851088 1.0453747 1.0128798 1.0433890
## 2017 1.0197282 0.9851088 1.0453747 1.0128798 1.0433890
## 2018 1.0197282 0.9851088 1.0453747 1.0128798 1.0433890
## 2019 1.0197282 0.9851088 1.0453747 1.0128798 1.0433890
## 
## $trend
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2016       NA       NA       NA       NA       NA       NA 23463.54 23566.08
## 2017 24516.42 24899.67 25164.00 25448.17 25797.08 26145.42 26483.25 26796.12
## 2018 27782.33 27886.04 27964.33 28048.17 28062.96 28060.67 28053.79 28038.62
## 2019 27947.42 27954.96 27964.46 27990.96 28010.75 28017.96       NA       NA
##           Sep      Oct      Nov      Dec
## 2016 23694.54 23895.83 24114.42 24264.21
## 2017 27090.58 27381.37 27595.58 27679.37
## 2018 28000.54 27928.17 27865.42 27880.29
## 2019       NA       NA       NA       NA
## 
## $random
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2016        NA        NA        NA        NA        NA        NA 0.9240474
## 2017 0.9866809 0.9717518 0.9935722 0.9847956 1.0218063 1.0198201 1.0251960
## 2018 1.0107382 1.0121061 1.0136797 1.0176652 0.9945259 0.9658092 1.0419565
## 2019 0.9937807 1.0073420 0.9839480 0.9887391 0.9748678 1.0055706        NA
##            Aug       Sep       Oct       Nov       Dec
## 2016 0.9955058 1.0097807 0.9821018 0.9868575 0.9811981
## 2017 1.0129639 0.9801713 1.0049331 1.0105539 1.0061857
## 2018 0.9827301 1.0012479 1.0041651 0.9937885 1.0038161
## 2019        NA        NA        NA        NA        NA
## 
## $figure
##  [1] 0.9997982 0.8986086 1.0309072 1.0139561 1.0388996 0.9163046 0.9950453
##  [8] 1.0197282 0.9851088 1.0453747 1.0128798 1.0433890
## 
## $type
## [1] "multiplicative"
## 
## attr(,"class")
## [1] "decomposed.ts"
autoplot(dekomposisi)

##HASIL (CEK MAPE) untuk model2 yang terpenuhi
summary(fitS2)
## Series: Ytr 
## ARIMA(1,1,0)(0,0,1)[12] 
## 
## Coefficients:
##           ar1    sma1
##       -0.5002  0.9995
## s.e.   0.1234  0.3514
## 
## sigma^2 estimated as 0.004268:  log likelihood=52.91
## AIC=-99.82   AICc=-99.26   BIC=-94.27
## 
## Training set error measures:
##                       ME      RMSE        MAE        MPE     MAPE     MASE
## Training set 0.007517187 0.0632533 0.05146673 0.05567973 0.395157 0.472785
##                    ACF1
## Training set -0.1508691

Pemilihan Model Terbaik Setelah melalui proses estimasi parameter dan diagnostic checking dapat diketahui bahwa model SARIMA (1,1,0)(0,0,1) 12 adalah model terbaik yang bisa dipakai dalam meramalkan jumlah data Penumpang Kereta Api di Jabodetabek. Karena model tersebut dianggap model yang layak karena parameter-parameter yang ada di dalamnya telah signifikan serta residual-residualnya telah mengandung asumsi non autokorelasi dan berdistribusi normal.

PLOT Hasil Peramalan Jumlah Penumpang Kereta Api dengan Metode Seasonal Autoregressive Intergrated Moving Average (SARIMA)

##PLOT PERAMALAN
fc=forecast(fitS2,h = 24)
fc
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Jan 2020       13.17169 13.07846 13.26491 13.02911 13.31426
## Feb 2020       13.09176 12.98785 13.19566 12.93285 13.25066
## Mar 2020       13.18516 13.06060 13.30972 12.99466 13.37566
## Apr 2020       13.17097 13.03385 13.30808 12.96127 13.38066
## May 2020       13.21530 13.06440 13.36620 12.98452 13.44608
## Jun 2020       13.17738 13.01493 13.33983 12.92893 13.42583
## Jul 2020       13.30291 13.12917 13.47664 13.03721 13.56861
## Aug 2020       13.22570 13.04160 13.40980 12.94415 13.50725
## Sep 2020       13.24040 13.04640 13.43440 12.94371 13.53710
## Oct 2020       13.27540 13.07199 13.47880 12.96431 13.58648
## Nov 2020       13.28005 13.06771 13.49239 12.95530 13.60479
## Dec 2020       13.26335 13.04230 13.48439 12.92528 13.60141
## Jan 2021       13.27170 13.01184 13.53156 12.87428 13.66912
## Feb 2021       13.26752 12.98943 13.54562 12.84221 13.69283
## Mar 2021       13.26961 12.96758 13.57165 12.80769 13.73153
## Apr 2021       13.26857 12.94765 13.58948 12.77777 13.75936
## May 2021       13.26909 12.92881 13.60936 12.74868 13.78949
## Jun 2021       13.26883 12.91097 13.62669 12.72153 13.81612
## Jul 2021       13.26896 12.89399 13.64393 12.69550 13.84242
## Aug 2021       13.26889 12.87773 13.66005 12.67066 13.86712
## Sep 2021       13.26893 12.86213 13.67572 12.64679 13.89106
## Oct 2021       13.26891 12.84711 13.69071 12.62382 13.91400
## Nov 2021       13.26892 12.83260 13.70524 12.60163 13.93621
## Dec 2021       13.26891 12.81856 13.71927 12.58015 13.95767
par(mfrow=c(1,1))
plot(fc)
fc1=fitted(fitS2)
lines(fc1,col='blue')