对联合密度函数为
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/x∫x2x3y23ydy
dx=1∫+∞
2x331/x∫xy1dy
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/x∫xxy12x3y23dydx=1∫+∞1/x∫x2x4y33dydx=231∫+∞x41
1/x∫xy31dy
dx=431∫+∞x6x4−1dx=43
1∫+∞x21dx−1∫+∞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学,读正版书好。
返回《导引》