Symm creates a symmetric matrix (n*(n+1)/2 free params)
Diag creates a diagonal matrix (n free params)
Scalar creates a scalar multiple of the identity matrix (1 free param)
Zero creates a zero matrix (0 free params)
AR1 creates an autoregressive lag 1 structure (2 free params)
See this page for more possible covariance structures.
The arguments could take lists of characters (or even vectors) for regime switching. We'd have to have some kind of system for indicating if the free params are equal or different across regimes. A prototype for this is in the latentRegime and observedRegime arguments. These would be something like
latentRegime = c('a', 'a', 'b') # Three regimes. First two regimes have the same latent cov
observedRegime = c(1, 2, 3) # Three regimes. All different observed cov
We'd also need a way to indicate the size of the latent and observed matrices. A proposal is given as numLatent and numObserved.
A similar function could be designed for initial conditions, but that should be a separate issue.
The naming here is easy.*(). It might be nice to play on getting dinner from take-out, as oppose to home cooked: take.noise(), order.noise(), fast.noise(), togo.noise()?
Original report by Michael Hunter (Bitbucket: mhunter, GitHub: mhunter).
Many users do not like or understand the matrix interface. This would be a function that creates common structures for the noise matrices.
Proposal 1
See this page for more possible covariance structures.
The arguments could take lists of characters (or even vectors) for regime switching. We'd have to have some kind of system for indicating if the free params are equal or different across regimes. A prototype for this is in the
latentRegime
andobservedRegime
arguments. These would be something likeWe'd also need a way to indicate the size of the latent and observed matrices. A proposal is given as
numLatent
andnumObserved
.A similar function could be designed for initial conditions, but that should be a separate issue.
The naming here is
easy.*()
. It might be nice to play on getting dinner from take-out, as oppose to home cooked:take.noise()
,order.noise()
,fast.noise()
,togo.noise()
?