概率统计Python计算:连续型自定义分布数学期望的计算(二)

在这里插入图片描述
对联合密度函数为 f ( x , y ) f(x,y) f(x,y)的2-维连续型随机向量 ( X , Y ) (X,Y) (X,Y),下列代码定义计算其函数 Z = g ( X , Y ) Z=g(X,Y) Z=g(X,Y)的数学期望 E ( g ( X , Y ) ) E(g(X,Y)) E(g(X,Y))的Python函数。

from scipy.integrate import dblquad         #导入dblquad
def expectcont2(pdf, func):              	#pdf为密度函数func为随机向量函数
    gf=lambda y, x:pdf(y, x)*func(y, x)     #g(x,y)f(x,y)
    mean, _=dblquad(gf, -np.infty, np.infty,#计算E(g(X,Y))
                        -np.infty, np.infty)
    return mean

计算2-维连续型随机向量 ( X , Y ) (X,Y) (X,Y)的函数 Z = g ( X , Y ) Z=g(X,Y) Z=g(X,Y)的数学期望 E ( g ( X , Y ) ) E(g(X,Y)) E(g(X,Y))的Python函数expectcont2的两个参数pdf表示联合密度函数 f ( x , y ) f(x,y) f(x,y),func表示随机向量函数 g ( X , Y ) g(X,Y) g(X,Y)。第3行设置被积函数 g ( x , y ) f ( x , y ) g(x,y)f(x,y) g(x,y)f(x,y),记为gf。注意,作为被积函数,自变量的书写顺序需与积分顺序保持一致:先y后x。第4~5行调用scipy.integrate.dblquad(第1行导入)计算 E ( g ( X , Y ) ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ g ( x , y ) f ( x , y ) d x d y E(g(X,Y))=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}g(x,y)f(x,y)dxdy E(g(X,Y))=++g(x,y)f(x,y)dxdy
例1 设随机向量 ( X , Y ) (X, Y) (X,Y)的联合密度函数为 f ( x , y ) = { 3 2 x 3 y 2 1 x < y < x , x > 1 0 其他 f(x, y)=\begin{cases}\frac{3}{2x^3y^2}&\frac{1}{x}<y<x,x>1\\0&\text{其他}\end{cases} f(x,y)={2x3y230x1<y<x,x>1其他,计算 E ( Y ) E(Y) E(Y) E ( 1 X Y ) E\left(\frac{1}{XY}\right) E(XY1)
解: 考虑 ( X , Y ) (X, Y) (X,Y)的联合密度函数 f ( x , y ) f(x, y) f(x,y)的非零区域(如下图所示)。
在这里插入图片描述
E ( Y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ y f ( x , y ) d y d x = ∫ 1 + ∞ ( ∫ 1 / x x 3 y 2 x 3 y 2 d y ) d x = ∫ 1 + ∞ ( 3 2 x 3 ∫ 1 / x x 1 y d y ) d x = ∫ 1 + ∞ ( 3 2 x 3 [ ln ⁡ y ] 1 / x x ) d x = 3 ∫ 1 + ∞ ln ⁡ x x 3 d x = − 3 2 ∫ 1 + ∞ ln ⁡ x d ( 1 x 2 ) = [ − 3 2 ln ⁡ x x 2 ] 1 + ∞ + 3 2 ∫ 1 + ∞ 1 x 3 d x = 3 4 . E(Y)=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}yf(x, y)dydx=\int\limits_{1}^{+\infty}\left(\int\limits_{1/x}^{x}\frac{3y}{2x^3y^2}dy\right)dx=\int\limits_{1}^{+\infty}\left(\frac{3}{2x^3}\int\limits_{1/x}^{x}\frac{1}{y}dy\right)dx\\ =\int\limits_{1}^{+\infty}\left(\frac{3}{2x^3}\left[\ln y\right]_{1/x}^{x}\right)dx =3\int\limits_{1}^{+\infty}\frac{\ln x}{x^3}dx=-\frac{3}{2}\int\limits_{1}^{+\infty}\ln xd\left(\frac{1}{x^2}\right)\\ =\left[-\frac{3}{2}\frac{\ln x}{x^2}\right]_{1}^{+\infty}+\frac{3}{2}\int\limits_{1}^{+\infty}\frac{1}{x^3}dx=\frac{3}{4}. E(Y)=++yf(x,y)dydx=1+ 1/xx2x3y23ydy dx=1+ 2x331/xxy1dy dx=1+(2x33[lny]1/xx)dx=31+x3lnxdx=231+lnxd(x21)=[23x2lnx]1++231+x31dx=43.
E ( 1 X Y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ 1 x y f ( x , y ) d y d x = ∫ 1 + ∞ ∫ 1 / x x 1 x y 3 2 x 3 y 2 d y d x = ∫ 1 + ∞ ∫ 1 / x x 3 2 x 4 y 3 d y d x = 3 2 ∫ 1 + ∞ 1 x 4 ( ∫ 1 / x x 1 y 3 d y ) d x = 3 4 ∫ 1 + ∞ x 4 − 1 x 6 d x = 3 4 ( ∫ 1 + ∞ 1 x 2 d x − ∫ 1 + ∞ 1 x 6 d x ) = 3 5 . E\left(\frac{1}{XY}\right)=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}\frac{1}{xy}f(x, y)dydx=\int\limits_{1}^{+\infty}\int\limits_{1/x}^{x}\frac{1}{xy}\frac{3}{2x^3y^2}dydx\\ =\int\limits_{1}^{+\infty}\int\limits_{1/x}^{x}\frac{3}{2x^4y^3}dydx=\frac{3}{2}\int\limits_{1}^{+\infty}\frac{1}{x^4}\left(\int\limits_{1/x}^{x}\frac{1}{y^3}dy\right)dx\\ =\frac{3}{4}\int\limits_{1}^{+\infty}\frac{x^4-1}{x^6}dx=\frac{3}{4}\left(\int\limits_{1}^{+\infty}\frac{1}{x^2}dx-\int\limits_{1}^{+\infty}\frac{1}{x^6}dx\right)=\frac{3}{5}. E(XY1)=++xy1f(x,y)dydx=1+1/xxxy12x3y23dydx=1+1/xx2x4y33dydx=231+x41 1/xxy31dy dx=431+x6x41dx=43 1+x21dx1+x61dx =53.
下列代码验算本例计算结果。

from utility import expectcont2                  #导入expectOfxycont
f=lambda y, x: 3/(2*x**3*y**2)\                  #定义联合密度函数
    if (x>1) & (y<x) & (y>1/x)\
    else 0
mean=expectcont2(pdf=f, func=lambda y, x: y)     #计算E(Y)
print('E(Y)=%.2f'%mean)
mean=expectcont2(pdf=f, func=lambda y, x: 1/x/y) #计算E(1/XY)
print('E(1/XY)=%.2f'%mean)

程序的第2~4行定义 ( X , Y ) (X, Y) (X,Y)的联合密度函数 f ( x , y ) f(x, y) f(x,y),需要注意的是,参数书写顺序应与积分顺序一致:先y后x。第5行调用函数expectcont2计算 E ( Y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ y f ( x , y ) d x d y E(Y)=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}yf(x,y)dxdy E(Y)=++yf(x,y)dxdy。传递给func的是函数 g ( x , y ) = y g(x,y)=y g(x,y)=y。第7行调用expectcont2函数计算 E ( 1 X Y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ 1 x y f ( x , y ) d x d y E\left(\frac{1}{XY}\right)=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}\frac{1}{xy}f(x,y)dxdy E(XY1)=++xy1f(x,y)dxdy,传递给参数func的是 g ( X , Y ) = 1 X Y g(X, Y)=\frac{1}{XY} g(X,Y)=XY1。运行程序,输出

E(Y)=0.75
E(1/XY)=0.60

此恰为 E ( Y ) = 3 / 4 E(Y)=3/4 E(Y)=3/4 E ( 1 X Y ) = 3 / 5 E(\frac{1}{XY})=3/5 E(XY1)=3/5精确到百分位的值。
注意:由于函数expectcont2中调用dblquad计算重积分 ∫ − ∞ + ∞ ∫ − ∞ + ∞ g ( x , y ) f ( x , y ) d x d y \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}g(x,y)f(x,y)dxdy ++g(x,y)f(x,y)dxdy x x x y y y的积分限均为从 − ∞ -\infty + ∞ +\infty +,因此Python会发送一些警告信息(warning),这并不会影响计算结果。为屏蔽这样的警告信息,可在程序开始前加入下列代码:

import warnings
warnings.filterwarnings("ignore")

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值