Learn R Programming

HDShOP (version 0.1.5)

new_MV_portfolio_weights_BDOPS21: Constructor of MV portfolio object

Description

Constructor of mean-variance shrinkage portfolios. new_MV_portfolio_weights_BDOPS21 is for the case p<n, while new_MV_portfolio_weights_BDOPS21_pgn is for p>n, where p is the number of assets and n is the number of observations. For more details of the method, see MVShrinkPortfolio.

Usage

new_MV_portfolio_weights_BDOPS21(x, gamma, b, beta)

new_MV_portfolio_weights_BDOPS21_pgn(x, gamma, b, beta)

Value

an object of class MeanVar_portfolio with subclass MV_portfolio_weights_BDOPS21.

ElementDescription
callthe function call with which it was created
cov_mtrxthe sample covariance matrix of the asset returns
inv_cov_mtrxthe inverse of the sample covariance matrix
meanssample mean vector of the asset returns
W_mv_hatsample estimator of the portfolio weights
weightsshrinkage estimator of the portfolio weights
alphashrinkage intensity for the weights
Port_Varportfolio variance
Port_mean_returnexpected portfolio return
Sharpeportfolio Sharpe ratio
weight_intervalsA data frame, see details

weight_intervals contains a shrinkage estimator of portfolio weights, asymptotic confidence intervals for the true portfolio weights, value of the test statistic and the p-value of the test on the equality of the weight of each individual asset to zero @see Section 4.3 of @CORRBDNT23HDShOP

weight_intervals is only computed when p<n.

Arguments

x

a p by n matrix or a data frame of asset returns. Rows represent different assets, columns -- observations.

gamma

a numeric variable. Coefficient of risk aversion.

b

a numeric variable. 1-beta is the confidence level of the symmetric confidence interval, constructed for each weight.

beta

a numeric variable. The confidence level for weight intervals.

References

BDOPS2021HDShOP

CORRBDNT23HDShOP

Examples

Run this code

# c<1

# Assets with a diagonal covariance matrix

n <- 3e2 # number of realizations
p <- .5*n # number of assets
b <- rep(1/p,p)
gamma <- 1

x <- matrix(data = rnorm(n*p), nrow = p, ncol = n)

test <- new_MV_portfolio_weights_BDOPS21(x=x, gamma=gamma, b=b, beta=0.05)
summary(test)

# Assets with a non-diagonal covariance matrix

Mtrx <- RandCovMtrx(p=p)
x <- t(MASS::mvrnorm(n=n , mu=rep(0,p), Sigma=Mtrx))

test <- new_MV_portfolio_weights_BDOPS21(x=x, gamma=gamma, b=b, beta=0.05)
str(test)


# c>1

n <-2e2 # number of realizations
p <-1.2*n # number of assets
b <-rep(1/p,p)
x <- matrix(data = rnorm(n*p), nrow = p, ncol = n)

test <- new_MV_portfolio_weights_BDOPS21_pgn(x=x, gamma=gamma,
                                             b=b, beta=0.05)
summary(test)

# Assets with a non-diagonal covariance matrix

Run the code above in your browser using DataLab