- 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
PoolModel
type. - Fix errors with compatibility in package loading.
- Now only compatible with Julia
v1.0
andv1.1
.
- Methods are modified to accept
Real
types, 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_filter
andchand_recursion
. - Save the
PZV
matrix in theKalmanFilter
type, (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_likelihood
set of methods for obtaining only the likelihood from the kalman filter. Whilekalman_filter
can already do so,kalman_likelihood
is optimized for performance, as it does not instantiate empty return values.
kalman_filter
runs about 20% more quicklyhamilton_smoother
andcarter_kohn_smoother
run about 5% more slowlykoopman_smoother
runs about 6% more quicklydurbin_koopman_smoother
runs about 13% more quickly
kalman_filter
- Replaced
allout::Bool
keyword 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 thatloglh
is the vector of conditional log-likelihoods, not the total log-likelihood. The outputsyprederror, ystdprederror, rmse, rmsd
are 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_filter
returns an additional output variable, a vector of marginal log-likelihoods