odtuyzt / chrono-kit

An open source time series analysis library for processing, analyzing, visualising and forecasting time series data
MIT License
9 stars 6 forks source link

Improve Initialization Functions #25

Closed hasanemirakin closed 1 year ago

hasanemirakin commented 1 year ago

We need better and more accurate initialization functions for both estimating the parameters (alpha, beta etc...) and initializing the components (level, trend, seasonals). This issue sometimes leads to unstable fitting results.

muguryalcin commented 1 year ago

I've created the pull request #44 which implements the basic template of maximum likelihood estimation for ETS models to initialize params and states. To implement this for every ETS model, we need to make private smoothing functions ( __smooth_level, __smooth_trend etc.) public so that we don't need to rewrite all of those functions again for MLE. I decided not to do that big change before discussing it. After doing that change, it is easy to implement the rest and I can do that very quickly.

Also after implementing MLE, we can implement diffuse initialization. I've done some research on this and tried to implement it but this was complicated to me so we can have multiple people working on this in the future.

hasanemirakin commented 1 year ago

MLE is okay for now, after some changes to the general code structure(maybe making the private functions you mentioned public) we can move on to other initialization functions. Will keep this issue open and notify when we can implement other methods

hasanemirakin commented 1 year ago

MLE initialization was implemented by @muguryalcin. We'll implement diffuse initialization after v0 is live

odtuyzt commented 1 year ago

Further discussion will be made under issue #52