4.3 Time-varying parameters

All parameters can be time-varying. Specify these with 3-dimensional array where time is the 3rd dimension. If the data have \(T\) time steps, the 3rd dimension of your array must be equal to \(T\). No text short-cuts allowed.

Example, for \(t=1\) to \(t=3\), \(\mathbf{u}\) is \[\begin{equation*} \left[ \begin{array}{c} 0.01 \\ u_1 \\ u \end{array} \right] \end{equation*}\] and for \(t=4\) to \(t=10\), \(\mathbf{u}\) is \[\begin{equation*} \left[ \begin{array}{c} 0.02 \\ u_2 \\ u \end{array} \right] \end{equation*}\]

Specify this as

U <- array(list(0), dim=c(3,1,10))
U[,,1:3] <- list(0.01, "u1", "u")
U[,,4:10] <- list(0.02, "u2", "u")

The MARSS algorithms will become rather slow when you use time-varying parameters. Note, dynamic linear models are a way to have stochastic time-varying parameters. See the chapter in the ATSA book on this class of model.