概率统计Python计算:经典分布数学期望的计算

在这里插入图片描述
我们知道Python的scipy.stats包提供了大量的经典分布(如0-1分布、二项分布、泊松分布,均匀分布,指数分布,正态分布……等等),这些经典分布对象拥有计算数学期望的expect函数,该函数常见分布的调用接口如下表所列。

分布调用接口参数
bernoulli(0-1分布)expect(func, args=(p,))func:随机变量函数,缺省值为x;args:传递分布参数p
binom(二项分布)expect(func, args=(n, p))func与上同,args:传递分布参数(n,p)
poisson(泊松分布)expect(func, args=(mu,))func与上同,args:传递分布参数 λ \lambda λ
uniform(均匀分布)expect(func, loc=0, scale=1)func与上同,loc:传递分布参数 a a a,缺省值为0,scale:传递 b − a b-a ba,缺省值为1
expon(指数分布)expect(func, scale=1)func与上同,scale:传递分布参数 λ \lambda λ,缺省值为1
norm(正态分布)expect(func, loc=0, scale=1)func与上同,loc:传递分布参数 μ \mu μ,缺省值为0,scale:传递分布参数 σ \sigma σ,缺省值为1

例1 某城市一天内发生严重刑事案件数 X X X服从参数为 1 3 \frac{1}{3} 31的泊松分布。记 Y Y Y表示一年(365天)内未发生严重刑事案件的天数,计算 E ( Y ) E(Y) E(Y)
:。由于一天中发生严重刑事案件数 X X X~ E x p ( 1 3 ) Exp(\frac{1}{3}) Exp(31),所以一天中无刑事案件发生的概率 p = P ( X = 0 ) = e − 1 3 p=P(X=0)=e^{-\frac{1}{3}} p=P(X=0)=e31。一年中无刑事案件发生的天数 Y Y Y~ b ( 365 , p ) b(365, p) b(365,p),所以 E ( Y ) = 365 p E(Y)=365p E(Y)=365p。用下列代码即可算得 E ( Y ) E(Y) E(Y)

from scipy.stats import poisson, binom      #导入poisson和binom
p=poisson.pmf(k=0, mu=1/3)                  #计算p=P(X=0)
n=365                                       #设置一年天数n
mean=binom.expect(args=(n, p))              #计算Y~b(n, p)的数学期望
print('E(Y)=%.2f'%mean)

注意程序中第4行调用二项分布 b ( 365 , p ) b(365, p) b(365,p)对象binorm的expect函数计算 Y Y Y的数学期望。该函数中命名参数args需传递二项分布的两个参数 n n n p p p。运行程序,输出计算结果

E(Y)=261.53

scipy.stats包中提供的各经典分布的expect函数,均有命名参数func,其默认值为恒等函数 f ( x ) = x f(x)=x f(x)=x。传递不同的函数,即可计算变量函数的期望。
例2 设电压 X X X~ N ( 0 , 9 ) N(0, 9) N(0,9),将电压施加于一检波器,其输出电压为 Y = 5 X 2 Y=5X^2 Y=5X2,计算输出电压 Y Y Y的均值。
:本题就是在 X X X~ N ( 0 , 9 ) N(0, 9) N(0,9) Y = g ( X ) = 5 X 2 Y=g(X)=5X^2 Y=g(X)=5X2的假设下,计算 E ( Y ) E(Y) E(Y)。下列代码完成计算。

from scipy.stats import norm                #导入norm
g=lambda x: 5*x**2                          #设置函数Y=g(X)=5X^2
mean=norm.expect(func=g, loc=0, scale=3)    #计算E(Y)
print('E(5X^2)=%.2f'%mean)

程序的第3行调用表示正态分布 N ( 0 , 9 ) N(0,9) N(0,9)norm对象的函数expect,传递给参数func的函数g定义在第2行,即 g ( X ) = 5 X 2 g(X)=5X^2 g(X)=5X2。参数loc为0,scale为3。运行程序,输出

E(5X^2)=45.00

对于构成随机向量 ( X , Y ) (X, Y) (X,Y)的两个随机变量 X X X Y Y Y,若均服从经典分布且相互独立,则 ( X , Y ) (X, Y) (X,Y)的函数 Z = X Y Z=XY Z=XY的期望也可以直接调用各自的expect函数加以计算。
例3 设随机变量 X X X~ E x p ( 1 / 2 ) Exp(1/2) Exp(1/2) Y Y Y~ E x p ( 1 / 4 ) Exp(1/4) Exp(1/4),且 X X X Y Y Y相互独立,计算 E ( X Y ) E(XY) E(XY)
:由 X X X~ E x p ( 1 / 2 ) Exp(1/2) Exp(1/2) Y Y Y~ E x p ( 1 / 4 ) Exp(1/4) Exp(1/4),由于 E ( X ) = 1 / 2 E(X)=1/2 E(X)=1/2 E ( Y ) = 1 / 4 E(Y)=1/4 E(Y)=1/4。由 X X X Y Y Y相互独立,根据数学期望的性质知 E ( X Y ) = E ( X ) E ( Y ) = 1 / 8 E(XY)=E(X)E(Y)=1/8 E(XY)=E(X)E(Y)=1/8。下列代码验算 E ( X Y ) E(XY) E(XY)

from scipy.stats import expon           #导入expon
meanx=expon.expect(scale=1/2)           #计算E(X)
meany=expon.expect(scale=1/4)           #计算E(Y)
print('E(XY)=%.3f'%(meanx*meany))       #输出E(XY)

运行程序,输出

E(XY)=0.125

此即为 E ( X Y ) = 1 / 8 E(XY)=1/8 E(XY)=1/8精确到千分位的值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好
返回《导引》

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值