寻找均值-方差有效的投资组合
在约束投资组合的期望收益等于目标收益的条件下,最小化投资组合方差即可得到均值-方差有效的投资组合。R 包 tseries 中的函数 portfolio.optim() 可方便地完成该任务。 其默认实现会在投资组合收益等于等权重投资组合收益的约束下,求解均值-方差有效的投资组合权重。 唯一需要的参数是需要确定权重的投资组合成分的月度收益数据。
控制台中已加载变量 returns,其中包含 DJIA 股票的月度收益。
本练习是课程的一部分
R 中的投资组合分析入门
练习说明
- 加载库
tseries。 - 使用
portfolio.optim()的默认设置(目标为等权重投资组合的收益)基于月度收益创建一个均值-方差有效的投资组合,并将输出赋值给变量opt。 - 从优化后的投资组合中创建权重向量。投资组合权重可在
opt$pw中找到。将其命名为pf_weights。 - 使用提供的代码为资产赋予名称。
- 从
pf_weights中选取大于或等于 1% 的最优权重,命名为opt_weights。 - 使用 barplot() 可视化
opt_weights的分布。 - 打印优化后投资组合的期望收益(
opt$pm)和波动率(opt$ps)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Load tseries
# Create an optimized portfolio of returns
opt <- portfolio.optim(___)
# Create pf_weights
pf_weights <- ___$pw
# Assign asset names
names(pf_weights) <- colnames(returns)
# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]
# Bar plot of opt_weights
# Print expected portfolio return and volatility
___$pm
___$ps