Introduction

There is a fundamental disagreement over investment performance. Recall the standard CAPM view of investment returns is

\[ R_i = \alpha_i + \beta (Rm - Rf)\]

where \(R_i\) is the return on the ith fund or asset; \(\alpha_i\) is the measure of outeperformance for the ith fund or asset; \(\beta\) is covariance of asset returns or fund returns with the market; Rm is the return on the market; Rf is the risk-free rate.

If the market is efficient, \(\alpha_i\) should be zero. If \(\alpha_i\) is not zero, there is an inefficiency. An inefficiency is a return that is more than just a compensation for taking risk. However, market risk or \(\beta\) is not the only risk factor, the excess returns may be a compensation for taking value, quality or momentum risk.

Is the return for investing in value stocks a return for taking value risk or is it a market inefficiency? This is important because if it is a risk, we would expect it to remain, but if it is an inefficiency, we would expect it to be eliminated.

Risk

Risk is more controversial than return. The idea that standard deviation or variance can capture all we need to know about risk is disputed. It is based on the idea that outcomes that are better than expected can be ranked the same as things that are worse than expected. This cannot be right unless we are confident that we have a symmetrical distribution and argue that positive shocks will equal negative shocks. Therefore, one of the first things that we need to do is to understand the distribution of returns.

require(quantmod)
require(PerformanceAnalytics)
getSymbols('BAC') 
## [1] "BAC"
kurtosis(ROC(Cl(BAC)), na.rm = TRUE, method = 'excess')
## [1] 23.49176
skewness(ROC(Cl(BAC)), na.rm = TRUE)
## [1] -0.2950045

There is not much skew but there is clearly excess kurtosis.

hist(ROC(Cl(BAC)), breaks = 100, xlim = c(-0.4, 0.4), col = 'lightblue', 
     main = 'Histogram of BAC returns')

If the kurtosis is significantly more than zero (when looking at excess Kurtosis, this means that there are fat tails and that good and bad things happen more frequently than should be expected in a normal distribution. If the skew is negative there is a long, negative tail to the left; if the skew is positive, there is a long, positive tail to the right.

x <- rbeta(10000, 10, 1)
hist(x, prob = TRUE, main = "Negative Skew", col = 'lightblue')

In this case you can see that though most of the outcomes are around the mean, there are some significantly worse than expected outcomes possible. This is usually called crash risk.

x <- rbeta(10000, 1, 10)
hist(x, prob = TRUE, main = "Positive skew", col = 'lightblue')

In this case there is positive skew. Most outcomes are close to the mean but there are some extremely high outcomes. This is more like a lottery ticket.

In most cases, risk-averse investors would like a positive skew and a lottery-like investment. Most risk-averse investors would like to avoid negative skew or crash risk investments.

Downside deviation

One way to deal with skewed distributions is to only count things that are worse-than-expected when calculating risk. We would use some version of downside deviation. This will take any return that is less than zero, less than the median or less than the minimum required return.

Performance Analytics package has a number of functions that can be used. We will use DownsideDeviation. The arguments to use are R (returns), MAR (the Minimum Acceptable Rate, which defaults to zero and method (which will either use the whole sample of only those below the MAR for the denominator). Take a look at the documentation for full details.

DownsideDeviation(ROC(Cl(BAC)), MAR = mean(Cl(BAC), na.rm = TRUE))
##         [,1]
## [1,] 23.9733

Sharpe Ratio

The Sharpe Ratio will show the return over the risk-free rate relative to the amount of risk. Traditionally, this is calculated as:

\[\text{Sharp Ratio}_{i} = \frac{R_i - rf_i}{\text{standard deviation}_{Ri}}\] It is also possible to use the Sortino Ratio. This is the same as the Sharpe Ratio but uses a version of the downside deviation instead of the standard deviation.

\[\text{Sortino Ratio}_{i} = \frac{R_i - rf_i}{\text{downside deviation}_{Ri}}\]

For Bank of America, the Sharpe Ratio is identified with

SharpeRatio(ROC(Cl(BAC), type = 'continuous'), FUN = 'StdDev')
##                                  BAC.Close
## StdDev Sharpe (Rf=0%, p=95%): -0.003037545

the Sortino Ratio for Bank of America is

SortinoRatio(ROC(Cl(BAC), type = 'continuous'))
##                             BAC.Close
## Sortino Ratio (MAR = 0%) -0.004244323

This does not mean much unless there is a comparison. In any case, this is not a good result as we have a negative return per unit of risk.

Exercise 1.0

Compare Sharpe and Sortino Ratios for Apple and Microsoft. Which is the better investment? Why?

Downside deviation

Another way to look at downside risk is to measure downside deviation. The essential idea here is that two series may have exactly the same daily or monthly returns but the one which has the negative values more closely grouped together will be more painful.

table.Drawdowns(ROC(Cl(BAC)))
##         From     Trough         To   Depth Length To Trough Recovery
## 1 2007-02-15 2011-12-19       <NA> -0.9804   4301      1222       NA
## 2 2007-01-05 2007-01-29 2007-02-13 -0.0415     27        16       11

These downside risks (and some others) can be assessed in one table with

table.DownsideRisk(ROC(Cl(BAC)))
##                               BAC.Close
## Semi Deviation                   0.0222
## Gain Deviation                   0.0251
## Loss Deviation                   0.0260
## Downside Deviation (MAR=210%)    0.0262
## Downside Deviation (Rf=0%)       0.0223
## Downside Deviation (0%)          0.0223
## Maximum Drawdown                 0.9804
## Historical VaR (95%)            -0.0392
## Historical ES (95%)             -0.0734
## Modified VaR (95%)              -0.0391
## Modified ES (95%)               -0.0391

Exercise 2.0

Look at the downside table and downside risks for Apple and Microsoft. Does this change your view of the investment choice?