- Extensive tests for Tempered Particle Filter when run in parallel.
- Sped up computation when there's only 1 state or shock.
- Fix Tempered Particle Filter when run in parallel with multiple nodes.
- Fix Koopman disturbance smoother when Z is time-varying.
- Add further tests in time-varying cases.
- Sparse matrices allowed for Kalman filter
- Fix all smoothers to allow for time variation in any component of a Gaussian linear state space system. Previous attempts were incorrect.
- Generalize Durbin-Koopman smoother to allow temporary time variation in
CCC
- Remove DSGE from dependencies
- Raise compatibility to all Julia 1.x versions.
- Fix Kalman filter regime-switching bug
- Don't export resample method; assists with compatibility in DSGE.jl
- Allows compatibility with
PoolModeltype. - Fix errors with compatibility in package loading.
- Now only compatible with Julia
v1.0andv1.1.
- Methods are modified to accept
Realtypes, enabling compatibility with autodifferentiation techniques. - Removed dependence on QuantEcon package, resolves error loading package in Julia v1.1.
- Add option to specify a likelihood convergence tolerance (the keyword argument,
tol) for thekalman_filterandchand_recursion. - Save the
PZVmatrix in theKalmanFiltertype, (P_pred' * Z' * inv(V_pred)), for state and state variance-covariance matrix updating without needing to recompute that matrix product. - Write an additional
kalman_likelihoodset of methods for obtaining only the likelihood from the kalman filter. Whilekalman_filtercan already do so,kalman_likelihoodis optimized for performance, as it does not instantiate empty return values.
kalman_filterruns about 20% more quicklyhamilton_smootherandcarter_kohn_smootherrun about 5% more slowlykoopman_smootherruns about 6% more quicklydurbin_koopman_smootherruns about 13% more quickly
kalman_filter- Replaced
allout::Boolkeyword argument withoutputs::Vector{Symbol}. Forallout = false, now specifyoutputs = [:loglh] - Return values have changed to
loglh, s_pred, P_red, s_filt, P_filt, s_0, P_0, s_T, P_T. Note thatloglhis the vector of conditional log-likelihoods, not the total log-likelihood. The outputsyprederror, ystdprederror, rmse, rmsdare no longer returned but can be calculated from the values that are returned - Unlike before, the same number of outputs are returned regardless of what's passed to
outputs. However, some of the outputs may be empty arrays
- Replaced
- Add tempered particle filter
- Upgrade all code for use with Julia v0.6 or higher
kalman_filterreturns an additional output variable, a vector of marginal log-likelihoods