TimeModels.jl icon indicating copy to clipboard operation
TimeModels.jl copied to clipboard

Do we actually need standalone Kalman filtering?

Open GordStephen opened this issue 8 years ago • 7 comments

I've been looking at Durbin and Koopman's smoothing algorithm (page 17 of this PDF) as a way to avoid repeatedly inverting the state covariance matrices - the method actually doesn't even require the filtered state distributions, only the prediction and observation innovation distributions and the Kalman gains.

Given that this package is only designed for offline analysis, are there any real-world situations where it would be necessary to explicitly filter - but not smooth - a time series? Could we get away with removing the filtering function and type, and just consolidating its relevant elements into the smoothing function? It would save a fair bit of computation and memory allocation during smoothing, and simplify the code base as well.

This might also lead back into the discussions in https://github.com/JuliaStats/Roadmap.jl/issues/16 about how TimeModels.jl relates to Kalman filtering in Julia more broadly... Ideally I'd say Julia would have a fully-featured Kalman package that did filtering + smoothing, online + offline analysis, etc, and we could just use the relevant pieces here, but I definitely don't think TimeModels.jl should be that package - we shouldn't be implementing more than is necessary (in the context of the current package ecosystem) for fitting statistical time-series models.

As I see it, our filtering right now is just a means to an end, and not an end itself, but there may be other use cases I'm not aware of. @codles, your last PR hinted that you might be doing standalone filtering, is that the case?

GordStephen avatar Oct 08 '15 18:10 GordStephen