# References This page lists the works cited in the source code and docs, the datasets, and the software this project uses. Where a project asks users to cite it in a particular way, that is the citation given here. ## Methods The library follows the first of these, and section numbers in the source ("DK 4.3.4") refer to it. - Durbin, J. and Koopman, S. J. (2012). *Time Series Analysis by State Space Methods*, 2nd ed. Oxford University Press. ISBN 978-0-19-964117-8. [doi:10.1093/acprof:oso/9780199641178.001.0001](https://doi.org/10.1093/acprof:oso/9780199641178.001.0001) - Anderson, B. D. O. and Moore, J. B. (1979). *Optimal Filtering*. Prentice-Hall. (Steady state of the Kalman filter.) - Chu, E. K.-W., Fan, H.-Y., Lin, W.-W. and Wang, C.-S. (2004). Structure-preserving algorithms for periodic discrete-time algebraic Riccati equations. *International Journal of Control* 77(8), 767–788. [doi:10.1080/00207170410001714988](https://doi.org/10.1080/00207170410001714988) (The doubling algorithm in `steady_state`.) - de Jong, P. and Penzer, J. (1998). Diagnosing shocks in time series. *Journal of the American Statistical Association* 93(442), 796–806. [doi:10.1080/01621459.1998.10473731](https://doi.org/10.1080/01621459.1998.10473731) - de Jong, P. and Shephard, N. (1995). The simulation smoother for time series models. *Biometrika* 82(2), 339–350. [doi:10.1093/biomet/82.2.339](https://doi.org/10.1093/biomet/82.2.339) - Durbin, J. and Koopman, S. J. (2002). A simple and efficient simulation smoother for state space time series analysis. *Biometrika* 89(3), 603–615. [doi:10.1093/biomet/89.3.603](https://doi.org/10.1093/biomet/89.3.603) - Francke, M. K., Koopman, S. J. and de Vos, A. F. (2010). Likelihood functions for state space models with diffuse initial conditions. *Journal of Time Series Analysis* 31(6), 407–414. [doi:10.1111/j.1467-9892.2010.00673.x](https://doi.org/10.1111/j.1467-9892.2010.00673.x) - Harvey, A. C. (1989). *Forecasting, Structural Time Series Models and the Kalman Filter*. Cambridge University Press. [doi:10.1017/CBO9781107049994](https://doi.org/10.1017/CBO9781107049994) - Jungbacker, B. and Koopman, S. J. (2015). Likelihood-based dynamic factor analysis for measurement and forecasting. *The Econometrics Journal* 18(2), C1–C21. [doi:10.1111/ectj.12029](https://doi.org/10.1111/ectj.12029) (Collapsing the observation vector, DK 6.5. DK cite the 2008 working paper version.) - Koopman, S. J. and Shephard, N. (1992). Exact score for time series models in state space form. *Biometrika* 79(4), 823–826. [doi:10.1093/biomet/79.4.823](https://doi.org/10.1093/biomet/79.4.823) - Monahan, J. F. (1984). A note on enforcing stationarity in autoregressive-moving average models. *Biometrika* 71(2), 403–404. [doi:10.1093/biomet/71.2.403](https://doi.org/10.1093/biomet/71.2.403) - Nelson, C. R. and Siegel, A. F. (1987). Parsimonious modeling of yield curves. *Journal of Business* 60(4), 473–489. [doi:10.1086/296409](https://doi.org/10.1086/296409) - Thompson, I. J. and Barnett, A. R. (1986). Coulomb and Bessel functions of complex arguments and order. *Journal of Computational Physics* 64(2), 490–509. [doi:10.1016/0021-9991(86)90046-X](https://doi.org/10.1016/0021-9991(86)90046-X) (The modified Lentz method for the continued fractions in `statespace_special`.) - Wahba, G. (1978). Improper priors, spline smoothing and the problem of guarding against model errors in regression. *Journal of the Royal Statistical Society, Series B* 40(3), 364–372. [doi:10.1111/j.2517-6161.1978.tb01050.x](https://doi.org/10.1111/j.2517-6161.1978.tb01050.x) ## Data See `data/README.md` for the files themselves. - **Nile.** Cobb, G. W. (1978). The problem of the Nile: conditional solution to a changepoint problem. *Biometrika* 65(2), 243–251. [doi:10.1093/biomet/65.2.243](https://doi.org/10.1093/biomet/65.2.243) - **Seat belts (DK 8.2–8.3).** Harvey, A. C. and Durbin, J. (1986). The effects of seat belt legislation on British road casualties: a case study in structural time series modelling. *Journal of the Royal Statistical Society, Series A* 149(3), 187–227. [doi:10.2307/2981553](https://doi.org/10.2307/2981553) Distributed as `Seatbelts` in R's `datasets` package. - **Internet users (DK 8.4).** Makridakis, S., Wheelwright, S. C. and Hyndman, R. J. (1998). *Forecasting: Methods and Applications*, 3rd ed. Wiley. Distributed as `WWWusage` in R's `datasets` package. - **Motorcycle acceleration (DK 8.5).** Silverman, B. W. (1985). Some aspects of the spline smoothing approach to non-parametric regression curve fitting. *Journal of the Royal Statistical Society, Series B* 47(1), 1–52. [doi:10.1111/j.2517-6161.1985.tb01327.x](https://doi.org/10.1111/j.2517-6161.1985.tb01327.x) Distributed as `mcycle` in R's `MASS` package: Venables, W. N. and Ripley, B. D. (2002). *Modern Applied Statistics with S*, 4th ed. Springer. [doi:10.1007/978-0-387-21706-2](https://doi.org/10.1007/978-0-387-21706-2) - **US Treasury yields (DK 8.6 substitute).** FRED asks for this citation for each series: Board of Governors of the Federal Reserve System (US), Market Yield on U.S. Treasury Securities at 3-Month, 6-Month, 1-Year, 2-Year, 3-Year, 5-Year, 7-Year and 10-Year Constant Maturity, Quoted on an Investment Basis [GS3M, GS6M, GS1, GS2, GS3, GS5, GS7, GS10], retrieved from FRED, Federal Reserve Bank of St. Louis, . The data DK use are from: Diebold, F. X. and Li, C. (2006). Forecasting the term structure of government bond yields. *Journal of Econometrics* 130(2), 337–364. [doi:10.1016/j.jeconom.2005.03.005](https://doi.org/10.1016/j.jeconom.2005.03.005) - **R and Rdatasets.** R Core Team. *R: A Language and Environment for Statistical Computing*. R Foundation for Statistical Computing, Vienna. . Arel-Bundock, V. *Rdatasets: A collection of datasets originally distributed in R packages*. . ## Software ### Build dependencies - **L-BFGS-B**, via [jacobwilliams/lbfgsb](https://github.com/jacobwilliams/lbfgsb): - Byrd, R. H., Lu, P., Nocedal, J. and Zhu, C. (1995). A limited memory algorithm for bound constrained optimization. *SIAM Journal on Scientific Computing* 16(5), 1190–1208. [doi:10.1137/0916069](https://doi.org/10.1137/0916069) - Zhu, C., Byrd, R. H., Lu, P. and Nocedal, J. (1997). Algorithm 778: L-BFGS-B: Fortran subroutines for large-scale bound-constrained optimization. *ACM Transactions on Mathematical Software* 23(4), 550–560. [doi:10.1145/279232.279236](https://doi.org/10.1145/279232.279236) - Morales, J. L. and Nocedal, J. (2011). Remark on "Algorithm 778: L-BFGS-B: Fortran subroutines for large-scale bound constrained optimization". *ACM Transactions on Mathematical Software* 38(1), Article 7. [doi:10.1145/2049662.2049669](https://doi.org/10.1145/2049662.2049669) - **LAPACK**, which asks that proper credit be given to its authors: Anderson, E. et al. (1999). *LAPACK Users' Guide*, 3rd ed. SIAM. [doi:10.1137/1.9780898719604](https://doi.org/10.1137/1.9780898719604) - **BLAS**: any implementation, e.g. [OpenBLAS](https://www.openmathlib.org/OpenBLAS/) or the reference BLAS. - **test-drive** (tests only): . ### Reference implementation and fixture generation The test fixtures are generated by `test/fixtures/make_fixtures.py`, using: - **statsmodels**, used as the reference implementation. Its requested citation: Seabold, S. and Perktold, J. (2010). statsmodels: Econometric and statistical modeling with Python. *Proceedings of the 9th Python in Science Conference*. [doi:10.25080/Majora-92bf1922-011](https://doi.org/10.25080/Majora-92bf1922-011) Software archive: [doi:10.5281/zenodo.593847](https://doi.org/10.5281/zenodo.593847) - **SciPy** (the smoothing-spline reference): Virtanen, P. et al. (2020). SciPy 1.0: fundamental algorithms for scientific computing in Python. *Nature Methods* 17, 261–272. [doi:10.1038/s41592-019-0686-2](https://doi.org/10.1038/s41592-019-0686-2) - **NumPy**: Harris, C. R. et al. (2020). Array programming with NumPy. *Nature* 585, 357–362. [doi:10.1038/s41586-020-2649-2](https://doi.org/10.1038/s41586-020-2649-2) - **pandas**: The pandas development team. *pandas-dev/pandas: Pandas*. Zenodo. [doi:10.5281/zenodo.3509134](https://doi.org/10.5281/zenodo.3509134); McKinney, W. (2010). Data structures for statistical computing in Python. *Proceedings of the 9th Python in Science Conference*, 56–61. [doi:10.25080/Majora-92bf1922-00a](https://doi.org/10.25080/Majora-92bf1922-00a)