Multivariate volatility and DCC-GARCH
Today let's learn how to measure the risk of holding two stock indices together when the correlation between them does not stay fixed.
Say you hold half of your money in the DAX, the German stock index, and half in the FTSE 100, the UK index. You want to know how risky one day of holding this 50/50 position is.
The data is EuStockMarkets, which comes with R. It has the daily closing prices of four European indices over 1,860 business days from 1991 to 1998: the DAX and the FTSE, plus the Swiss SMI and the French CAC. We work with daily returns, the change in the log price times 100, so a return of 1 means the index moved about 1 percent. That leaves 1,859 days of returns.
The grid below shows the correlation between the returns of each pair of indices, computed over all 1,859 days.
Each cell is one number for the whole period, and the DAX and FTSE cell reads 0.64. Is one number like that enough to describe the risk of holding both?
Why portfolio risk depends on the correlation
Risk here means the standard deviation of the portfolio's daily return, and that depends on more than how risky each index is on its own.
A 50/50 portfolio earns 0.5 times the DAX return plus 0.5 times the FTSE return each day. The formula below gives the variance of that sum for weights \(w_1\) and \(w_2\), standard deviations \(\sigma_1\) and \(\sigma_2\), and correlation \(\rho\).
\[ \sigma_p^2 = w_1^2\sigma_1^2 + w_2^2\sigma_2^2 + 2\,w_1 w_2\,\rho\,\sigma_1\sigma_2 \]
The first two terms are each index's own variance, scaled by its weight squared. The third is the cross term, and it is the only one that contains \(\rho\). If the two indices move together, the cross term is large and the portfolio is riskier. If they move in opposite directions, it is negative and cancels part of the other two.
First we compute the returns, the standard deviation of each index and their correlation.
diff(log(EuStockMarkets)) takes the change in the log price from one day to the next, and * 100 puts it in percent. The DAX has a daily standard deviation of 1.0301 percent and the FTSE 0.7958. Their correlation is 0.6395, the same 0.64 as on the grid, to four decimals.
The block below splits the 50/50 portfolio's variance into its three terms at that correlation.
The DAX term is 0.2653, the FTSE term 0.1583 and the cross term 0.2621. They add up to a variance of 0.6857, so the portfolio's standard deviation is 0.8281 percent.
The block below repeats the calculation at four values of the correlation and keeps everything else fixed.
At a correlation of 1 the portfolio's standard deviation is 0.9129, which equals the weighted sum of the two standard deviations. That is the risk with no diversification at all. At the actual correlation of 0.6395 it is 0.8281, so diversification takes 0.0848 off the risk.
That makes the correlation an input worth checking. Does it really stay at 0.6395 from one day to the next?