Katharina Best
2013-May-14 18:24 UTC
[R] Specifying Correlation Structures in Linear Multivariate State Space Models
I am investigating various R packages that facilitate estimation of linear
Gaussian multivariate state space models. I stumbled across the MARSS
package (http://cran.r-project.org/web/packages/MARSS/index.html), which I
believe is very well done, but am finding one missing feature that I cannot
live without. I am trying to estimate a Gaussian multiuvatiate local level
model
The MARSS package seems to require that *w *and *v *have the same
dimensions as the state and observation equations, respectively. For
example, a model with 4 states in the state equation would need to have
four error terms and a 4x4 covariance matrix Q. My questions is whether
there is any way to get around this restriction either by
- adding a *p x m *coefficient matrix in front of *w*, where *p *is the
number of error terms and *m *is the number of state equations, thus
allowing the error term of each of the *m *companies to be a linear
combination of *p *independent error terms, OR
- by specifying the correlation structure in *Q *appropriately. When I
attempt to restrict *Q* in a way that mimics the model that would be
created by a coefficient matrix like one described above I run into the
problem that expressions defining values of entries in *Q* must be
linear in parameters. This prevents me from e.g. writing expressions that
are products of estimated correlation coefficients.
I found a similar issue when investigating the dlm package, but am also
looking for suggestions on other approaches to try.
*Some more detail:*
Currently in MARSS, the equations look like this:
- X_t = B_t X_{t-1} + u_t + w_t where X is mx1, B is mxm, u is mx1, w
is mx1
- Y_t = Z_t X_t + a_t + v_t where Y is nx1, Z is nxm, X is mx1, a is
nx1, v is nx1
My goal is to write error terms as linear combinations, yielding something
like:
- X_t = B_t X_{t-1} + u_t + R_t w_t where X is mx1, B is mxm, u is mx1,
R is pxm, w is px1
- Y_t = Z_t X_t + a_t + S_t v_t where Y is nx1, Z is nxm, X is mx1, a
is nx1, S is qxn, v is qx1
*Thanks so much for the help!*
[[alternative HTML version deleted]]