* * Example from section 9.3 * Bivariate time series model * cal(m) 1969:1 open data seatbelt.dat data(format=free,skips=2,org=columns) 1969:1 1984:12 driver front rear kilos petrol * graph(footer="Figure 9.6. Front and rear seat passengers killed and seriously injured"+$ " in road accidents in Great Britain",key=attached) 2 # front # rear * * Generate the basic seasonal and local level component models * SeasonalDLM and LocalDLM create the "A", "C" and "SW" matrices (in RATS notation) * @SeasonalDLM(type=fourier) as cs sws @LocalDLM al cl swl * dec symm sigmav(2,2) sigmal(2,2) sigmas(2,2) nonlin sigmav sigmal sigmas * compute c=%blockglue(||cl,%zeros(1,1)|%zeros(1,1),cl|cs,%zeros(11,1)|%zeros(11,1),cs||) compute a=al~\al~\as~\as * compute sigmav=%mscalar(.005),sigmal=%mscalar(.0003),sigmas=%mscalar(0.0) * compute span=12 nonlin sigmav sigmal dlm(method=bfgs,start=(sw=sigmal~\%kroneker(sigmas,%identity(span-1))),$ y=||front,rear||,a=a,c=c,exact,sv=sigmav,sw=sw) * 1983:1 xstates dec vect fsigmal(2) nonlin sigmav fsigmal compute fsigmal=%sqrt(%xdiag(sigmal)) dlm(method=bfgs,start=(sw=%outerxx(fsigmal)~\%kroneker(sigmas,%identity(span-1))),$ y=||front,rear||,a=a,c=c,exact,sv=sigmav,sw=sw) * 1983:1 xstates set level83_2 = t>=1983:2 nonlin sigmav sigmal front_level rear_level dlm(method=bfgs,start=(sw=sigmal~\%kroneker(sigmas,%identity(span-1))),$ y=||front-front_level*level83_2,rear-rear_level*level83_2||,a=a,c=c,exact,sv=sigmav,sw=sw) / xstates