Description Usage Arguments Details Value Author(s) References See Also Examples
Computes the variance covariance matrix of sample Sharpe ratios.
1 |
X |
an n x p matrix of observed returns. It not a matrix, but a numeric of length n, then it is coerced into a n x 1 matrix. |
vcov.func |
a function which takes an object of class |
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 |
Given n contemporaneous observations of p returns streams, this function estimates the asymptotic variance covariance matrix of the vector of sample Sharpes, [zeta1,zeta2,...,zetap]
One may use the default method for computing covariance,
via the vcov
function, or via a 'fancy' estimator,
like sandwich:vcovHAC
, sandwich:vcovHC
, etc.
This code first estimates the covariance of the 2p vector of the vector x stacked on its Hadamard square, x^2. This is then translated back to a variance covariance on the vector of sample Sharpe ratios via the Delta method.
a list containing the following components:
SR |
a vector of (annualized) Sharpe ratios. |
Ohat |
a p x p variance covariance matrix. |
p |
the number of assets. |
Steven E. Pav shabbychef@gmail.com
Sharpe, William F. "Mutual fund performance." Journal of business (1966): 119-138. https://ideas.repec.org/a/ucp/jnlbus/v39y1965p119.html
Lo, Andrew W. "The statistics of Sharpe ratios." Financial Analysts Journal 58, no. 4 (2002): 36-52. https://www.ssrn.com/paper=377260
sr-distribution functions, dsr
Other sr:
as.sr()
,
confint.sr()
,
dsr()
,
is.sr()
,
plambdap()
,
power.sr_test()
,
predint()
,
print.sr()
,
reannualize()
,
se()
,
sr_equality_test()
,
sr_test()
,
sr_unpaired_test()
,
sr
,
summary.sr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | X <- matrix(rnorm(1000*3),ncol=3)
colnames(X) <- c("ABC","XYZ","WORM")
Sigmas <- sr_vcov(X)
# make it fat tailed:
X <- matrix(rt(1000*3,df=5),ncol=3)
Sigmas <- sr_vcov(X)
if (require(sandwich)) {
Sigmas <- sr_vcov(X,vcov.func=vcovHC)
}
# add some autocorrelation to X
Xf <- filter(X,c(0.2),"recursive")
colnames(Xf) <- colnames(X)
Sigmas <- sr_vcov(Xf)
if (require(sandwich)) {
Sigmas <- sr_vcov(Xf,vcov.func=vcovHAC)
}
# should run for a vector as well
X <- rnorm(1000)
SS <- sr_vcov(X)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.