Learn R Programming

SharpeR (version 1.4.0)

sr_bias: sr_bias .

Description

Computes the asymptotic bias of the sample Sharpe ratio based on moments.

Usage

sr_bias(snr, n, cumulants, type = c("simple", "second_order"))

Value

the approximate bias of the Sharpe ratio. The bias is the expected value of the sample Sharpe minus the Signal Noise ratio.

Arguments

snr

the population Signal Noise ratio. Often one will use the population estimate instead.

n

the sample size that the Shapre ratio is observed on.

cumulants

a vector of the third through fourth, or the third through seventh population cumulants of the random variable. More terms are needed for the higher accuracy approximation.

type

determines the order of accuracy of the bias approximation. Takes values of

simple

We compute the simple approximation using only the skewness and excess kurtosis.

second_order

We compute the more accurate approximation, given by Bao, which is accurate to \(o\left(n^{-2}\right)\).

Author

Steven E. Pav shabbychef@gmail.com

Details

The sample Sharpe ratio has bias of the form $$B = \left(\frac{3}{4n} + 3 \frac{\gamma_2}{8n}\right) \zeta - \frac{1}{2n} \gamma_1 + o\left(n^{-3/2}\right),$$ where \(\zeta\) is the population Signal Noise ratio, \(n\) is the sample size, \(\gamma_1\) is the population skewness, and \(\gamma_2\) is the population excess kurtosis. This form of the bias appears as Equation (5) in Bao, which claims an accuracy of only \(o\left(n^{-1}\right)\). The author believes this approximation is slightly more accurate.

A more accurate form is given by Bao (Equation (3)) as $$B = \frac{3\zeta}{4n}\zeta + \frac{49\zeta}{32n^2} - \gamma_1 \left(\frac{1}{2n} + \frac{3}{8n^2}\right) + \gamma_2 \zeta \left(\frac{3}{8n} - \frac{15}{32n^2}\right) + \frac{3\gamma_3}{8n^2} - \frac{5\gamma_4 \zeta}{16n^2} - \frac{5\gamma_1^2\zeta}{4n^2} + \frac{105\gamma_2^2 \zeta}{128 n^2} - \frac{15 \gamma_1 \gamma_2}{16n^2} + o\left(n^{-2}\right),$$ where \(\gamma_3\) through \(\gamma_5\) are the fifth through seventh cumulants of the error term.

See ‘The Sharpe Ratio: Statistics and Applications’, section 3.2.3.

References

Bao, Yong. "Estimation Risk-Adjusted Sharpe Ratio and Fund Performance Ranking Under a General Return Distribution." Journal of Financial Econometrics 7, no. 2 (2009): 152-173. tools:::Rd_expr_doi("10.1093/jjfinec/nbn022")

Pav, S. E. "The Sharpe Ratio: Statistics and Applications." CRC Press, 2021.

See Also

sr_variance

Examples

Run this code

# bias under normality:
sr_bias(1, 100, rep(0,2), type='simple')
sr_bias(1, 100, rep(0,5), type='second_order')

# plugging in sample estimates
x <- rnorm(1000)
n <- length(x)
mu <- mean(x)
sdv <- sd(x)
snr <- mu / sdv
# these are not great estimates, but close enough:
sku <- mean((x-mu)^3) / sdv^3
kur <- (mean((x-mu)^4) / sdv^4) - 4
sr_bias(snr, n, c(sku,kur), type='simple')

Run the code above in your browser using DataLab