概率统计Python计算:自定义分布的方差计算

在这里插入图片描述
对于自定义分布,则可根据方差的计算公式,先分别计算出 X X X的1阶原点矩 E ( X ) E(X) E(X)和2阶原点矩 E ( X 2 ) E(X^2) E(X2),然后计算 D ( X ) = E ( X 2 ) − [ E ( X ) ] 2 D(X)=E(X^2)-[E(X)]^2 D(X)=E(X2)[E(X)]2
例1 设随机变量 X X X的密度函数为 f ( x ) = 1 2 e − ∣ x ∣ , x ∈ ( − ∞ , + ∞ ) f(x)=\frac{1}{2}e^{-|x|}, x\in(-\infty, +\infty) f(x)=21ex,x(,+)。计算方差 D ( X ) D(X) D(X)
解: 注意到 f ( x ) f(x) f(x)是一个偶函数,所以 x f ( x ) xf(x) xf(x)是奇函数,而 x 2 f ( x ) x^2f(x) x2f(x)为偶函数。于是 E ( X ) = ∫ − ∞ + ∞ x f ( x ) d x = 0 E(X)=\int_{-\infty}^{+\infty}xf(x)dx=0 E(X)=+xf(x)dx=0
E ( X 2 ) = ∫ − ∞ + ∞ x 2 f ( x ) d x = 2 ∫ 0 + ∞ x 2 f ( x ) d x = 2 ∫ 0 + ∞ x 2 ⋅ 1 2 e − x d x = ∫ 0 + ∞ x 2 e − x d x = − ∫ 0 + ∞ x 2 d e − x = 2 ∫ 0 + ∞ x e − x d x = 2 E(X^2)=\int_{-\infty}^{+\infty}x^2f(x)dx=2\int_{0}^{+\infty}x^2f(x)dx\\ =2\int_{0}^{+\infty}x^2\cdot\frac{1}{2}e^{-x}dx=\int_{0}^{+\infty}x^2e^{-x}dx\\ =-\int_{0}^{+\infty}x^2de^{-x}=2\int_{0}^{+\infty}xe^{-x}dx=2 E(X2)=+x2f(x)dx=20+x2f(x)dx=20+x221exdx=0+x2exdx=0+x2dex=20+xexdx=2

D ( X ) = E ( X 2 ) − [ E ( X ) ] 2 = 2 − 0 = 2. D(X)=E(X^2)-[E(X)]^2=2-0=2. D(X)=E(X2)[E(X)]2=20=2.
下列代码验算本例计算结果。

import numpy as np                              #导入numpy
f=lambda x: np.exp(-abs(x))/2                   #概率密度函数f(x)
Ex=expectcont(pdf=f)                            #1阶原点矩
Ex2=expectcont(pdf=f, func=lambda x:x**2)       #2阶原点矩
print('D(X)=%.2f'%(Ex2-Ex**2))                  #输出方差

程序的第2行设置概率密度函数 f ( x ) = 1 2 e − ∣ x ∣ f(x)=\frac{1}{2}e^{-|x|} f(x)=21ex。第3行调用博文《连续型自定义分布数学期望的计算》定义的expectcont函数,向表示概率密度函数的参数pdf传递 f ( x ) f(x) f(x),表示随机变量函数的参数func使用缺省值 g ( x ) = x g(x)=x g(x)=x,计算数学期望 E ( X ) E(X) E(X)。第5行调用expectcont函数,传递给参数func的是 g ( x ) = x 2 g(x)=x^2 g(x)=x2,计算2阶原点矩 E ( X 2 ) E(X^2) E(X2)。第6行输出 D ( X ) = E ( X 2 ) − [ E ( X ) ] 2 D(X)=E(X^2)-[E(X)]^2 D(X)=E(X2)[E(X)]2。运行程序,输出

D(X)=2.00

此即为 D ( X ) = 2 D(X)=2 D(X)=2精确到百分位的值。
例2 ( X , Y ) (X, Y) (X,Y)的联合分布律为
在这里插入图片描述
计算 D ( X ) D(X) D(X) D ( Y ) D(Y) D(Y)
:不难算得 X X X Y Y Y的边缘分布律均为 ( − 1 0 1 3 / 8 2 / 8 3 / 8 ) \begin{pmatrix}-1&0&1\\3/8&2/8&3/8\end{pmatrix} (13/802/813/8)。因此, E ( X ) = E ( Y ) = 0 E(X)=E(Y)=0 E(X)=E(Y)=0 E ( X 2 ) = E ( Y 2 ) = 3 / 4 E(X^2)=E(Y^2)=3/4 E(X2)=E(Y2)=3/4。于是 D ( Y ) = D ( X ) = E ( X 2 ) − [ E ( X ) ] 2 = 3 / 4 D(Y)=D(X)=E(X^2)-[E(X)]^2=3/4 D(Y)=D(X)=E(X2)[E(X)]2=3/4。下列代码验算这一结果。

import numpy as np                              #导入numpy
from sympy import Rational as R                 #导入Rational
X=np.array([-1, 0, 1])                          #X的取值
Y=np.array([-1, 0, 1])                          #Y的取值
Pxy=np.array([[R(1,8), R(1,8), R(1,8)],         #联合分布律
              [R(1,8), R(0), R(1,8)],
              [R(1,8), R(1,8), R(1,8)]])
Ex=expect(Pxy, X)                               #计算E(X)
Ex2=expect(Pxy,X, func=lambda x,y: x*x)         #计算E(X^2)
Ey=expect(Pxy, Yv=Y, func=lambda x,y:y)         #计算E(Y)
Ey2=expect(Pxy, Yv=Y, func=lambda x, y: y*y)    #计算E(Y^2)
Dx=Ex2-Ex**2                                    #计算D(X)
Dy=Ey2-Ey**2                                    #计算D(Y)
print('D(X)=%.2f'%Dx)
print('D(Y)=%.2f'%Dy)

借助代码中的注释信息,不难理解程序。第8~11行调用函数exepect(详见博文《离散型自定义分布数学期望的计算》)计算 X X X Y Y Y的1、2阶原点矩。注意,由于我们对1-维的和2-维的数据采用统一的程序计算变量的期望,所以不用对2-维数据单独计算边缘分布。运行程序,输出

D(X)=3/4
D(Y)=3/4

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值