sr_vcov | R Documentation |
Computes the variance covariance matrix of sample Sharpe ratios.
sr_vcov(X,vcov.func=vcov,ope=1)
X |
an |
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,
\left[\zeta_1,\zeta_2,\ldots,\zeta_p\right]
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 |
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
reannualize
sr-distribution functions, dsr
Other sr:
as.sr()
,
confint.sr()
,
dsr()
,
is.sr()
,
plambdap()
,
power.sr_test()
,
predint()
,
print.sr()
,
reannualize()
,
se()
,
sr
,
sr_equality_test()
,
sr_test()
,
sr_unpaired_test()
,
summary.sr
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.