Volatility skewness is a similar measure to omega but using the second partial moment. It's the ratio of the upside variance compared to the downside variance. Variability skewness is the ratio of the upside risk compared to the downside risk.
VolatilitySkewness(R, MAR = 0, stat = c("volatility", "variability"), ...)
R | an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns |
---|---|
MAR | Minimum Acceptable Return, in the same periodicity as your returns |
stat | one of "volatility", "variability" indicating whether to return the volatility skewness or the variability skweness |
… | any other passthru parameters |
$$ VolatilitySkewness(R , MAR) = \frac{\sigma_U^2}{\sigma_D^2}$$ $$ VariabilitySkewness(R , MAR) = \frac{\sigma_U}{\sigma_D}$$
where \(\sigma_U\) is the Upside risk and \(\sigma_D\) is the Downside Risk
Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.97-98
data(portfolio_bacon) MAR = 0.005 print(VolatilitySkewness(portfolio_bacon[,1], MAR, stat="volatility")) #expected 1.32#> [1] 1.323046print(VolatilitySkewness(portfolio_bacon[,1], MAR, stat="variability")) #expected 1.15#> [1] 1.150238MAR = 0 data(managers) # print(VolatilitySkewness(managers['1996'], MAR, stat="volatility")) print(VolatilitySkewness(managers['1996',1], MAR, stat="volatility"))#> [1] 6.149423