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

如何用Python循环实现累积求和及金融领域标准差计算?

用Python循环计算金融资产的收益率标准差

没问题,我来帮你用Python循环实现这个标准差计算!先确认你的手动计算完全正确,接下来咱们一步步用循环复现整个过程:

1. 定义输入数据

首先把题目里的概率和收益率数组用Python列表定义好:

probabilities = [0.3, 0.4, 0.3]
returns = [0.10, 0.05, 0.30]

2. 循环计算期望收益率E(r)

期望收益率是每个收益率与对应概率的乘积之和,用循环累加每一项的贡献:

expected_return = 0.0
# 用zip把概率和收益率配对遍历
for p, r in zip(probabilities, returns):
    expected_return += p * r

print(f"计算得到的期望收益率E(r): {expected_return}")
# 输出应该是0.14,和你的手动结果一致

3. 循环计算方差Var

方差是每个(收益率-期望收益率)的平方,再乘以对应概率的总和,同样用循环实现:

variance = 0.0
for p, r in zip(probabilities, returns):
    # 计算单个项的方差贡献
    variance_contribution = p * (r - expected_return) ** 2
    variance += variance_contribution

print(f"计算得到的方差Var: {variance}")
# 输出应该是0.0114,和手动计算结果一致

4. 计算标准差

标准差是方差的平方根,我们可以用Python标准库math里的sqrt函数来计算,再按需四舍五入:

import math

std_dev = math.sqrt(variance)
# 四舍五入到5位小数
rounded_std_dev = round(std_dev, 5)

print(f"原始标准差: {std_dev}")
print(f"四舍五入后标准差: {rounded_std_dev}")
# 输出分别是0.10677078252031311和0.10677

完整运行代码

把所有步骤整合到一起,直接运行就能得到结果:

import math

probabilities = [0.3, 0.4, 0.3]
returns = [0.10, 0.05, 0.30]

# 计算期望收益率
expected_return = 0.0
for p, r in zip(probabilities, returns):
    expected_return += p * r

# 计算方差
variance = 0.0
for p, r in zip(probabilities, returns):
    variance += p * (r - expected_return) ** 2

# 计算标准差
std_dev = math.sqrt(variance)
rounded_std_dev = round(std_dev, 5)

# 打印结果
print(f"期望收益率E(r): {expected_return}")
print(f"方差Var: {variance}")
print(f"标准差: {std_dev}")
print(f"四舍五入后标准差: {rounded_std_dev}")

这样用循环就完整复现了你手动计算的所有步骤,而且结果完全一致~

内容的提问来源于stack exchange,提问作者César Chávez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:56:41