portSdDecomp {facmodCS} | R Documentation |
Decompose portfolio standard deviation into individual factor contributions
Description
Compute the factor contributions to standard deviation (Sd) of portfolio returns based on Euler's theorem, given the fitted factor model.
Usage
portSdDecomp(object, ...)
## S3 method for class 'ffm'
portSdDecomp(object, weights = NULL, factor.cov, ...)
Arguments
object |
fit object of class |
... |
optional arguments passed to |
weights |
a vector of weights of the assets in the portfolio. Default is NULL, in which case an equal weights will be used. |
factor.cov |
optional user specified factor covariance matrix with named columns; defaults to the sample covariance matrix. |
Details
The factor model for a portfolio's return at time t
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, the standard deviation of the portfolio's return
is given as:
portSd = sum(cSd_k) = sum(beta.star_k*mSd_k)
where, summation is across the K
factors and the residual,
cSd
and mSd
are the component and marginal
contributions to Sd
respectively. Computing portSd
and
mSd
is very straight forward. The formulas are given below and
details are in the references. The covariance term is approximated by the
sample covariance.
portSd = sqrt(beta.star''cov(F.star)beta.star)
mSd = cov(F.star)beta.star / portSd
Value
A list containing
portSd |
factor model Sd of portfolio return. |
mSd |
length-(K + 1) vector of marginal contributions to Sd. |
cSd |
length-(K + 1) vector of component contributions to Sd. |
pcSd |
length-(K + 1) vector of percentage component contributions to Sd. |
Where, K is the number of factors.
Author(s)
Douglas Martin, Lingjie Yi
See Also
fitFfm
for the different factor model fitting functions.
portVaRDecomp
for portfolio factor model VaR decomposition.
portEsDecomp
for portfolio factor model ES decomposition.