Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

How to compare GARCH volatility forecast performance?

Aperta
#607 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
25/100
Tipo di issue
Documentazione
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python
Ambito
documentation

Direzione di ricerca

Start with the linked volatility-forecasting documentation and the arch_model / ARCHModelForecast APIs named in the issue. Clarify what variance represents and what target the author should use for evaluating forecasts; done means the three questions about interpretation, MSE, and the reported fit are answered.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I have a question regarding the evaluation of volatility forecasts using the arch_model class. I am very new, so I sincerely apologise if this is obvious, or if this is the wrong place to ask.

I want to forecast the daily volatility (for a test set of roughly 1000 obs) of stock returns using a GARCH model, and concretely using the arch package. After doing so, I want to measure the forecasting performance using the mean squared error.

I construct a model using mean adjusted and scaled returns arch_model(x_var, mean="Zero", vol="Garch", p=1, q=1) and I fit the model using model.fit(last_obs="2018-07-03", update_freq=10) to produce a fixed window forecast as in the tutorial in the documentation.

What I am having trouble with is:

  1. Correctly understanding the ARCHModelForecast object. Is it correct that the variance attribute is the prediction for the daily volatility?
  2. If yes, what value do I compare it to to calculate the MSE? My understanding for GARCH models was that you use squared returns as a proxy for volatility, but my model forecasts are nowhere near the returns, squared returns, or any other feature I have in my data set. Is it correct that I would compare the forecast values to the squared returns at the according time step to evaluate prediction performance?
  3. If yes, is the model I fitted just garbage? I copied the output for model_fit.summary() below. Any sugestions for improvements?

Before I go fiddle with different parameters, I want to make sure that my understanding of the concepts is correct.

I can post more code or an example of my dataset if this helps. Many thanks for your help!

Zero Mean - GARCH Model Results                         
=================================================================================
Dep. Variable:     Returns mean adjusted   R-squared:                       0.000
Mean Model:                    Zero Mean   Adj. R-squared:                  0.000
Vol Model:                         GARCH   Log-Likelihood:               -8545.06
Distribution:                     Normal   AIC:                           17096.1
Method:               Maximum Likelihood   BIC:                           17115.1
                                           No. Observations:                 4110
Date:                   Thu, Sep 01 2022   Df Residuals:                     4110
Time:                           11:40:24   Df Model:                            0
                              Volatility Model                             
===========================================================================
                 coef    std err          t      P>|t|     95.0% Conf. Int.
---------------------------------------------------------------------------
omega          0.0454  6.394e-02      0.710      0.478 [-7.994e-02,  0.171]
alpha[1]       0.0612  5.064e-02      1.209      0.227 [-3.804e-02,  0.160]
beta[1]        0.9319  6.049e-02     15.406  1.500e-53    [  0.813,  1.050]
===========================================================================

Covariance estimator: robust
Lingua principale
Python
Stelle
1.6k
Fork
298
Merge medio
14h 46m
PR unite (30g)
106

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di bashtage/arch

Tutte le issue di bashtage/arch

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.