You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中实现矩阵乘法计算投资组合方差时遇维度不匹配错误的解决方法

解决投资组合方差计算的维度不匹配问题

错误原因

你代码里的optimized_weights_t变量未定义,导致矩阵乘法时维度不匹配。已知:

  • optimized_weights是10×1的列向量
  • sigma是10×10的协方差矩阵

矩阵乘法要求前一个矩阵的列数等于后一个矩阵的行数,只有1×10的行向量才能和10×10的协方差矩阵相乘,再与10×1的列向量运算得到标量方差。

修复方案

用R的t()函数对权重向量做转置,两种简洁写法任选:

写法1:先定义转置变量

# 对权重向量转置得到1×10的行向量
optimized_weights_t <- t(optimized_weights)
# 计算投资组合方差
portfolio_variance <- optimized_weights_t %*% sigma %*% optimized_weights

写法2:内嵌转置操作(更精简)

# 直接在计算时完成转置,无需额外变量
portfolio_variance <- t(optimized_weights) %*% sigma %*% optimized_weights

结果提取

执行后portfolio_variance是1×1的矩阵,若要得到纯数值,可通过as.numeric(portfolio_variance)提取。

内容的提问来源于stack exchange,提问作者Deeya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:27:03