msharpeTesting {PeerPerformance} | R Documentation |
Testing the difference of modified Sharpe ratios
Description
Function which performs the testing of the difference of modified Sharpe ratios.
Usage
msharpeTesting(x, y, level = 0.9, na.neg = TRUE, control = list())
Arguments
x |
Vector (of lenght |
y |
Vector (of lenght |
level |
Modified Value-at-Risk level. Default: |
na.neg |
A logical value indicating whether |
control |
Control parameters (see *Details*). |
Details
The modified Sharpe ratio (Favre and Galeano 2002) is one industry standard for measuring the absolute risk adjusted performance of hedge funds. This function performs the testing of modified Sharpe ratio difference for two funds using a similar approach than Ledoit and Wolf (2002). See also Gregoriou and Gueyie (2003).
For the testing, only the intersection of non-NA
observations for the
two funds are used.
The argument control
is a list that can supply any of the following
components:
-
'type'
Asymptotic approach (type = 1
) or studentized circular bootstrap approach (type = 2
). Default:type = 1
. -
'ttype'
Test based on ratio (type = 1
) or product (type = 2
). Default:type = 2
. -
'hac'
Heteroscedastic-autocorrelation consistent standard errors. Default:hac = FALSE
. -
'minObs'
Minimum number of concordant observations to compute the ratios. Default:minObs = 10
. -
'nBoot'
Number of boostrap replications for computing the p-value. Default:nBoot = 499
. -
'bBoot'
Block length in the circular bootstrap. Default:bBoot = 1
, i.e. iid bootstrap.bBoot = 0
uses optimal block-length. -
'pBoot'
Symmetric p-value (pBoot = 1
) or asymmetric p-value (pBoot = 2
). Default:pBoot = 1
.
Value
A list with the following components:
n
: Number of non-NA
concordant observations.
msharpe
: Vector (of length 2) of unconditional modified Sharpe
ratios.
dmsharpe
: Modified Sharpe ratios difference.
tstat
: t-stat of modified Sharpe ratios differences.
pval
: pvalues of test of modified Sharpe ratios differences.
Note
Further details on the methdology with an application to the hedge fund industry is given in Ardia and Boudt (2018).
Some internal functions where adapted from Michael Wolf MATLAB code.
Author(s)
David Ardia and Kris Boudt.
References
Ardia, D., Boudt, K. (2015). Testing equality of modified Sharpe ratios. Finance Research Letters 13, pp.97–104. doi: 10.1016/j.frl.2015.02.008
Ardia, D., Boudt, K. (2018). The peer performance ratios of hedge funds. Journal of Banking and Finance 87, pp.351-.368. doi: 10.1016/j.jbankfin.2017.10.014
Barras, L., Scaillet, O., Wermers, R. (2010). False discoveries in mutual fund performance: Measuring luck in estimated alphas. Journal of Finance 65(1), pp.179–216.
Favre, L., Galeano, J.A. (2002). Mean-modified Value-at-Risk Optimization with Hedge Funds. Journal of Alternative Investments 5(2), pp.21–25.
Gregoriou, G. N., Gueyie, J.-P. (2003). Risk-adjusted performance of funds of hedge funds using a modified Sharpe ratio. Journal of Wealth Management 6(3), pp.77–83.
Ledoit, O., Wolf, M. (2008). Robust performance hypothesis testing with the Sharpe ratio. Journal of Empirical Finance 15(5), pp.850–859.
Storey, J. (2002). A direct approach to false discovery rates. Journal of the Royal Statistical Society B 64(3), pp.479–498.
See Also
msharpe
, msharpeScreening
and
sharpeTesting
.
Examples
## Load the data (randomized data of monthly hedge fund returns)
data("hfdata")
x = hfdata[,1]
y = hfdata[,2]
## Run modified Sharpe testing (asymptotic)
ctr = list(type = 1)
out = msharpeTesting(x, y, level = 0.95, control = ctr)
print(out)
## Run modified Sharpe testing (asymptotic hac)
ctr = list(type = 1, hac = TRUE)
out = msharpeTesting(x, y, level = 0.95, control = ctr)
print(out)
## Run modified Sharpe testing (iid bootstrap)
set.seed(1234)
ctr = list(type = 2, nBoot = 250)
out = msharpeTesting(x, y, level = 0.95, control = ctr)
print(out)
## Run modified Sharpe testing (circular bootstrap)
set.seed(1234)
ctr = list(type = 2, nBoot = 250, bBoot = 5)
out = msharpeTesting(x, y, level = 0.95, control = ctr)
print(out)