概率统计Python计算:经典分布的方差计算

在这里插入图片描述
与数学期望计算相同,scipy.stats包中提供的经典分布对象都拥有函数var,计算服从该分布的随机变量的方差。常用分布的var函数调用接口如下表所列

分布调用接口参数
bernoulli(0-1分布)var( p)p:分布参数 p p p
binom(二项分布)var(n, p)n, p:分布参数 n n n p p p
poisson(泊松分布)var(mu)mu:分布参数 λ \lambda λ
uniform(均匀分布)var(loc=0, scale=1)loc:分布参数 a a a,缺省值为0,scale:分布参数 b − a b-a ba缺省值为1
expon(指数分布)var(scale=1)scale:分布参数 λ \lambda λ,缺省值为1
norm(正态分布)var(loc=0, scale=1)loc:分布参数 μ \mu μ,缺省值为0,scale:分布参数 σ \sigma σ,缺省值为1

例1 设随机变量 X X X~ N ( 0 , 4 ) N(0, 4) N(0,4) Y Y Y~ U ( 0 , 4 ) U(0, 4) U(0,4),且 X X X Y Y Y相互独立,计算 D ( X + Y ) D(X+Y) D(X+Y) D ( 2 X − 3 Y ) D(2X-3Y) D(2X3Y)
解: 由于 X X X~ N ( 0 , 4 ) N(0, 4) N(0,4) D ( X ) = 4 D(X)=4 D(X)=4 Y Y Y~ U ( 0 , 4 ) U(0, 4) U(0,4),故 D ( Y ) = 4 2 12 = 4 3 D(Y)=\frac{4^2}{12}=\frac{4}{3} D(Y)=1242=34。又由于 X X X Y Y Y相互独立,故 D ( X + Y ) = D ( X ) + D ( Y ) = 4 + 4 / 3 = 16 / 3 D(X+Y)=D(X)+D(Y)=4+4/3=16/3 D(X+Y)=D(X)+D(Y)=4+4/3=16/3。同理, D ( 2 X − 3 Y ) = 2 2 D ( X ) + 3 2 D ( Y ) = 28 D(2X-3Y)=2^2D(X)+3^2D(Y)=28 D(2X3Y)=22D(X)+32D(Y)=28。下列代码验算本例计算结果。

from scipy.stats import norm, uniform   #导入norm和uniform
Dx=norm.var(scale=2)                    #计算X的方差
Dy=uniform.var(scale=4)                 #计算Y的方差
print('D(X+Y)=%.4f'%(Dx+Dy))            #输出D(X+Y)
print('D(2X-3Y)=%.4f'%(4*Dx+9*Dy))      #输出D(2X-3Y)

本题中 X X X~ N ( 0 , 4 ) N(0,4) N(0,4) Y Y Y~ U ( 0 , 4 ) U(0,4) U(0,4),故第2、3两行分别调用norm的var函数和uniform的var函数计算方差 D ( X ) D(X) D(X) D ( Y ) D(Y) D(Y)。注意,根据上列表格中正态分布norm的var函数,参数loc表示 μ \mu μ(缺省值为0),参数scale表示 σ \sigma σ。而均匀分布uniform的var函数,参数loc表示 a a a(缺省值为0),scale表示 b − a b-a ba。故只需各自传递给参数scale的正确值2和4。运行程序,输出

D(X+Y)=5.3333
D(2X-3Y)=28.0000

此即为 D ( X + Y ) = 16 / 3 D(X+Y)=16/3 D(X+Y)=16/3 D ( 2 X − 3 Y ) = 28 D(2X-3Y)=28 D(2X3Y)=28精确到万分位的值。
例2 设随机变量 X 1 X_1 X1~ N ( 0 , 1 ) N(0,1) N(0,1) X 2 X_2 X2~ b ( 10 , 0.2 ) b(10,0.2) b(10,0.2) X 3 X_3 X3~ π ( 4 ) \pi(4) π(4) X 1 X_1 X1 X 2 X_2 X2 X 3 X_3 X3相互独立。计算 E ( X 1 − X 2 − 2 X 3 + 2 ) E(X_1-X_2-2X_3+2) E(X1X22X3+2) D ( X 1 − X 2 − 2 X 3 + 2 ) D(X_1-X_2-2X_3+2) D(X1X22X3+2)
解: 我们知道 E ( X 1 ) = 0 E(X_1)=0 E(X1)=0 D ( X 1 ) = 1 D(X_1)=1 D(X1)=1 E ( X 2 ) = 2 E(X_2)=2 E(X2)=2 D ( X 2 ) = 1.6 D(X_2)=1.6 D(X2)=1.6 E ( X 3 ) = D ( X 3 ) = 4 E(X_3)=D(X_3)=4 E(X3)=D(X3)=4。故
E ( X 1 − X 2 − 2 X 3 + 2 ) = E ( X 1 ) − E ( X 2 ) − 2 E ( X 3 ) + 2 = 0 − 2 − 2 ⋅ 4 + 2 = − 8 , D ( X 1 − X 2 − 2 X 3 + 2 ) = D ( X 1 ) + D ( X 2 ) + 2 2 ⋅ D ( X 3 ) = 1 + 1.6 + 16 = 18.6. E(X_1-X_2-2X_3+2)=E(X_1)-E(X_2)-2E(X_3)+2=0-2-2\cdot4+2=-8,\\D(X_1-X_2-2X_3+2)=D(X_1)+D(X_2)+2^2\cdot D(X_3)=1+1.6+16=18.6. E(X1X22X3+2)=E(X1)E(X2)2E(X3)+2=0224+2=8,D(X1X22X3+2)=D(X1)+D(X2)+22D(X3)=1+1.6+16=18.6.
下列程序验算本例的计算结果。

from scipy.stats import norm, binom, poisson	#导入norm, binom, poisson
Ex1=norm.expect(scale=1)						#E(X1)
Ex2=binom.expect(args=(10,0.2))					#E(X2)
Ex3=poisson.expect(args=(4,))					#E(X3)
print('E(X1-X2-2X3+2)=%.1f'%(Ex1-Ex2-2*Ex3+2))
Dx1=norm.var(scale=1)							#D(X1)
Dx2=binom.var(10, 0.2)							#D(X2)
Dx3=poisson.var(4)								#D(X3)
print('D(X1-X2-2X3+2)=%.1f'%(Dx1+Dx2+4*Dx3))

第2~4行分别调用norm,binom和poisson的expect函数计算 E ( X 1 ) E(X_1) E(X1) E ( X 2 ) E(X_2) E(X2) E ( X 3 ) E(X_3) E(X3),注意各自传递的参数(参见博文《经典分布数学期望的计算》)。第6~8行调用norm,binom和poisson的var函数计算 D ( X 1 ) D(X_1) D(X1) D ( X 2 ) D(X_2) D(X2) D ( X 3 ) D(X_3) D(X3),注意各自传递的参数。运行程序,输出

E(X1-X2-2X3+2)=-8.0
D(X1-X2-2X3+2)=18.6

写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好
返回《导引》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值