【发布时间】:2017-04-10 00:15:00
【问题描述】:
我正在尝试利用空头权重对股票投资组合进行分析。
为了能够做到这一点,我必须创建一个循环,将我的“正常”返回转换为相反的符号 (+/-),只要相应的权重为“短”(负号)。
矩阵 mat_weights 包含 34 个不同投资组合的优化权重,每个投资组合包含数量不断增加的股票,这些股票数量随优化过程而变化(“Markovitz”):
- 第一个投资组合:4 只股票
- 第二个投资组合:5 只股票
- 第三个投资组合:6 只股票
- ........
- 第 34 个投资组合:34 只股票
矩阵mat_returns_adjusted是一个矩阵,它应该包含循环的结果,如果相应的投资组合权重为负,则该矩阵应该是与每个符号变化的股票相对应的收益。 所以最后我应该能够获得一个 1040(rows)x 34(columns) 的矩阵,其中填充了“调整后”的回报。
矩阵 mat_returns_raw 包含每只股票的收益,这些股票与另一个名为 nomi 的矩阵相关联,该矩阵将正确的股票收益与相应股票的名称联系起来
这是上面讨论的 for 循环:
for(i in 1:34) {
mat_weights_short <- (mat_weights[i,1:i+3])
mat_returns_adjusted <- matrix (NA,1040,i+3)
mat_returns_raw <- returns[,nomi[i,1:i+3]]
if(mat_weights_short[i]<0) {
mat_returns_adjusted[,i]<- -(mat_returns_raw[,i])
} else {
mat_returns_adjusted[,i]<- mat_returns_raw[,i]
}}
当我将它输入到 R 控制台时,我收到一条错误消息:
Error in mat_returns_raw[, i] : incorrect number of dimensions
我试图解决这个问题,但到目前为止我还没有解决它。 如果问题不是那么清楚,我提前道歉,但这是我第一次不得不使用 R。 任何帮助将不胜感激!!!
【问题讨论】:
标签: r