microprediction / timemachines

Predict time-series with one line of code.
https://www.microprediction.com/blog/popular-timeseries-packages
MIT License
405 stars 51 forks source link

Orbit skater #12

Open microprediction opened 3 years ago

microprediction commented 3 years ago

New package from Uber, Orbit.

microprediction commented 3 years ago

It's in and on the Elo ratings. I'll close this.

edwinnglabs commented 3 years ago

I have a couple of comments about orbit:

  1. the pypi link from the leaderboard should be orbit-ml
  2. most of the models assume users will take care the scaling themselves e.g. min-max transformation, std-transformation, log, ... etc. should we include the logic for lgt?
  3. please let me know if you need help in on-boarding models in orbit further. This is an interesting project!
microprediction commented 3 years ago

Hi @edwinnglabs

  1. orbit-ml shows now. (By the way I moved pypi location lookup to a more prominent place in the code here to avoid missing links in the future.

  2. Yes absolutely, we'd appreciate thoughts on how to make fully autonomous skaters, and we can label them according to different choices made.

  3. Hell yeah. I added 43 just in case we want to close this, though happy to keep it open. Also I'll add a few residual chasers, stacks.

edwinnglabs commented 2 years ago

Sorry for the delayed response. After a long break...I'm checking the orbit_wrapper here now but I would also like to test it end-to-end. So i'm still looking for some standard way to generate the sample input. For example, I want to understand how does the input y, k, a, t, seasonality look like usually.

Then I try to check in this but I'm not sure that is the right place. Also I'm checking here but again not sure if that is the right place to look for an offline end-to-end test.

microprediction commented 2 years ago

Edwin, Would you like to trace in? Maybe run the unit test ?

microprediction commented 2 years ago

Or if you like I can hack this elo script so that it runs orbit skaters every time.

edwinnglabs commented 2 years ago

just curious - why do we have lgt_12 and lgt_24 together in the same dashboard? I suppose they are working on different series: monthly series vs. daily series (just my guess with the input 12 and 24)?

edwinnglabs commented 2 years ago

Or if you like I can hack this elo script so that it runs orbit skaters every time.

Maybe let me try studying a bit on the notebooks here first?

microprediction commented 2 years ago

Notebooks, sure. As for the lgt_12 and 24 that's a bit of laziness on my part. Ideally the models should be autonomous and figure out what they want to do.

edwinnglabs commented 2 years ago

I've finished the notebooks part for a simple lgt. But that just works for strictly positive values series. I'm also trying to create a DLT model. However, I got stuck finding how we get the information of seasonality or inferred frequency from the data set.

microprediction commented 2 years ago

Maybe we should loop in Fred as he has done precisely that in the nns module, though I'm not sure that part is ported to python. Another idea would be to look at the existing seasonality tests and decide whether the skater applies them periodically, or whether there is an online version of it. Maybe the river folks have looked at something similar. https://riverml.xyz/latest/

microprediction commented 2 years ago

@ovvo-financial

microprediction commented 2 years ago

Hmmm, come to think of it, a reasonable seasonality inference might just use the ratios of explained/unexplained as with nns, and those calculations have online equivalents - I might even already have them in precise or something very similar.

rspadim commented 2 years ago

you can try NNS with r2py NNS.seas() + r2py pandas (https://rpy2.github.io/doc/latest/html/generated_rst/pandas.html#from-pandas-to-r)

at R side you use NNS.seas() just to return the function using pandas dataframe (i think it accept numpy too)

microprediction commented 2 years ago

I don't have much experience using rpy2. Is this really going to work well in an otherwise pure python package? Will my M1 burst into flames?

rspadim commented 2 years ago

well it's not too heavy, but it's not the best of worlds (R and python), for a small test and check if NNS works in this system, it's ok to test