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 narket; 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 inefficinecy 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 symetrical 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 distrubution of returns.

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

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 arond 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 lotter-like investment. Most risk-averse investors owould like to avoid negative skew or crash risk investments.

Downside deviation

One way to deal with skewed distibutions 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(Cl(BAC), MAR = mean(Cl(BAC), na.rm = TRUE))
##          [,1]
## [1,] 7.669186