sr_max_test | R Documentation |
Performs tests for the hypothesis
\forall i \zeta_i \le \zeta_0
against the alternative
\exists i zeta_i > \zeta_0
Multiple methods are supported for the test, including Bonferroni correction, a chi-bar-square test, and Follman's test.
It is assumed that returns have a compound symmetric correlation structure.
That is, the correlation matrix has \rho
on all off-diagonal
elements.
Returns are assumed to follow an elliptical distribution with kurtosis
factor \kappa
, which equals 1 in the case of Gaussian
returns. The kurtosis factor is one third the kurtosis of marginal returns.
sr_max_test(
srs,
df,
ope = 1,
kappa = 1,
rho = 0,
zeta_0 = 0,
conf.level = 0.95,
type = c("Bonferroni", "chi-bar-square", "Follman"),
loglog = TRUE
)
srs |
A vector of Sharpe ratios, quoted in terms of a given epoch. |
df |
The number of ‘degrees of freedom’ of the Sharpe ratios, which are assumed to have been measured over the same period. The degrees of freedom are one less than the number of observed returns. |
ope |
the number of observations per 'epoch'. For convenience of
interpretation, The Sharpe ratio is typically quoted in 'annualized'
units for some epoch, that is, 'per square root epoch', though returns
are observed at a frequency of |
kappa |
The kurtosis factor of returns. The value 1 corresponds to Gaussian returns, while larger values are more kurtotic. |
rho |
The assumed common correlation among returns. |
zeta_0 |
The cutoff for the test. We test whether all Signal-noise
ratios are equal to zeta_0. This value is quoted in terms of the same epoch
as |
conf.level |
confidence level of the test. We perform a one-sided test. |
type |
which method to apply. |
loglog |
Whether to apply Hansen's ‘log-log’ adjustment to the number of effective strategies tested. Not yet applied for Follman's test. |
A few test methodologies are supported. These are described in more detail in Section 4.1 of The Sharpe Ratio: Statistics and Applications.
Performs the Bonferroni correction as described in equation (4.8).
The chi-bar-square test described in section 4.1.3.
Follman's test, given in equation (4.20). This test does not yet support Hansen's asymptotic correction and may not produce confidence intervals.
Moreover, Hansen's ‘log-log’ adjustment is also optionally applied.
A list with class "htest"
containing the following components:
statistic |
the value of the statistic. |
parameter |
the degrees of freedom for the statistic. |
p.value |
the p-value for the test. |
conf.int |
a one-sided confidence interval appropriate to the specified alternative hypothesis. |
alternative |
a character string describing the alternative hypothesis. |
method |
a character string indicating what type of test was performed. |
data.name |
a character string giving the name(s) of the data. |
Steven E. Pav shabbychef@gmail.com
Pav, S. E. "The Sharpe Ratio: Statistics and Applications." CRC Press, 2021.
Pav, S. E. "Conditional inference on the asset with maximum Sharpe ratio." 2019 https://arxiv.org/abs/1906.00573
Follman, D. "A Simple Multivariate Test for One-Sided Alternatives." JASA, 91, no 434 (1996): 854-861. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.2307/2291680")}
Hansen, P. R. "A Test for Superior Predictive Ability." J. Bus. Ec. Stats, 23, no 4 (2005). \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1198/073500105000000063")}
reannualize
sr_conditional_test
# generate some fake data
ope <- 252
zeta0 <- 1.0
set.seed(1234)
zetas <- rsr(50, zeta=zeta0, df=ope*2, ope=ope)
sr_max_test(zetas,df=ope*2,ope=ope,type='Bonferroni')
sr_max_test(zetas,zeta_0=zeta0,df=ope*2,ope=ope,type='Bonferroni')
sr_max_test(zetas,zeta_0=zeta0,df=ope*2,ope=ope,type='chi-bar-square')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.