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

Julia中不同相关系数下投资组合标准差计算结果一致问题求助

问题根源

你遇到的问题是两个错误共同导致的:

  1. 股票A的标准差设为0
    你在代码中定义了sA = .00,即股票A为无风险资产。而投资组合标准差的计算公式中,和相关系数rrab绑定的交叉项为2*rrab*sA*sB .*x .* y,当sA=0时,该项的取值恒为0,因此无论相关系数取什么值,都不会影响最终标准差的计算结果,所以你得到的sab1/sab2/sab3完全一致。
  2. 投资组合方差公式符号错误
    标准的两资产投资组合方差公式为:

σ_p² = w_A²σ_A² + w_B²σ_B² + 2ρ_AB w_A w_B σ_A σ_B
你代码中交叉项用了减号,后续如果修改sA为非0值时,这个符号错误会导致标准差计算结果不符合理论预期。

修正示例

你可以将sA修改为合理的非0值,同时修正公式符号即可得到不同相关系数对应的标准差:

rA = .05; sA = .10; lA = "A"  # 把sA改成0.1这类非零值
rB = .10; sB = .38; lB = "B"  

rrab1 = 1
rrab2 = .5 
rrab3 = 0        

x = collect(0 : .05 : 1)  
y = 1 .-x                 

# 修正公式符号为加号
sab1 = sqrt.(sA^2*x.^2 + sB^2*y.^2 + 2*rrab1*sA*sB .*x .* y)    
sab2 = sqrt.(sA^2*x.^2 + sB^2*y.^2 + 2*rrab2*sA*sB .*x .* y )    
sab3 = sqrt.(sA^2*x.^2 + sB^2*y.^2 + 2*rrab3*sA*sB .*x .* y )  

# 此时校验 sab1 == sab2 == sab3 会返回false

修改后你再用PGFPlotsX绘图就可以得到三条不同的曲线了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:57:03