对于联合分布律为
的2-维离散型随机向量
(
X
,
Y
)
(X,Y)
(X,Y),其函数
g
(
X
,
Y
)
g(X,Y)
g(X,Y)的数学期望
E
(
g
(
X
,
Y
)
)
=
∑
i
=
1
m
∑
j
=
1
n
g
(
x
i
,
y
j
)
p
i
j
E(g(X,Y))=\sum\limits_{i=1}^m\sum\limits_{j=1}^ng(x_i,y_j)p_{ij}
E(g(X,Y))=i=1∑mj=1∑ng(xi,yj)pij是2-维数组
(
g
(
x
1
,
y
1
)
g
(
x
1
,
y
2
)
⋯
g
(
x
1
,
y
n
)
g
(
x
2
,
y
1
)
g
(
x
2
,
y
2
)
⋯
g
(
x
2
,
y
n
)
⋮
⋮
⋯
⋮
g
(
x
m
,
y
1
)
g
(
x
m
,
y
2
)
⋯
g
(
x
m
,
y
n
)
)
\begin{pmatrix}g(x_1,y_1)&g(x_1,y_2)&\cdots&g(x_1,y_n)\\g(x_2,y_1)&g(x_2,y_2)&\cdots&g(x_2,y_n)\\\vdots&\vdots&\cdots&\vdots\\g(x_m,y_1)&g(x_m,y_2)&\cdots&g(x_m,y_n)\end{pmatrix}
g(x1,y1)g(x2,y1)⋮g(xm,y1)g(x1,y2)g(x2,y2)⋮g(xm,y2)⋯⋯⋯⋯g(x1,yn)g(x2,yn)⋮g(xm,yn)
和
(
p
11
p
12
⋯
p
1
n
p
21
p
22
⋯
p
2
n
⋮
⋮
⋯
⋮
p
m
1
p
m
2
⋯
p
m
n
)
\begin{pmatrix}p_{11}&p_{12}&\cdots&p_{1n}\\p_{21}&p_{22}&\cdots&p_{2n}\\\vdots&\vdots&\cdots&\vdots\\p_{m1}&p_{m2}&\cdots&p_{mn}\end{pmatrix}
p11p21⋮pm1p12p22⋮pm2⋯⋯⋯⋯p1np2n⋮pmn
按元素相乘所得2-维数组
(
g
(
x
1
,
y
1
)
p
11
g
(
x
1
,
y
2
)
p
12
⋯
g
(
x
1
,
y
n
)
p
1
n
g
(
x
2
,
y
1
)
p
21
g
(
x
2
,
y
2
)
p
22
⋯
g
(
x
2
,
y
n
)
p
2
n
⋮
⋮
⋯
⋮
g
(
x
m
,
y
1
)
p
m
1
g
(
x
m
,
y
2
)
p
m
2
⋯
g
(
x
m
,
y
n
)
p
m
n
)
\begin{pmatrix}g(x_1,y_1)p_{11}&g(x_1,y_2)p_{12}&\cdots&g(x_1,y_n)p_{1n}\\g(x_2,y_1)p_{21}&g(x_2,y_2)p_{22}&\cdots&g(x_2,y_n)p_{2n}\\\vdots&\vdots&\cdots&\vdots\\g(x_m,y_1)p_{m1}&g(x_m,y_2)p_{m2}&\cdots&g(x_m,y_n)p_{mn}\end{pmatrix}
g(x1,y1)p11g(x2,y1)p21⋮g(xm,y1)pm1g(x1,y2)p12g(x2,y2)p22⋮g(xm,y2)pm2⋯⋯⋯⋯g(x1,yn)p1ng(x2,yn)p2n⋮g(xm,yn)pmn
的元素之和。
将上述计算方法写成计算数学期望的函数
def expect(P, Xv=None, Yv=None, func=lambda x, y: x):
stru=P.shape #获取P的结构
arrayType=type(np.array([])) #数组类型
if (len(stru)>1) and (type(Xv)==arrayType): #2维向量且需计算X
Xv=Xv.reshape(Xv.size,1)
if type(Yv)==arrayType: #2维向量且需计算Y
Yv=Yv.reshape(1, Yv.size)
mean=(func(Xv,Yv)*P).sum() #计算期望
return mean
函数expect的4个参数中P表示分布律中的概率序列。Xv和Yv分别表示随机变量
X
X
X和
Y
Y
Y的取值序列,缺省为None。func表示函数关系
Z
=
g
(
X
,
Y
)
Z=g(X,Y)
Z=g(X,Y),缺省值为函数
g
(
X
,
Y
)
=
X
g(X,Y)=X
g(X,Y)=X。第2行读取表示概率序列的数组P的结构,P.shape是一个元组,其长度大于1表示P是一个矩阵。第3行获取numpy的数组类型,记为arrayType,若参数Xv或Yv传递的是数组,则其类型type(Xv)(或type(Yv))就与arrayType一致。第4~5行的if语句对2-维随机向量(len(stru)>1)且需计算
X
X
X期望(type(Xv)==arrayType)的情形,将Xv设置成
m
×
1
m\times1
m×1的列向量,以保证矩阵按元素计算的正确性。出于同样的目的,第6~7行的if语句对需要计算
Y
Y
Y的期望(此时,P一定是2-维数组),将Yv设置成
1
×
n
1\times n
1×n的行向量。第8行将数组func(Xv,Yv)*P元素之和(func(Xv,Yv)*P).sum()记为返回值mean。第9行将计算结果返回。
例1 设
(
X
,
Y
)
(X, Y)
(X,Y)的联合分布律为
计算
E
(
X
)
E(X)
E(X),
E
(
Y
)
E(Y)
E(Y)和
E
(
X
3
Y
2
)
E(X^3Y^2)
E(X3Y2)。
解: 为计算
E
(
X
)
E(X)
E(X)和
E
(
Y
)
E(Y)
E(Y),先计算
X
X
X,
Y
Y
Y的边缘分布。不难解得
X
X
X~
(
0
1
5
8
3
8
)
\begin{pmatrix}0&1\\\frac{5}{8}&\frac{3}{8}\end{pmatrix}
(085183),
Y
Y
Y~
(
1
2
3
3
8
2
8
3
8
)
\begin{pmatrix}1&2&3\\\frac{3}{8}&\frac{2}{8}&\frac{3}{8}\end{pmatrix}
(183282383)。所以
E
(
X
)
=
0
×
5
8
+
1
×
3
8
=
3
8
E(X)=0\times\frac{5}{8}+1\times\frac{3}{8}=\frac{3}{8}
E(X)=0×85+1×83=83,
E
(
Y
)
=
1
×
3
8
+
2
×
2
8
+
3
×
3
8
=
2
E(Y)=1\times\frac{3}{8}+2\times\frac{2}{8}+3\times\frac{3}{8}=2
E(Y)=1×83+2×82+3×83=2。
为计算
E
(
X
3
Y
2
)
E(X^3Y^2)
E(X3Y2),可以运用先计算
Z
=
X
3
Y
2
Z=X^3Y^2
Z=X3Y2的分布律,然后计算
E
(
Z
)
E(Z)
E(Z)。根据
(
X
,
Y
)
(X,Y)
(X,Y)的联合分布律,不难算得
Z
Z
Z~
(
0
1
4
9
5
4
1
8
1
8
1
8
)
\begin{pmatrix}0&1&4&9\\\frac{5}{4}&\frac{1}{8}&\frac{1}{8}&\frac{1}{8}\end{pmatrix}
(045181481981)。于是
E
(
X
3
Y
2
)
=
E
(
Z
)
=
0
×
5
4
+
1
×
1
8
+
4
×
1
8
+
9
×
1
8
=
7
4
E(X^3Y^2)=E(Z)=0\times\frac{5}{4}+1\times\frac{1}{8}+4\times\frac{1}{8}+9\times\frac{1}{8}=\frac{7}{4}
E(X3Y2)=E(Z)=0×45+1×81+4×81+9×81=47。下列代码验算本例计算结果。
import numpy as np #导入numpy
from sympy import Rational as R #导入Rational
X=np.array([0, 1]) #设置X取值
Y=np.array([1, 2, 3]) #设置Y取值
Pxy=np.array([[R(1,4), R(1,8), R(1,4)], #设置分布律中概率矩阵
[R(1,8), R(1,8), R(1,8)]])
meanx=expect(Pxy, X) #计算E(X)
g=lambda x, y: y #设置函数g(X,Y)=Y
meany=expect(Pxy, Yv=Y, Py) #计算E(Y)
g=lambda x, y: (x**3)*(y**2) #设置函数g(X, Y)=X^3Y^2
mean=expect(Pxy, X, Y, g) #计算E(X^3Y^2)
print('E(X)=%s'%meanx)
print('E(Y)=%sf'%meany)
print('E(X^3Y^2)=%s'%mean)
程序中第3~6行设置 ( X , Y ) (X,Y) (X,Y)的联合分布律。第7行调用函数expect,传递参数Pxy和X计算 X X X的边缘分布的期望 E ( X ) E(X) E(X),记为meanx。为计算 Y Y Y的边缘分布期望 E ( Y ) E(Y) E(Y),第8行设置函数 g ( X , Y ) = Y g(X,Y)=Y g(X,Y)=Y,第9行调用函数expect传递参数Pxy,Y和g,计算结果记为meany。第10行定义函数 g ( x , y ) = x 3 y 2 g(x,y)=x^3y^2 g(x,y)=x3y2,第11行调用函数expect传递参数Pxy,X,Y和g计算 E ( X 3 Y 2 ) E(X^3Y^2) E(X3Y2),记为mean。运行程序,输出
E(X)=3/8
E(Y)=2
E(X^3Y^2)=7/4
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》