Description Usage Arguments Details Value Author(s) References Examples
Compute the factor model factor standard deviation decomposition for an asset based on Euler's theorem given factor model parameters.
1 | factorModelSdDecomposition(beta.vec, factor.cov, sig2.e)
|
beta.vec |
k x 1 vector of factor betas with factor names in the rownames. |
factor.cov |
k x k factor excess return covariance matrix. |
sig2.e |
scalar, residual variance from factor model. |
The factor model has the form
R(t) = beta'F(t)
+ e(t) = beta.star'F.star(t)
where beta.star = (beta,
sig.e)' and F.star(t) = [F(t)', z(t)]'. By Euler's
theorem:
Sd.fm = sum(cSd.fm) =
sum(beta.star*mSd.fm)
an S3 object containing
Sd.fm Scalar, std dev based on factor model.
mSd.fm (K+1) x 1 vector of factor marginal contributions to sd.
cSd.fm (K+1) x 1 vector of factor component contributions to sd.
pcSd.fm (K+1) x 1 vector of factor percentage component contributions to sd.
Eric Zivot and Yi-An Chen
Hallerback (2003), "Decomposing Portfolio Value-at-Risk: A General Analysis", The Journal of Risk 5/2.
Yamai and Yoshiba (2002)."Comparative Analyses of Expected Shortfall and Value-at-Risk: Their Estimation Error, Decomposition, and Optimization Bank of Japan.
Meucci (2007). "Risk Contributions from Generic User-Defined Factors," Risk.
#'
1 2 3 4 5 6 7 8 9 10 11 | # load data from the database
data("stat.fm.data")
fit.stat <- fitStatisticalFactorModel(sfm.dat,k=2)
cov.factors = var(fit.stat$factors)
names = colnames(fit.stat$asset.ret)
factor.sd.decomp.list = list()
for (i in names) {
factor.sd.decomp.list[[i]] =
factorModelSdDecomposition(fit.stat$loadings[,i],
cov.factors, fit.stat$resid.variance[i])
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.