Regular periodic cubic splines

Use of regular periodic cubic splines

s<-log(ABS$X0.2.09.10.M)

Usual BSM with Harrison-Stevens seasonal component

model<-model()

llt<-locallineartrend('l')
seas<-seasonal("s", 12, "HarrisonStevens")
n<-noise('n')
add(model, llt)
add(model, seas)
add(model, n)

rslt<-estimate(model, s)

sa1<-result(rslt, "ssf.smoothing.components")

BSM with full periodic splines seasonal component

The results of the first two models should be identical (up to numerical precision)

model<-model()
seas<-splines_regular("s", 12, knots=c(0:11))
add(model, llt)
add(model, seas)
add(model, n)

rslt<-estimate(model, s)

sa2<-result(rslt, "ssf.smoothing.components")

summary(sa1[,2]-sa2[,2])
#>              Min.           1st Qu.            Median              Mean 
#> -0.00000011793865 -0.00000001662491 -0.00000000004462  0.00000000008844 
#>           3rd Qu.              Max. 
#>  0.00000001602969  0.00000008775725

BSM with partial periodic splines seasonal component

The splines are computed on 8 points (instead of 12)

model<-model()
seas<-splines_regular("s", 12, knots=c(1,2,6,7,8,9,10,11))
add(model, llt)
add(model, seas)
add(model, n)

rslt<-estimate(model, s)

sa3<-result(rslt, "ssf.smoothing.components")


matplot(cbind(sa1[301:336,2],sa2[301:336,2],sa3[301:336,2]), type='l', ylab="Seasonal")