Acknowledgments
Early development of the MARSS functions into an R package was done by Kellie Wills, a contractor at NWFSC. Many students in our workshops on MAR and MARSS modeling and our winter course at the University of Washington have helped us refine the package. The Kalman filter and smoother functions used by the MARSS package are now those written by Jouni Helske for the KFAS package. Use of the KFAS Kalman functions has made the MARSS package faster and more stable.
The MARSS R package began as code developed to study noisy and gappy multivarite time-series data that are ubiquitous in fisheries and ecological research. Our initial forays into model estimation for these data were inspired by Chapter 6 in Shumway and Stoffer (2006) and Harvey (1989). Due to difficulties fitting these models, we gravitated towards the EM algorithm as outlined by Shumway and Stoffer (1982). The first version of the EM algorithm that E. E. Holmes wrote however was based on a 1996 technical report by Z. Ghahramani and G. E. Hinton (Ghahramani and Hinton 1996). The Kalman filter and smoother was that given in Shumway and Stoffer (2006). This initial algorithm allowed only shared terms within the \(\mathbf{u}\) matrix and generic constraints on the \(\mathbf{Q}\) and \(\mathbf{R}\) matrices, as this is what our work on population structure required.
During this time, the authors were working together at the Northwest Fisheries Science Center. M. D. Scheuerell provided the impetus and inspiration to derive a general EM algorithm for MARSS models with linear constraints. He needed these models for research problems and in the course of deriving the EM algorithm for constrained \(\mathbf{Q}\) matrices, it became apparent how to derive the fully general case. Thus began a five-year project resulting in Holmes (2013). Subsequently, we also needed to work with partially deterministic systems, and thus the EM algorithm was extended to the case of partially deterministic MARSS models.
Later algorithms for residuals and inference from MARSS models were added (Holmes 2014). This work was founded mainly on work by Andrew Harvey, Siem Jan Koopman, and Jeremy Penzer on inference and diagnostic checking of MARSS models (Harvey 1989; Harvey and Koopman 1992; Harvey, Koopman, and Penzer 1998; Jong and Penzer 1998). Extending the algorithm for the Fisher Information matrix in section 3.4.5 of Harvey (1989) to the general MARSS model in the MARSS package allowed rapid calculation of approximate confidence intervals. Algorithms for bootstrap AIC (Cavanaugh and Shumway 1997) and innovations bootstrapping (Stoffer and Wall 1991) were also added.