• MARSS Manual
  • Preface
    • Installation
    • Author
    • Citation
  • Part 1. Overview
  • 1 Overview
    • 1.1 MARSS model form
    • 1.2 Examples of MARSS models
  • 2 How to get started (quickly)
  • 3 Getting your data in right format
    • 3.1 ts objects
      • 3.1.1 Univariate ts object
      • 3.1.2 Multivariate ts object
    • 3.2 tsibble objects
  • Part 2. Examples
  • 4 Output
  • 5 Univariate Models
    • 5.1 Random walk with drift
    • 5.2 Random walk with time-varying parameters
    • 5.3 AR(1) observed with error
    • 5.4 Linear regression
    • 5.5 Linear regression with AR(1) errors
    • 5.6 Linear regression with AR(1) errors and independent errors
    • 5.7 Linear regression with AR(1) driven by covariate
    • 5.8 Flat level model
    • 5.9 Linear trend model
    • 5.10 Stochastic level model
    • 5.11 Stochastic slope model
  • Part 3. Outputs
  • 6 MARSS outputs
  • 7 MARSS Residuals
  • 8 Confidence Intervals
  • 9 Predictions
  • Part 4. Tips and Tricks
  • 10 Troubleshooting
  • 11 EM algorithm
    • 11.1 Important notes about the algorithms
    • 11.2 State-space form of ARMA(p,q) models
  • 12 Other related packages
  • References
  • Published with bookdown

MARSS Package Manual

Chapter 12 Other related packages

Packages that will do Kalman filtering and smoothing are many, but packages that estimate the parameters in a MARSS model, especially constrained MARSS models, are much less common. The following are those with which we are familiar, however there are certainly more packages for estimating MARSS models in engineering and economics of which we are unfamiliar. The MARSS package is unusual in that it uses an EM algorithm for maximizing the likelihood as opposed to a Newton-esque method (e.g. BFGS). The package is also unusual in that it allows you to specify the initial conditions at \(t=0\) or \(t=1\), allows degenerate models (with some of the diagonal elements of \(\mathbf{R}\) or \(\mathbf{Q}\) equal to zero). Lastly, model specification in the MARSS package has a one-to-one relationship between the model list in MARSS() and the model as you would write it on paper as a matrix equation. This makes the learning curve a bit less steep. However, the MARSS package has not been optimized for speed and probably will be really slow if you have time-series data with a lot of time points.