在Python中计算数学期望通常有以下几种方法:
2. 对于不等概率的随机变量,可以使用`numpy`库中的`dot`函数进行矩阵点乘计算。
3. 对于离散型随机变量,可以使用`scipy.stats`库中的`rv_discrete`子类自定义分布,并调用其`expect`方法计算数学期望。
4. 对于连续型随机变量,可以使用`scipy.stats`库中的`rv_continuous`子类自定义分布,并调用其`expect`方法计算数学期望。
下面是一些示例代码:
等概率随机变量
import numpy as np
假设随机变量X是等概率的[0,1]区间上的均匀分布
X = np.random.rand(1000)
计算数学期望
mean_X = np.mean(X)
print(f"数学期望:{mean_X}")
不等概率随机变量
import numpy as np
假设随机变量X的概率分布如下
probabilities = [0.1, 0.2, 0.3, 0.4]
values = [1, 2, 3, 4]
创建概率分布矩阵
P = np.array(probabilities).reshape(-1, 1)
V = np.array(values).reshape(1, -1)
计算数学期望
mean_X = np.dot(P, V).flatten()
print(f"数学期望:{mean_X}")
离散型随机变量
from scipy.stats import rv_discrete
定义离散型随机变量的取值和概率
values = [1, 2, 3, 4]
probs = [0.25, 0.25, 0.25, 0.25]
创建离散分布对象
my_dist = rv_discrete(values=values, probs=probs)
计算数学期望
mean_X = my_dist.expect()
print(f"数学期望:{mean_X}")
连续型随机变量
from scipy.stats import rv_continuous
定义连续型随机变量的概率密度函数(PDF)
def pdf(x):
return np.exp(-x2 / 2)
创建连续分布对象
my_dist = rv_continuous(a=0, b=np.inf, pdf=pdf)
计算数学期望
mean_X = my_dist.expect()
print(f"数学期望:{mean_X}")
以上代码展示了如何在Python中计算等概率、不等概率、离散型和连续型随机变量的数学期望。请根据具体情况选择合适的方法