s-broda / ARCHModels.jl

A Julia package for estimating ARMA-GARCH models.
https://juliaeconometrics.wordpress.com/
Other
90 stars 16 forks source link

GARCH-M #95

Open tbeason opened 2 years ago

tbeason commented 2 years ago

While I'm here and looking over the code, another thing that would be useful is the addition of a MeanSpec which includes the variance (or volatility or log volatility -- I'm not sure which is the most common convention).

I'm guessing it wouldn't represent a huge change? Would it be mostly a copy-paste of the code for Intercept?

s-broda commented 2 years ago

In principle that should work, yes. The new MeanSpec, e.g., GarchM, would basically need to implement the

mean(at, ht, lht, data, meanspec::GarchM{T}, meancoefs, t) where {T}

appropriately. However, one might also want users to be able to combine, e.g., ARMA together with GARCH-M. That would require a bigger redesign, e.g., via composition: all MeanSpecs could have a field GarchMSpec.

tbeason commented 2 years ago

I make no promises, but I predict myself needing the basic GARCH-M functionality soon (next couple of months), so I could perhaps tackle that.

I see what you are saying about extending the whole of the MeanSpec but I think that is way less common, isn't it? I can't recall off the top of my head any research in equity volatility that uses such a specification, for example (doesn't mean they don't exist I guess).

s-broda commented 2 years ago

You may be right about ARMA models, but I could imagine that people in empirical asset pricing might want a regression specification (another MeanSpec) to go with the GARCH-M term?

Having said that, maybe it doesn't hurt to implement the simple case first, and then generalizing later (though that would then be breaking).