GetGroupWeight: Computing First and Second Level Portfolio Weights
Description
Given a portfolio weight vector and a grouping, the function GetGroupWeight decompose the portfolio into a portfolio of portfolios. See the decription below for more details.
Usage
GetGroupWeight(pi, group.index)
Arguments
Value
A list containing the following components.group.weighta vector of first level portfolio weights.cond.weighta list whose components are the second level portfolio weights.
Details
This function is mainly intended to be used internally in EnergyEntropyDecomp.
We explain the main idea with an example. For more details, see Section 3 of Pal and Wong (2013). Consider the portfolio pi = (0.1, 0.2, 0.3, 0.4) for four stocks. To fix ideas, suppose the first two stocks are financial stocks, and the other two are utility stocks. The first two stocks can be regarded to form a "sub-portfolio" of financial stocks, and the other two form a sub-portfolio of utility stocks. Hence, the portfolio pi can be regarded as a portfolio of two portfolios.
The portfolio puts 0.3 weight into financial stocks and 0.7 weight into utility stocks. Hence the first level portfolio weights are 0.3 and 0.7. Restricting to the finanical sector, the second level portfolio weights are 0.1/(0.1 + 0.2) and 0.2/(0.1 + 0.2) respectively. Hence the (normalized) weights for the financial sector portfolio are 1/3 and 2/3. Similarly, the weights for the utility sector portfolio are 3/7 and 4/7. The function GetGroupWeight performs this decomposition.
References
Pal, S. and T.-K. L. Wong (2013). Energy, entropy, and arbitrage. arXiv preprint arXiv:1308.5376.