Solved – Computing VaR with AR-GARCH

archgarchrisk

I have the following AR(1)-GARCH(1,1) model for the daily returns $r_t$
$$r_t=\theta r_{t-1}+u_t\;\;\;u_t=\sigma_t\epsilon_t\;\;\;\sigma_t^2=\omega+\alpha u_{t-1}^2+\beta \sigma_{t-1}^2 $$
where $-1<\theta<1$, $\theta \neq0$, $\omega>0$, $\alpha,\beta \in(0,1)$, and $\alpha+\beta<1$. I need to calculate the 99% 2-day VaR and expected shortfall on a long position and on a short position at time $t$. I have no idea how to compute this. Can someone please show me or at least provide a reference that has good examples?

Best Answer

This is best done through simulation. See my MATLAB code example and explanation below:

%% Get S&P 500 price series
d=fetch(yahoo,'^GSPC','Adj Close','1-jan-2014','30-dec-2014');
n = 1; % # of shares
p = d(end:-1:1,2); % share price, the dates are backwards
PV0 = n*p(end); % portfolio value today
%%
r=price2ret(p,[],'Continuous'); % get the continous compounding returns
Mdl = arima('ARLags',1,'Variance',garch(1,1),'Constant',0);
fit = estimate(Mdl,r) % fit the AR(1)-GARCH(1,1)
fit.Variance

[E0,V0] = infer(fit,r); % get the estimated errors and variances
%% Simulate periods ahead
[Y] = simulate(fit,2,'Y0',r,'E0',E0,'V0',V0, 'NumPaths',1e5);
ret = sum(Y); % compund the return

histfit(PV0*(exp(ret)-1),100,'normal')
title 'P&L distribution'

ret2d = prctile(ret,0.01); % get the 99% lowest return

VaR = PV0*(exp(ret2d)-1);

fprintf('Today portfolio value: %f\n2-days ahead 99%% VaR: %f\n',PV0,VaR);

Output:

    ARIMA(1,0,0) Model:
    --------------------
    Conditional Probability Distribution: Gaussian

                                  Standard          t     
     Parameter       Value          Error       Statistic 
    -----------   -----------   ------------   -----------
     Constant              0         Fixed          Fixed
        AR{1}      -0.020272     0.0697731      -0.290541


    GARCH(1,1) Conditional Variance Model:
    ----------------------------------------
    Conditional Probability Distribution: Gaussian

                                  Standard          t     
     Parameter       Value          Error       Statistic 
    -----------   -----------   ------------   -----------
     Constant    7.43521e-06   2.14546e-06        3.46556
     GARCH{1}       0.653488      0.126818        5.15295
      ARCH{1}       0.206016     0.0881823        2.33626

fit = 

    ARIMA(1,0,0) Model:
    --------------------
    Distribution: Name = 'Gaussian'
               P: 1
               D: 0
               Q: 0
        Constant: 0
              AR: {-0.020272} at Lags [1]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: [GARCH(1,1) Model]

ans = 

    GARCH(1,1) Conditional Variance Model:
    --------------------------------------  
    Distribution: Name = 'Gaussian'
               P: 1
               Q: 1
        Constant: 7.43521e-06
           GARCH: {0.653488} at Lags [1]
            ARCH: {0.206016} at Lags [1]
Today portfolio value: 2090.570000
2-days ahead 99% VaR: -79.986280

enter image description here

For a portfolio consisting of one share of S&P 500 index, I got the current value of \$2091, and 2-day VaR at 99% is \$80.

I also plotted the P&L distribution with Normal fit, so you can see that the normal distribution is not a very good fit. That's why you have to simulate when using GARCH.

You can also look at MATLAB's own GARCH example here.

The idea is that you fit AR(1)-GARCH(1,1) to the returns. Then you Monte-Carlo simulate the returns two days ahead. Then you compound two days of returns in each path, and find 0.01 percentile. This is how much or more you'll lose at 99% confidence in terms of returns, and in terms of dollars it's a simple arithmetic using the current portfolio value.

You can find worked out examples in this book: Carol Alexander, Market Risk Analysis, Volume IV, Value at Risk Models, February 2009

Related Question