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"), ...)

Arguments

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

Details

$$ 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

References

Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.97-98

Examples

data(portfolio_bacon) MAR = 0.005 print(VolatilitySkewness(portfolio_bacon[,1], MAR, stat="volatility")) #expected 1.32
#> [1] 1.323046
print(VolatilitySkewness(portfolio_bacon[,1], MAR, stat="variability")) #expected 1.15
#> [1] 1.150238
MAR = 0 data(managers) # print(VolatilitySkewness(managers['1996'], MAR, stat="volatility")) print(VolatilitySkewness(managers['1996',1], MAR, stat="volatility"))
#> [1] 6.149423