如何用python计算期望值(附示例)
概率分布告诉我们随机变量取特定值的概率。
例如,以下概率分布告诉我们某支足球队在给定比赛中进球一定数量的概率:
为了找到概率分布的期望值,我们可以使用以下公式:
µ = Σx * P(x)
金子:
- x:数据值
- P(x):价值概率
例如,足球队的预期进球数计算如下:
μ = 0*0.18 + 1*0.34 + 2*0.35 + 3*0.11 + 4*0.02 = 1.45 个进球。
为了在 Python 中计算概率分布的期望值,我们可以定义一个简单的函数:
import numpy as np def expected_value(values, weights): values = np. asarray (values) weights = np. asarray (weights) return (values * weights). sum ()/weights. sum ()
下面的例子展示了如何在实际中使用这个功能。
示例:用 Python 计算期望值
以下代码展示了如何使用我们之前定义的Expected_value()函数计算概率分布的期望值:
#define values
values = [0, 1, 2, 3, 4]
#define probabilities
probs = [.18, .34, .35, .11, .02]
#calculate expected value
expected_value(values, probs)
1.450000
预期值为1.45 。这与我们之前手动计算的值相符。
请注意,如果值数组和概率数组的长度不相等,此函数将返回错误。
例如:
#define values
values = [0, 1, 2, 3, 4]
#define probabilities
probs = [.18, .34, .35, .11, .02, .05, .11]
#attempt to calculate expected value
expected_value(values, probs)
ValueError : operands could not be broadcast together with shapes (5,) (7,)
我们收到错误,因为第一个数组的长度是5 ,而第二个数组的长度是7 。
为了使该期望值函数起作用,两个数组的长度必须相等。
其他资源
以下教程解释了如何在 Python 中计算其他指标: