chiSigma: A convex hierarchical filter of the covariance matrix

View source: R/chiSigma.R

chiSigmaR Documentation

A convex hierarchical filter of the covariance matrix

Description

Calculates covariance matrix filtered using the most diversified hierarchical graph. The hierarchical graph can be optimized using maximum diversification (MaxDiv) or equal risk contribution (ERC).

Usage

chiSigma(
  sigma,
  mu = NULL,
  meta_loss = c("MaxDiv", "ERC"),
  UB = NULL,
  LB = NULL,
  gamma = 0,
  max_tilt = 1,
  ...
)

Arguments

sigma

a (N \times N) covariance matrix.

mu

a (N \times 1) vector of estimated returns.

meta_loss

a loss function of the most diversified hierarchical allocation graph.

UB

scalar or (N\times 1) vector of upper bound weight constraint.

LB

scalar or (N\times 1) vector of lower bound weight constraint.

gamma

risk aversion parameter. Default: gamma = 0.

max_tilt

maximum percentage reduction in the effective number of assets. Default: max_tilt = 1 (no restriction).

...

arguments passed to cluster::agnes method.

Details

The argument sigma is a covariance matrix.

Hierarchical clustering is performed using the cluster-package. If cluster_method == 'DIANA', the function cluster::diana is used to compute a cluster dendrogram, otherwise the function cluster::agnes(., method = cluster_method) is used. Default is single-linkage agglomerative nesting.

The argument meta_loss represents the loss function used to optimize the most diversified hierarchical allocation graph. The optimized hierarchy is used to filter sigma. If the filtered covariance matrix is used in a minimum variance portfolio optimizer, a CHI portfolio is constructed.

Value

A (N \times N) filtered covariance matrix.

Author(s)

Johann Pfitzinger

Examples

# Load returns of assets or portfolios
data("Industry_10")
rets <- Industry_10
sigma <- cov(rets)
chiSigma(sigma)


jpfitzinger/ClusterPortfolios documentation built on Sept. 27, 2024, 11:18 p.m.