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 tsfm, or ffm.

...

optional arguments passed to cov.

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.


[Package facmodCS version 1.0 Index]