Description Usage Arguments Details Value Note Author(s) References See Also Examples
Computes the variance covariance matrix of sample mean and second moment.
1 | theta_vcov(X,vcov.func=vcov,fit.intercept=TRUE)
|
X |
an n x p matrix of observed returns. |
vcov.func |
a function which takes an object of class |
fit.intercept |
a boolean controlling whether we add a column of ones to the data, or fit the raw uncentered second moment. For now, must be true when assuming normal returns. |
Given p-vector x, the 'unified' sample is the (p+1)(p+2)/2 vector of 1, x, and vech(x x') stacked on top of each other. Given n contemporaneous observations of p-vectors, stacked as rows in the n x p matrix X, this function computes the mean and the variance-covariance matrix of the 'unified' sample.
One may use the default method for computing covariance,
via the vcov
function, or via a 'fancy' estimator,
like sandwich:vcovHAC
, sandwich:vcovHC
, etc.
a list containing the following components:
mu |
a q = (p+1)(p+2)/2 vector of 1, then the mean, then the vech'd second moment of the sample data. |
Ohat |
the q x q estimated variance covariance
matrix. When |
n |
the number of rows in |
pp |
the number of assets plus |
Replaces similar functionality from SharpeR package, but with modified API.
Steven E. Pav shabbychef@gmail.com
Pav, S. E. "Asymptotic Distribution of the Markowitz Portfolio." 2013 http://arxiv.org/abs/1312.0557
Pav, S. E. "Portfolio Inference with this One Weird Trick." R in Finance, 2014 http://past.rinfinance.com/agenda/2014/talk/StevenPav.pdf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | X <- matrix(rnorm(1000*3),ncol=3)
Sigmas <- theta_vcov(X)
Sigmas.n <- theta_vcov(X,vcov.func="normal")
Sigmas.n <- theta_vcov(X,fit.intercept=FALSE)
# make it fat tailed:
X <- matrix(rt(1000*3,df=5),ncol=3)
Sigmas <- theta_vcov(X)
if (require(sandwich)) {
Sigmas <- theta_vcov(X,vcov.func=vcovHC)
}
# add some autocorrelation to X
Xf <- filter(X,c(0.2),"recursive")
colnames(Xf) <- colnames(X)
Sigmas <- theta_vcov(Xf)
if (require(sandwich)) {
Sigmas <- theta_vcov(Xf,vcov.func=vcovHAC)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.