-
-
Notifications
You must be signed in to change notification settings - Fork 185
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
Functions to ensure stationarity in autoregression and invertibility in moving average parameters #309
Comments
Yeah, we have needed these for a long time. |
It would be awesome to have a stationary type, and the jacobians are available in (one of the many) sources of this transformation: Monahan, John F. 1984. “A Note on Enforcing Stationarity in Autoregressive-moving Average Models.” Biometrika 71 (2) (August 1): 403-404. Also, it is probably less in demand, but statsmodels has functions that extend it to the multivariate case. |
If you can implement the transfrom from unconstrained to constrained and the log Jacobian, I can add the type to the language. We can speed up a lot of those functions above with tighter bounds and vectorization, but we can look at it in C++ rather than trying to make the Stan functions faster. |
What should we call the type? Maybe stationary_vector or AR_vector or On Mon, Jul 4, 2016 at 4:34 PM, Bob Carpenter notifications@github.com
|
How about stationary_ar with the understanding that it's
|
Maybe but stationary_ar is not my fav because y is stationary if these On Mon, Jul 4, 2016 at 4:41 PM, Bob Carpenter notifications@github.com
|
I can't think of a good name for the type either, I had a hard enough time trying to write the title of this issue. Maybe For the informative prior, we could create a atanh-beta distribution, where X ~ atanh_beta(a, b) = atanh((X + 1) / 2) ~ beta(a, b). |
I'd be OK with |
stationary_basis? Having to write out “stationary” is a bit burdensome, so what aobut On Jul 5, 2016, at 2:49 AM, Bob Carpenter notifications@github.com wrote:
|
But that's what autocomplete is for |
It'll take me a little bit of time to get re-familiarized with the C++ library since it's been so long since I looked at it, so I'll have a few questions. |
See also https://arxiv.org/abs/1406.4584 for the vector case |
I'm curious whatever happened to this? It would definitely be nice to have. |
If anyone else comes across this page and attempts to use the code - I'm pretty sure the
and you don't need the inverse or the log abs det jacobian if you set your priors on the auto-correlations and constrain them to [-1, 1]. |
@elbamos --- thanks for th clarification. |
Summary:
Provide function to constrain a vector to the space of coefficients of stationary autoregressive functions and invertible moving-average functions.
Description:
When estimating ARMA time series models they are not stationary if the roots of the characteristic polynomial of the AR part lie outside the unit circle, or the roots of the characteristic polynomial of the MA part lie outside the unit circle. Since this space gets complicated once the order of those polynomials gets beyond 2, it would be useful to have functions that convert from the real line to this space, and the inverse. This issue is mentioned on p 95 of the v2.10.0 manual, and the constraint is manually imposed in the GARCH(1,1) model on p. 90. These functions would make it possible to ensure stationary of the coefficients of ARMA(p, q) and related time series models.
Below I provide Stan functions that implement the necessary transformations, described in Monahan (1984) and Jones (1987). I could reimplement them in C++ if this is of interest.
References
Expected Output:
Additional Information:
Stan functions implementing these transformations.
Provide any additional information here.
Current Version:
v2.9.0
The text was updated successfully, but these errors were encountered: