The VARMAX Procedure

Example 42.4 Analysis of Euro Foreign Exchange Reference Rates

(View the complete code for this example.)

This example illustrates how to use and select the VARMA-GARCH model for exchange rates, a general type of financial data. As shown in much of the literature, the financial variables are cross-correlated and autocorrelated not only on first moments, but also on second moments. The VARMA-GARCH model and the vector error correction GARCH model are often used to catch the stylized fact.

The data, downloaded from European Central Bank website (https://www.ecb.europa.eu), consist of four pairs of daily foreign exchange reference rates: the euro and the Australian dollar (AUD), the euro and the British pound sterling (GBP), the euro and the Japanese yen (JPY), and the euro and the US dollar (USD). The full sample covers the period from January 4, 1999, to February 12, 2015 (4,127 days). In the following statements, the series are logarithmically transformed, and the returns (in percentage) are calculated:

title 'Analysis of Euro Foreign Exchange Reference Rates';
data eurofxrr;
   input date : MMDDYY10. aud gbp jpy usd;
   label aud='The euro and the Australian dollar'
         usd='The euro and the U.S. dollar'
         jpy='The euro and the Japanese yen'
         gbp='The euro and the British pound sterling';
   logAUD = log(AUD); logGBP = log(GBP);
   logJPY = log(JPY); logUSD = log(USD);
   rAUD = (logAUD - lag(logAUD))*100;
   rGBP = (logGBP - lag(logGBP))*100;
   rJPY = (logJPY - lag(logJPY))*100;
   rUSD = (logUSD - lag(logUSD))*100;
datalines;
01/04/1999    1.9100    0.71110    133.73    1.1789
01/05/1999    1.8944    0.71220    130.96    1.1790
01/06/1999    1.8820    0.70760    131.42    1.1743
01/07/1999    1.8474    0.70585    129.43    1.1632

   ... more lines ...   

02/10/2015    1.4522    0.74200    134.67    1.1297
02/11/2015    1.4606    0.73960    135.50    1.1314
02/12/2015    1.4761    0.73760    135.72    1.1328
;

Although it is well known that unit roots exist in the exchange rate series and they are not cointegrated, you can use the following statements to verify:

/*--- Unit Roots and Cointegration in Log Exchange Rates ---*/

proc varmax data=eurofxrr;
   model logAUD logGBP logJPY logUSD / p=2 dftest cointtest;
run;

According to the results of the Dickey-Fuller unit root tests shown in Output 42.4.1, the null hypothesis that there is a unit root in each series cannot be rejected at the 5% significance level. The results of the Johansen cointegration rank trace tests shown in Output 42.4.2 confirm that there is no cointegration between series because the null hypothesis that the cointegration rank is 0, in both unrestricted and restricted cases, cannot be rejected at the 5% significance level. Because there is no cointegration, you do not need to consider vector error correction models; otherwise, the final selected model might be a vector error correction GARCH model, instead of a VARMA-GARCH model.

Output 42.4.1: Dickey-Fuller Unit Root Tests

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Unit Root Test
VariableTypeRhoPr < RhoTauPr < Tau
logAUDZero Mean-1.050.4644-1.080.2549
 Single Mean-9.440.1549-2.310.1683
 Trend-13.850.2287-2.630.2657
logGBPZero Mean-0.570.5554-0.590.4630
 Single Mean-3.230.6297-1.270.6445
 Trend-11.110.3666-2.270.4502
logJPYZero Mean0.000.68360.020.6894
 Single Mean-6.110.3394-1.730.4140
 Trend-6.560.7000-1.830.6901
logUSDZero Mean-1.460.4014-0.880.3346
 Single Mean-3.290.6216-1.270.6471
 Trend-5.760.7638-1.470.8394


Output 42.4.2: Johansen Cointegration Rank Trace Tests

Cointegration Rank Test Using Trace
H0:
Rank=r
H1:
Rank>r
EigenvalueTracePr > TraceDrift in ECMDrift in Process
000.005936.68360.3601ConstantLinear
110.001812.14270.9269  
220.00084.77240.8319  
330.00031.30360.2532  

Cointegration Rank Test Using Trace Under Restriction
H0:
Rank=r
H1:
Rank>r
EigenvalueTracePr > TraceDrift in ECMDrift in Process
000.006037.12460.6151ConstantConstant
110.001812.17920.9921  
220.00084.79410.9855  
330.00031.30410.9066  


Before modeling returns, you can test whether unit roots still exist in the differenced data with the following statement:

/*--- Unit Roots in Returns and Model Specification ---*/
proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / p=2 dftest;
   test const; test ar(1); test ar(2);
run;

Output 42.4.3 shows that there is no unit root in each differenced series.

Output 42.4.3: Dickey-Fuller Unit Root Tests

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Unit Root Test
VariableTypeRhoPr < RhoTauPr < Tau
rAUDZero Mean-4242.70.0001-46.04<.0001
 Single Mean-4243.70.0001-46.04<.0001
 Trend-4244.20.0001-46.04<.0001
rGBPZero Mean-4358.40.0001-46.67<.0001
 Single Mean-4358.40.0001-46.67<.0001
 Trend-4358.50.0001-46.66<.0001
rJPYZero Mean-4181.40.0001-45.72<.0001
 Single Mean-4181.40.0001-45.72<.0001
 Trend-4181.90.0001-45.72<.0001
rUSDZero Mean-4306.80.0001-46.40<.0001
 Single Mean-4306.80.0001-46.39<.0001
 Trend-4307.40.0001-46.39<.0001


The preceding statements also test whether the constant and each of two lags of AR terms are 0. The test results are shown in Output 42.4.4.

Output 42.4.4: Tests on Constant and AR Terms

Testing of the Parameters
TestDFChi-SquarePr > ChiSq
140.460.9776
21659.42<.0001
31615.670.4759


The null hypothesis that the constant term is 0 and the null hypothesis that the second lag AR term is 0 are both accepted at the 5% significance level. However, the null hypothesis that the first lag AR term is 0 is rejected at the 5% significance level. In the remaining model selection process, only the first lag AR term is considered.

The following statements estimate a zero-mean VAR(1) model and also print some diagnostic results:

/*--- VAR Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1 print=(diagnose);
run;

Output 42.4.5 shows the information criteria for the estimated zero-mean VAR(1) model. In this example, AICC is used as the criterion for model selection: the smaller the AICC, the better the model.

Output 42.4.5: Information Criteria for the VAR Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-1745.29
HQC-1687.44
AIC-1745.64
SBC-1581.19
FPEC0.011938


Diagnostics are printed because the PRINT=(DIAGNOSE) option is specified. As shown in Output 42.4.6, the null hypotheses that there is no ARCH effect in each series are all rejected at the 5% significance level.

Output 42.4.6: Tests on ARCH Effects

Univariate Model White Noise Diagnostics
VariableDurbin
Watson
NormalityARCH
Chi-SquarePr > ChiSqF ValuePr > F
rAUD1.998118277.31<.0001217.35<.0001
rGBP1.996012537.71<.0001315.25<.0001
rJPY2.000072456.22<.0001149.75<.0001
rUSD1.999591398.54<.0001157.85<.0001


To find the right GARCH model, you can start with the VAR(1)-CCC-GARCH(1,1) model (which is usually the fastest one to be estimated) as in the following statement:

/*--- VAR CCC GARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=ccc;
run;

Compared to the AICC for the zero-mean VAR(1) model (shown in Output 42.4.5), the AICC for VAR(1)-CCC-GARCH(1,1) model, as shown in Output 42.4.7, dramatically decreases, which means that the ARCH effects do play an important role and should be modeled.

Output 42.4.7: Information Criteria for VAR CCC GARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-4646.77
HQC-4571.24
AIC-4647.35
SBC-4432.31
FPEC0.011966


As indicated by its name, a basic assumption of the CCC GARCH model is that the conditional correlation is time-invariant, which might not be true. The following statements estimate a BEKK GARCH model to see whether modeling the conditional correlation could improve the model performance:

/*---  VAR BEKK GARCH Model ---*/

proc varmax data=eurofxrr outest=oediagbekk;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=bekk;
run;

As shown in Output 42.4.8, the AICC for the VAR BEKK GARCH model does get smaller than the AICC for the CCC GARCH model (shown in Output 42.4.7). The smaller AICC implies that the assumption of the CCC GARCH model might be inaccurate.

Output 42.4.8: Information Criteria for VAR BEKK GARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5667.7
HQC-5539.55
AIC-5669.38
SBC-5302.54
FPEC0.011979


One shortcoming of the BEKK GARCH model is that it has too many parameters. In practice, especially for a large number of dependent variables, the scalar BEKK GARCH model and the diagonal BEKK GARCH model are often applied, as shown in the following statements. In the RESTRICT statement, matrix operations are used; using matrix operations is much more concise than restricting tens of ARCH and GARCH parameters one by one.

/*--- VAR Scalar BEKK GARCH Model ---*/

proc varmax data=eurofxrr outest=oediagbekk;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=bekk;
   restrict ach(1)=ach(1,1,1)*I(4), gch(1)=gch(1,1,1)*I(4);
run;
/*--- VAR Diagonal BEKK GARCH Model ---*/

proc varmax data=eurofxrr outest=oediagbekk;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=bekk;
   restrict ach(1)=ach(1)#I(4), gch(1)=gch(1)#I(4);
run;

The AICCs for the scalar and diagonal BEKK GARCH models are shown in Output 42.4.9 and Output 42.4.10, respectively, and both of them are larger than the AICC for the BEKK GARCH model (shown in Output 42.4.8). Hence, so far, the VAR BEKK GARCH model is the best.

Output 42.4.9: Information Criteria for VAR Scalar BEKK GARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5615.11
HQC-5552.83
AIC-5615.51
SBC-5438.41
FPEC0.011974


Output 42.4.10: Information Criteria for VAR Diagonal BEKK GARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5630.31
HQC-5554.78
AIC-5630.89
SBC-5415.85
FPEC0.011978


Another type of multivariate GARCH model that is suitable for modeling the time-varying conditional correlation is the dynamic conditional correlation (DCC) GARCH model, as indicated by its name. The following statements estimate the DCC GARCH model:

/*--- VAR DCC GARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc;
run;

As shown in Output 42.4.11, the AICC for the VAR DCC GARCH model is smaller than the AICC for the VAR BEKK GARCH model (shown in Output 42.4.8), implying that the best model should be in the class of DCC GARCH models.

Output 42.4.11: Information Criteria for VAR DCC GARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5689.43
HQC-5609.5
AIC-5690.08
SBC-5462.39
FPEC0.011973


Could the DCC GARCH model be more parsimonious? The following statements use the sample correlation matrix of the standardized residuals (saving six parameters) to calculate the unconditional correlation matrix in the DCC GARCH model:

/*--- Parsimonious VAR DCC GARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc corrconst=expect;
run;

The AICC of the parsimonious VAR DCC GARCH model, as shown in Output 42.4.12, becomes a little smaller. Hence, the best model so far is the parsimonious VAR DCC GARCH model.

Output 42.4.12: Information Criteria for the Parsimonious VAR DCC GARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5694.89
HQC-5628.19
AIC-5695.35
SBC-5505.6
FPEC0.011973


Another way to refine the model is to try different subforms of GARCH models for each series. The following statements estimate the VAR DCC EGARCH model and produce Output 42.4.13:

/*--- VAR DCC EGARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc subform=egarch corrconst=expect;
   nloptions maxit=5000 pall;
run;

The following statements estimate the VAR DCC PGARCH model and produce Output 42.4.14:

/*--- VAR DCC PGARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc subform=pgarch corrconst=expect;
   nloptions maxit=5000 pall;
run;

The following statements estimate the VAR DCC QGARCH model and produce Output 42.4.15:

/*--- VAR DCC QGARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc subform=qgarch corrconst=expect;
   nloptions maxit=5000 pall;
run;

The following statements estimate the VAR DCC TGARCH model and produce Output 42.4.16:

/*--- VAR DCC TGARCH Model ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc subform=tgarch corrconst=expect;
   nloptions maxit=5000 pall;
run;

Comparing the AICCs shown in Output 42.4.13 through Output 42.4.16, you find that the AICC for the VAR DCC PGARCH model is the smallest. Hence, the best model becomes the zero-mean VAR(1)-DCC-PGARCH(1,1) model, whose unconditional correlation matrix is estimated by the sample correlation matrix of the standardized residuals.

Output 42.4.13: Information Criteria for the Parsimonious VAR DCC EGARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5704.33
HQC-5628.81
AIC-5704.92
SBC-5489.87
FPEC0.011982


Output 42.4.14: Information Criteria for the Parsimonious VAR DCC PGARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5724.44
HQC-5640.1
AIC-5725.16
SBC-5484.82
FPEC0.011974


Output 42.4.15: Information Criteria for the Parsimonious VAR DCC QGARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5696.97
HQC-5621.44
AIC-5697.55
SBC-5482.51
FPEC0.011972


Output 42.4.16: Information Criteria for the Parsimonious VAR DCC TGARCH Model

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5705.59
HQC-5630.06
AIC-5706.17
SBC-5491.13
FPEC0.011973


Output 42.4.17 shows that most of the AR parameter estimates in the VAR DCC PGARCH model are not significant.

Output 42.4.17: AR Parameter Estimates for the Parsimonious VAR DCC PGARCH Model

Model Parameter Estimates
EquationParameterEstimateStandard
Error
t ValuePr > |t|Variable
rAUDAR1_1_10.057180.017903.190.0014rAUD(t-1)
 AR1_1_20.000420.023960.020.9859rGBP(t-1)
 AR1_1_3-0.023050.01619-1.420.1546rJPY(t-1)
 AR1_1_40.020050.020200.990.3211rUSD(t-1)
rGBPAR1_2_10.026860.011472.340.0193rAUD(t-1)
 AR1_2_20.045120.018802.400.0164rGBP(t-1)
 AR1_2_3-0.004620.01138-0.410.6845rJPY(t-1)
 AR1_2_4-0.046510.01475-3.150.0016rUSD(t-1)
rJPYAR1_3_10.056020.018453.040.0024rAUD(t-1)
 AR1_3_2-0.050110.02697-1.860.0632rGBP(t-1)
 AR1_3_3-0.001810.01893-0.100.9240rJPY(t-1)
 AR1_3_4-0.008390.02226-0.380.7061rUSD(t-1)
rUSDAR1_4_10.038520.015132.550.0109rAUD(t-1)
 AR1_4_20.005660.022900.250.8048rGBP(t-1)
 AR1_4_30.000840.014770.060.9548rJPY(t-1)
 AR1_4_4-0.032020.02011-1.590.1115rUSD(t-1)


The following statements test the significance of some parameter estimates:

/*--- Significance Of Some Parameter Estimates ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc subform=pgarch corrconst=expect;
   nloptions maxit=5000 pall;
   test ar(1, 1, 2:4), ar(1, 2, 3), ar(1, 3, 3:4), ar(1, 4, 2:4);
run;

As shown in Output 42.4.18, the null hypothesis that all nine of the parameters in the TEST statement are 0 cannot be rejected at the 5% significance level.

Output 42.4.18: Test on Significance of Some Parameter Estimates

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Testing of the Parameters
TestDFChi-SquarePr > ChiSq
197.360.6002


The following statements estimate the VAR DCC PGARCH model without those insignificant parameters:

/*--- VAR DCC PGARCH Model w/o Insignificant Parameters ---*/

proc varmax data=eurofxrr;
   model rAUD rGBP rJPY rUSD / noint p=1;
   garch p=1 q=1 form=dcc subform=pgarch corrconst=expect;
   nloptions maxit=5000 pall;
   restrict ar(1, 1, 2:4), ar(1, 2, 3), ar(1, 3, 3:4), ar(1, 4, 2:4);
run;

As shown in Output 42.4.19, the AICC does improve and decrease. Further refining the model is possible but beyond the scope of this example. Hence, the best model, according to the AICC, is the zero-mean VAR(1)-DCC-PGARCH(1,1) model without insignificant AR parameters, and its unconditional correlation matrix is estimated by the sample correlation matrix of the standardized residuals.

Output 42.4.19: Information Criteria for the VAR DCC PGARCH Model without Insignificant Parameters

Analysis of Euro Foreign Exchange Reference Rates

The VARMAX Procedure

Information Criteria
AICC-5735.05
HQC-5670.56
AIC-5735.48
SBC-5552.06
FPEC0.011996


This example focuses only on using the information criterion to distinguish models. In practice, the forecast performance of the model might be more important. The VARMAX procedure supports multistep forecasting in both VARMAX-GARCH models and vector error correction GARCH models. Hence, although it is not covered in this example, you can also use the VARMAX procedure and a criterion based on out-of-sample forecast to perform model selection.

Last updated: November 05, 2018