VAR(1)-BEKK-GARCH(1,1) Model

Discussions of ARCH, GARCH, and related models

Re: VAR(1)-BEKK-GARCH(1,1) Model

jack wrote:Dear Tom,

1. Suppose I have daily data for two markets: exchange rate and stock market.
Suppose that a shock occurs in one of these markets (exchange rate, fore example) and the other market (stock market) reacts but after a month (or even later) to that news or shock (for any reason). Can a GARCH-BEKK model with daily data capture this reaction of the second market to the first market's shock? (a12 or b12 ≠0 )

That seems a bit far-fetched, but if you're talking about a volatility effect, then no. You could put a long lag into a mean model if it's a level effect.

jack wrote:2. When I want to look at autocorrelations of residuals, which residuals I should use: stdseries=zu option OR rseries=rs option (and its standardized form)?

Standardized. The raw residuals will be dominated by the high variance parts of the sample.

jack wrote:3. How I can determine DFC for @regcorrs after a VAR-BEKK model? (univariate standardized residuals and univariate squared standardized residuals) (in the arch-garch course (1ed) you used dfc=2 for squared standardized residuals of a MV-GARCH Diagonal Model with three variable).

Degrees of freedom corrections in general are only an attempt to give a more conservative view of the test statistic---it's only for the Ljung-Box Q statistic for an ARMA model where there is an actual asymptotic result. For @MVQSTAT, the DFC that would be suggested is the number of lag coefficients in the model (typically NxNxlags). The fact that it's BEKK doesn't change that.
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

Is it possible to get the conditional variance equation in a trivariate BEKK model in RATS
Attachments
conditional variance equation.PNG (74.36 KiB) Viewed 17881 times
ABDHUT123

Posts: 13
Joined: Thu Aug 02, 2018 9:37 am

Re: VAR(1)-BEKK-GARCH(1,1) Model

It's possible. In practice, it's a waste of paper.

viewtopic.php?f=11&t=846&p=15694
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

TomDoan wrote:It depends upon what "doesn't converge" means. If it didn't converge in the standard number of iterations without any nasty looking messages, then just increase the ITERATIONS option. If it gives you a message that the estimation stalled, then it's possible that you're trying to fit a GARCH model to a data set that isn't well explained by a GARCH model. If you can post the output that you're getting, I can probably help you more.

Hi, for my oil prices and sectoral stock market analysis, for two sectors i am getting no convergence issues. What should i do in this case ? Data is attached

Commands used:

garch(p=1,q=1,mv=bekk, pmethod=simplex, piters=10) / RIT RBRENT
garch(p=1,q=1,mv=bekk, pmethod=simplex, piters=10) / RMETAL RBRENT

I am using daily returns data .

MV-GARCH, BEKK - Estimation by BFGS
NO CONVERGENCE IN 71 ITERATIONS. FINAL NORMED GRADIENT 0.00003
ESTIMATION POSSIBLY HAS STALLED OR MACHINE ROUNDOFF IS MAKING FURTHER PROGRESS DIFFICULT
TRY DIFFERENT SETTING FOR EXACTLINE, DERIVES OR ALPHA ON NLPAR
RESTARTING ESTIMATION FROM LAST ESTIMATES OR DIFFERENT INITIAL GUESSES/PMETHOD OPTION MIGHT ALSO WORK

Usable Observations 993
Log Likelihood -3822.9895

Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(RIT) 0.095281010 0.040286720 2.36507 0.01802655
2. Mean(RBRENT) 0.040053073 0.051438217 0.77866 0.43617784

3. C(1,1) 0.713492444 0.014909417 47.85516 0.00000000
4. C(2,1) -0.131400151 0.019148189 -6.86228 0.00000000
5. C(2,2) -0.139367607 0.019703816 -7.07313 0.00000000
6. A(1,1) 0.434163351 0.042347746 10.25234 0.00000000
7. A(1,2) 0.043712949 0.032439769 1.34751 0.17781568
8. A(2,1) -0.154098514 0.034545262 -4.46077 0.00000817
9. A(2,2) 0.174221263 0.017772214 9.80301 0.00000000
10. B(1,1) 0.760407569 0.015056796 50.50261 0.00000000
11. B(1,2) -0.001793662 0.006426949 -0.27908 0.78017994
12. B(2,1) 0.076636570 0.008542320 8.97140 0.00000000
13. B(2,2) 0.977216761 0.002635335 370.81315 0.00000000

MV-GARCH, BEKK - Estimation by BFGS
NO CONVERGENCE IN 79 ITERATIONS. FINAL NORMED GRADIENT 0.00000
ESTIMATION POSSIBLY HAS STALLED OR MACHINE ROUNDOFF IS MAKING FURTHER PROGRESS DIFFICULT
TRY DIFFERENT SETTING FOR EXACTLINE, DERIVES OR ALPHA ON NLPAR
RESTARTING ESTIMATION FROM LAST ESTIMATES OR DIFFERENT INITIAL GUESSES/PMETHOD OPTION MIGHT ALSO WORK

Usable Observations 993
Log Likelihood -4052.5506

Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(RMETAL) 0.019665097 0.050183782 0.39186 0.69516047
2. Mean(RBRENT) 0.059342416 0.051294665 1.15689 0.24731626

3. C(1,1) -0.194495308 0.051952432 -3.74372 0.00018132
4. C(2,1) 0.172827697 0.028015758 6.16895 0.00000000
5. C(2,2) 0.000030214 0.310644711 9.72628e-05 0.99992240
6. A(1,1) 0.254330859 0.021985268 11.56824 0.00000000
7. A(1,2) 0.006438636 0.022886778 0.28133 0.77846068
8. A(2,1) -0.071780207 0.024196247 -2.96658 0.00301128
9. A(2,2) 0.165354566 0.005403083 30.60374 0.00000000
10. B(1,1) 0.956794227 0.007940352 120.49771 0.00000000
11. B(1,2) -0.003683154 0.003819523 -0.96430 0.33489716
12. B(2,1) 0.028917814 0.006399546 4.51873 0.00000622
13. B(2,2) 0.982374215 0.001702984 576.85457 0.00000000
Attachments
pre_returns.xlsx
curiousresearcher

Posts: 41
Joined: Sun May 19, 2019 9:56 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

That looks like it's pretty close to working. If you add

nlpar(derives=second)

before the GARCH instructions (which forces it to use more accurate numerical derivatives), it looks like it will work.
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

TomDoan wrote:That looks like it's pretty close to working. If you add

nlpar(derives=second)

before the GARCH instructions (which forces it to use more accurate numerical derivatives), it looks like it will work.

Thanks it worked.
curiousresearcher

Posts: 41
Joined: Sun May 19, 2019 9:56 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

Hi Tom,

Could you please show me how to save GARCH variance series as a new variable when estimating M-GARCH type models?

I have read through the GARCH instructions. But I cannot make GARCH variance series for univariate GARCH? Or bivariate GARCH.

hungufm

Posts: 13
Joined: Tue Dec 11, 2018 6:00 am

Re: VAR(1)-BEKK-GARCH(1,1) Model

hI Tom,

I am using bivariate BEKK-GARCH Model to check volatility spillover across commodity and stock market. I am running the model separately for each commodity with stock index. Can you please guide me on what are the tests i am supposed to run before running the BEKK model also how to run the diagnostic test for the same. I will post the results of the model I had run for one commodity and stock market.

OPEN DATA "C:\Users\ItzmeSandra\Desktop\new commodity prices\aluminium prices.xlsx"
DATA(FORMAT=XLSX,ORG=COLUMNS,LEFT=2) 1 2952 AL NSE500
set dal = 100* log(al/al{1})
set dnse = 100* log(nse500/nse500{1}
GARCH(P=1,Q=1,MV=BEKK,METHOD=BHHH) / DAL DNSE

MV-GARCH, BEKK - Estimation by BHHH
Convergence in 48 Iterations. Final criterion was 0.0000096 <= 0.0000100

Usable Observations 2951
Log Likelihood -9707.2100

Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(DAL) -0.007834183 0.025370655 -0.30879 0.75748192
2. Mean(DNSE) 0.056852098 0.018113943 3.13858 0.00169767

3. C(1,1) 0.357537345 0.021378061 16.72450 0.00000000
4. C(2,1) -0.004354554 0.018625963 -0.23379 0.81514843
5. C(2,2) 0.098246127 0.010122502 9.70572 0.00000000
6. A(1,1) 0.261766589 0.011285652 23.19464 0.00000000
7. A(1,2) -0.030701020 0.010936228 -2.80728 0.00499623
8. A(2,1) 0.053839178 0.012188423 4.41724 0.00001000
9. A(2,2) 0.245321857 0.009486458 25.86022 0.00000000
10. B(1,1) 0.932511870 0.006088815 153.15161 0.00000000
11. B(1,2) 0.008957318 0.005491892 1.63101 0.10288871
12. B(2,1) -0.010095742 0.003514202 -2.87284 0.00406799
13. B(2,2) 0.966757649 0.002195412 440.35356 0.00000000
sandra_suresh80

Posts: 2
Joined: Thu Jul 18, 2019 1:43 am

Re: VAR(1)-BEKK-GARCH(1,1) Model

hungufm wrote:Hi Tom,

Could you please show me how to save GARCH variance series as a new variable when estimating M-GARCH type models?

I have read through the GARCH instructions. But I cannot make GARCH variance series for univariate GARCH? Or bivariate GARCH.

The variances themselves are the diagonals of what's returned using the HMATRICES option. So, in the GARCHMV.RPF example, after

garch(p=1,q=1,mv=dcc,variances=koutmos,hmatrices=hh) / \$
xjpn xfra xsui

you could so something like

set jpnvar = hh(t)(1,1)
set fravar = hh(t)(2,2)
set suivar = hh(t)(3,3)

to get the three variances.
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

sandra_suresh80 wrote:hI Tom,

I am using bivariate BEKK-GARCH Model to check volatility spillover across commodity and stock market. I am running the model separately for each commodity with stock index. Can you please guide me on what are the tests i am supposed to run before running the BEKK model also how to run the diagnostic test for the same. I will post the results of the model I had run for one commodity and stock market.

OPEN DATA "C:\Users\ItzmeSandra\Desktop\new commodity prices\aluminium prices.xlsx"
DATA(FORMAT=XLSX,ORG=COLUMNS,LEFT=2) 1 2952 AL NSE500
set dal = 100* log(al/al{1})
set dnse = 100* log(nse500/nse500{1}
GARCH(P=1,Q=1,MV=BEKK,METHOD=BHHH) / DAL DNSE

MV-GARCH, BEKK - Estimation by BHHH
Convergence in 48 Iterations. Final criterion was 0.0000096 <= 0.0000100

Usable Observations 2951
Log Likelihood -9707.2100

Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(DAL) -0.007834183 0.025370655 -0.30879 0.75748192
2. Mean(DNSE) 0.056852098 0.018113943 3.13858 0.00169767

3. C(1,1) 0.357537345 0.021378061 16.72450 0.00000000
4. C(2,1) -0.004354554 0.018625963 -0.23379 0.81514843
5. C(2,2) 0.098246127 0.010122502 9.70572 0.00000000
6. A(1,1) 0.261766589 0.011285652 23.19464 0.00000000
7. A(1,2) -0.030701020 0.010936228 -2.80728 0.00499623
8. A(2,1) 0.053839178 0.012188423 4.41724 0.00001000
9. A(2,2) 0.245321857 0.009486458 25.86022 0.00000000
10. B(1,1) 0.932511870 0.006088815 153.15161 0.00000000
11. B(1,2) 0.008957318 0.005491892 1.63101 0.10288871
12. B(2,1) -0.010095742 0.003514202 -2.87284 0.00406799
13. B(2,2) 0.966757649 0.002195412 440.35356 0.00000000

Diagnostics are pretty much the same regardless of the type of multivariate GARCH model:

https://estima.com/docs/RATS%2010%20Use ... f#page=333

Preliminaries generally involve graphing the data to make sure there are no serious problems, such as clear structural breaks, and seeing whether there is a need for a dynamic model to get rid of serial correlation---stock market returns usually don't show that, but commodities might.

I would strongly recommend that you read the April 2019 newsletter article on tests for spillover.
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

Hi,

Just a quick question.

When I estimate a VAR(1)-BEKK-GARCH(1,1) model, am I estimating these jointly, i.e. would it be equivalent to estimating the VAR, storing the residuals and then estimating a GARCH separately?

I am simply using the wizard to estimate this.

Thanks
1003064

Posts: 2
Joined: Mon Jul 22, 2019 3:07 am

Re: VAR(1)-BEKK-GARCH(1,1) Model

What you are describing after the i.e. would be the opposite of jointly---that would be sequentially, or a two-step estimator. They are estimated jointly, that is, the likelihood if maximized including both the lag coefficients in the VAR and the parameters of the GARCH model.
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

TomDoan wrote:
sandra_suresh80 wrote:hI Tom,

I am using bivariate BEKK-GARCH Model to check volatility spillover across commodity and stock market. I am running the model separately for each commodity with stock index. Can you please guide me on what are the tests i am supposed to run before running the BEKK model also how to run the diagnostic test for the same. I will post the results of the model I had run for one commodity and stock market.

OPEN DATA "C:\Users\ItzmeSandra\Desktop\new commodity prices\aluminium prices.xlsx"
DATA(FORMAT=XLSX,ORG=COLUMNS,LEFT=2) 1 2952 AL NSE500
set dal = 100* log(al/al{1})
set dnse = 100* log(nse500/nse500{1}
GARCH(P=1,Q=1,MV=BEKK,METHOD=BHHH) / DAL DNSE

MV-GARCH, BEKK - Estimation by BHHH
Convergence in 48 Iterations. Final criterion was 0.0000096 <= 0.0000100

Usable Observations 2951
Log Likelihood -9707.2100

Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(DAL) -0.007834183 0.025370655 -0.30879 0.75748192
2. Mean(DNSE) 0.056852098 0.018113943 3.13858 0.00169767

3. C(1,1) 0.357537345 0.021378061 16.72450 0.00000000
4. C(2,1) -0.004354554 0.018625963 -0.23379 0.81514843
5. C(2,2) 0.098246127 0.010122502 9.70572 0.00000000
6. A(1,1) 0.261766589 0.011285652 23.19464 0.00000000
7. A(1,2) -0.030701020 0.010936228 -2.80728 0.00499623
8. A(2,1) 0.053839178 0.012188423 4.41724 0.00001000
9. A(2,2) 0.245321857 0.009486458 25.86022 0.00000000
10. B(1,1) 0.932511870 0.006088815 153.15161 0.00000000
11. B(1,2) 0.008957318 0.005491892 1.63101 0.10288871
12. B(2,1) -0.010095742 0.003514202 -2.87284 0.00406799
13. B(2,2) 0.966757649 0.002195412 440.35356 0.00000000

Diagnostics are pretty much the same regardless of the type of multivariate GARCH model:

https://estima.com/docs/RATS%2010%20Use ... f#page=333

Preliminaries generally involve graphing the data to make sure there are no serious problems, such as clear structural breaks, and seeing whether there is a need for a dynamic model to get rid of serial correlation---stock market returns usually don't show that, but commodities might.

I would strongly recommend that you read the April 2019 newsletter article on tests for spillover.

Hi Tom,
I wanted to ask that when i check for structural break for instance I might get two different break dates for stock and commodity market. In that case suppose I wish to include dummy variable for the break period, how do i divide the data into two as there are two different break dates for each of the series.
Also could you tell me how to include the dummy variable in the mean equation of a VAR- BEKK- GARCH model.
sandra_suresh80

Posts: 2
Joined: Thu Jul 18, 2019 1:43 am

Re: VAR(1)-BEKK-GARCH(1,1) Model

Are you talking about an actual break (process is different on (1,T0) than on (T0+1,end)) or are you talking about an outlier? A structural break in the mean of a return series seems somewhat odd, though I guess it's possible.

If it's an actual structural break, you probably want to include the dummies in each mean equation (thus there would be three different ranges) as otherwise you can run into problems with the lagged "other" variables in an equation when the "other" series has just had a transition.
TomDoan

Posts: 7385
Joined: Wed Nov 01, 2006 5:36 pm

Re: VAR(1)-BEKK-GARCH(1,1) Model

Dear Tom.
https://www.sciencedirect.com/science/article/pii/S0140988320303054, authors estimate Partial co-volatility spillovers for a VAR(1)-DBEKK(1,1) model. They estimate it as A(i,i)*A(j,j)*e(j,t-1) where e(j,t-1) is the mean return shock. I know how to get A but what about the mean return shock e(j,t-1)? How can I get it when I estimate a DBEKK model?
jack

Posts: 123
Joined: Tue Sep 27, 2016 11:44 am

PreviousNext