Skip to content

Timeseries distributions lack a random method #3964

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
AlexAndorra opened this issue Jun 15, 2020 · 6 comments
Closed

Timeseries distributions lack a random method #3964

AlexAndorra opened this issue Jun 15, 2020 · 6 comments

Comments

@AlexAndorra
Copy link
Contributor

None of our time series distributions have a random method implemented, except for GaussianRandomWalk -- and even then, there seems to be a problem with sample_prior_predictive, see #3962.

As a result, these distributions cannot be used in prior predictive sampling, and in posterior predictive sampling when they are observed.
Adding a random method to these distributions would thus be a valuable contribution!

@Rish001
Copy link
Contributor

Rish001 commented Jun 25, 2020

Hi I want to work on this

@AlexAndorra
Copy link
Contributor Author

Thanks @Rish001 ! Which distributions would you like to work on?

@Rish001
Copy link
Contributor

Rish001 commented Jun 25, 2020

Firstly I would like to fix #3962 and then move on to creating 'random' method for AR1 process.

@AlexAndorra
Copy link
Contributor Author

Great! Good coding and tell us if you have any questions 🖖

@NowanIlfideme
Copy link

During my master's thesis work I made some AR model generators that might be useful to look into, though the parametrization is a bit more general (N-dimensional VARX processes 😛). There are some problems I ran into though:

  • Do you generate a posterior sample of the entire process (e.g. from timestep 0 onwards), a conditional one (i.e. allow fixing values and generate continuations of the process from timestep t), or something else? I decided then to generate posteriors of the entire process, which is probably the expected case. However, this makes it harder to use for "rolling validation" and such, because you must recreate the model every time rather than using pm.Data. I'm not sure the best way to do that otherwise.

  • I couldn't figure out how to change the process shape when changing input data, e.g. when doing AR with exogenous regressors and trying to predict ahead. This is the problem with all time series processes, actually - the best I could come up with is to manually remove the samples for the time_series_process from the trace and forcing the random method.

Any thoughts on those two? Also I hope the code is helpful; I wanted to contribute a modification of it to pymc3, but felt it was too out-of-line from the other repo code & would take too much time from me to refactor...

@AlexAndorra
Copy link
Contributor Author

Closing in favor of #4337

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants