factorModelVaRDecomposition: Compute factor model VaR decomposition

Description Usage Arguments Details Value Author(s) References Examples

Description

Compute factor model factor VaR decomposition based on Euler's theorem given historic or simulated data and factor model parameters. The partial derivative of VaR wrt factor beta is computed as the expected factor return given fund return is equal to its VaR and approximated by kernel estimator. VaR is compute either as the sample quantile or as an estimated quantile using the Cornish-Fisher expansion.

Usage

1
2
3
  factorModelVaRDecomposition(Data, beta.vec, sig2.e,
    tail.prob = 0.01,
    VaR.method = c("modified", "gaussian", "historical", "kernel"))

Arguments

Data

B x (k+2) matrix of bootstrap data. First column contains the fund returns, second through k+1 columns contain factor returns, (k+2)nd column contain residuals scaled to have unit variance .

beta.vec

k x 1 vector of factor betas.

sig2.e

scalar, residual variance from factor model.

tail.prob

scalar, tail probability

VaR.method

character, method for computing VaR. Valid choices are one of "modified","gaussian","historical", "kernel". computation is done with the VaR in the PerformanceAnalytics package.

Details

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:
VaR.fm = sum(cVaR.fm) = sum(beta.star*mVaR.fm)

Value

an S3 object containing

Author(s)

Eric Zivot and Yi-An Chen

References

  1. Hallerback (2003), "Decomposing Portfolio Value-at-Risk: A General Analysis", The Journal of Risk 5/2.

  2. Yamai and Yoshiba (2002)."Comparative Analyses of Expected Shortfall and Value-at-Risk: Their Estimation Error, Decomposition, and Optimization Bank of Japan.

  3. Meucci (2007). "Risk Contributions from Generic User-Defined Factors," Risk.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
data(managers.df)
fit.macro <- fitTimeSeriesFactorModel(assets.names=colnames(managers.df[,(1:6)]),
                                     factors.names=c("EDHEC.LS.EQ","SP500.TR"),
                                     data=managers.df,fit.method="OLS")
# risk factor contribution to VaR
# combine fund returns, factor returns and residual returns for HAM1
tmpData = cbind(managers.df[,1],managers.df[,c("EDHEC.LS.EQ","SP500.TR")] ,
residuals(fit.macro$asset.fit$HAM1)/sqrt(fit.macro$resid.variance[1]))
colnames(tmpData)[c(1,4)] = c("HAM1", "residual")
factor.VaR.decomp.HAM1 = factorModelVaRDecomposition(tmpData, fit.macro$beta[1,],
                                                  fit.macro$resid.variance[1], tail.prob=0.05,
                                                  VaR.method="historical")

R-Finance/FactorAnalytics documentation built on May 8, 2019, 3:51 a.m.