-
Notifications
You must be signed in to change notification settings - Fork 19
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
Feature wishlist #60
Comments
Thanks for the praise! Are you thinking about automatic lag order selection? The package can already to that, see the documentation here. The short of it is that the function |
@s-broda I'm embarrassed to say I missed that part of the docs. I see it now & it's great! A table like this in the docs might help other users better see the "menu" of options: Turns out you have a lot more than I see the source here but I'm not sure I fully understand yet. Below I will call model tuning parameters HP (hyper-parameters).
|
Hi @azev77 I like the table. Would you be able to open a pull request? I think it would best fit here. The code for this is here. Otherwise, you could post the markdown code and I'll add it (it seems to be included as a picture in your code). About your other points:
This will minimize the BIC over all lag lengths, distributions, and GARCH model classes. I've added this to the documentation in #61.
Once CI passes, I'll merge #61 and release version 1.1. Would be cool if you could try out the new features (multi-step forecasting and minlags). Thanks for your input! |
Let me clarify what I meant by resampling above (my point # 3).
There are many different ways to do this. There are different types of resampling techniques (eg K-fold CV). There are many different scores. Update: I think I figured out what The updated list of potential feature requests:
|
I agree that we'd need to use cross validation to get an unbiased estimate of the BIC, but as far as I can tell that's usually not what people do in this literature; they just pick the model that minimizes the BIC (or AIC) in-sample. Also, these data aren't IID, so you'd need to do something fancier than just K-fold CV. In principle this could be implemented as a scoring function that could be passed to Thanks for the wishlist! I'll see what I can add in the future. My funding for working on this has run out, so I don't have as much time for working on this. PRs are welcome though! |
Note that GJR is the same as TGARCH, so this is already implemented. |
Those two are clearly not the same (different power of sigma). Usually TGARCH is understood to be what's called GJR above. |
Btw, it's common for packages to show off benchmarks (w/ R & Python) in the Readme: Or even better, add a nice benchmark figure like here. |
Yeah, I had thought about that. The best would be to have the benchmarks run on CI automatically, but that's not a good idea because you're not guaranteed a specific machine there. |
@s-broda |
Hi @azev77 Sure! Basically you just need to follow the structure in TGARCH.jl. I.e. (using You then implement the following functions:
julia>julia> mask = ARCHModels.subsetmask(TGARCH{2, 2, 2}, (0, 1, 1))
7-element BitArray{1}:
1
0
0
1
0
1
0
julia> ARCHModels.subsettuple(TGARCH{2, 2, 2}, mask)
(0, 1, 1) These last two functions are identical for With the above done, you should get simulation, fitting, model selection, etc. for free. Have fun! |
@s-broda you may have seen this, the textbook Financial Risk Forecasting now uses ARCHModels.jl. |
Cool, thanks for the pointer! APARCH should be coming soon. |
Hello, first thanks for all the hard work that went into this great package! I was wondering if allowing to fit ARMA models directly would still fit within the scope. I know that I can do: fit(ARCH{0}, data; meanspec=ARMA{p,q}) but a wrapper like this would be very neat: fit(ARMA{p,q}, data) I'm saying this since it took me a minute to figure this out from the docs and I was close to moving on ;) fit(ARMA{p,q}, data; meanspec=NoIntercept()) |
Thanks for the suggestion. The convenience methods for Fitting ARMA models w/o intercept the way you suggest would require a bigger rewrite, so this is unlikely to happen. It would be quite easy though to implement an additional |
Hi and thanks for the awesome package!
It's becoming common to automate time-series models.
Forecast.R has auto.arima() which returns the "best" Arima model according to some criteria defined by the user.
It would be awesome if your package has some options to select the "best" ARCH model.
Here is some discussion about doing this in R.
Also check out this post.
Thanks again for your awesome package.
The text was updated successfully, but these errors were encountered: