随机变量之间的独立性是非常重要的关系。对离散型随机变量
X
X
X,
Y
Y
Y而言,我们知道
X
X
X,
Y
Y
Y独立,当且仅当
p
i
j
=
p
i
⋅
⋅
p
⋅
j
,
1
≤
i
≤
m
,
1
≤
j
≤
n
p_{ij}=p_{i\cdot}\cdot p_{\cdot j},1\leq i\leq m, 1\leq j\leq n
pij=pi⋅⋅p⋅j,1≤i≤m,1≤j≤n。用矩阵表示为
(
p
11
p
12
⋯
p
1
n
p
21
p
22
⋯
p
2
n
⋮
⋮
⋯
⋮
p
m
1
p
m
2
⋯
p
m
n
)
=
(
p
1
⋅
⋅
p
⋅
1
p
1
⋅
⋅
p
⋅
2
⋯
p
1
⋅
⋅
p
⋅
n
p
2
⋅
⋅
p
⋅
1
p
2
⋅
⋅
p
⋅
2
⋯
p
2
⋅
⋅
p
⋅
n
⋮
⋮
⋯
⋮
p
m
⋅
⋅
p
⋅
1
p
m
⋅
⋅
p
⋅
2
⋯
p
m
⋅
⋅
p
⋅
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}= \begin{pmatrix} p_{1\cdot}\cdot p_{\cdot1}&p_{1\cdot}\cdot p_{\cdot 2}&\cdots&p_{1\cdot}\cdot p_{\cdot n}\\ p_{2\cdot}\cdot p_{\cdot1}&p_{2\cdot}\cdot p_{\cdot 2}&\cdots&p_{2\cdot}\cdot p_{\cdot n}\\ \vdots&\vdots&\cdots&\vdots\\ p_{m\cdot}\cdot p_{\cdot1}&p_{m\cdot}\cdot p_{\cdot2}&\cdots&p_{m\cdot}\cdot p_{\cdot n} \end{pmatrix}
p11p21⋮pm1p12p22⋮pm2⋯⋯⋯⋯p1np2n⋮pmn
=
p1⋅⋅p⋅1p2⋅⋅p⋅1⋮pm⋅⋅p⋅1p1⋅⋅p⋅2p2⋅⋅p⋅2⋮pm⋅⋅p⋅2⋯⋯⋯⋯p1⋅⋅p⋅np2⋅⋅p⋅n⋮pm⋅⋅p⋅n
而
(
p
1
⋅
⋅
p
⋅
1
p
1
⋅
⋅
p
⋅
2
⋯
p
1
⋅
⋅
p
⋅
n
p
2
⋅
⋅
p
⋅
1
p
2
⋅
⋅
p
⋅
2
⋯
p
2
⋅
⋅
p
⋅
n
⋮
⋮
⋯
⋮
p
m
⋅
⋅
p
⋅
1
p
m
⋅
⋅
p
⋅
2
⋯
p
m
⋅
⋅
p
⋅
n
)
=
(
p
1
⋅
p
2
⋅
⋮
p
m
⋅
)
∘
(
p
⋅
1
,
p
⋅
2
,
⋯
,
p
⋅
n
)
\begin{pmatrix} p_{1\cdot}\cdot p_{\cdot1}&p_{1\cdot}\cdot p_{\cdot 2}&\cdots&p_{1\cdot}\cdot p_{\cdot n}\\ p_{2\cdot}\cdot p_{\cdot1}&p_{2\cdot}\cdot p_{\cdot 2}&\cdots&p_{2\cdot}\cdot p_{\cdot n}\\ \vdots&\vdots&\cdots&\vdots\\ p_{m\cdot}\cdot p_{\cdot1}&p_{m\cdot}\cdot p_{\cdot2}&\cdots&p_{m\cdot}\cdot p_{\cdot n} \end{pmatrix} =\begin{pmatrix} p_{1\cdot}\\ p_{2\cdot}\\\vdots\\p_{m\cdot}\end{pmatrix}\circ (p_{\cdot1},p_{\cdot2},\cdots,p_{\cdot n})
p1⋅⋅p⋅1p2⋅⋅p⋅1⋮pm⋅⋅p⋅1p1⋅⋅p⋅2p2⋅⋅p⋅2⋮pm⋅⋅p⋅2⋯⋯⋯⋯p1⋅⋅p⋅np2⋅⋅p⋅n⋮pm⋅⋅p⋅n
=
p1⋅p2⋅⋮pm⋅
∘(p⋅1,p⋅2,⋯,p⋅n)
其中的运算符
∘
\circ
∘表示将列向量
P
X
P_{X}
PX作为
m
×
1
m\times 1
m×1矩阵,行向量
P
Y
P_Y
PY作为
1
×
n
1\times n
1×n矩阵的矩阵乘法。这样,为验证
X
X
X与
Y
Y
Y是否相互独立,只需验证
P
X
Y
=
P
X
∘
P
Y
P_{XY}=P_X\circ P_Y
PXY=PX∘PY
是否成立。下列代码定义了根据
(
X
,
Y
)
(X, Y)
(X,Y)的联合分布律
P
X
Y
P_{XY}
PXY,判断两个有限取值的离散型随机变量
X
X
X与
Y
Y
Y是否独立的Python函数。
import numpy as np #导入numpy
def independent(Pxy): #判断X,Y是否独立的函数定义
Px, Py=margDist(Pxy) #计算边缘分布
PxPy=Px.dot(Py) #计算边缘分布的矩阵积
if PxPy.dtype==float64: #若数据是浮点型
return (abs(PxPy-Pxy)<1e-8).all()
return (PxPy==Pxy).all() #数据是有理数型
程序的第2~7行定义判断随机变量
X
X
X与
Y
Y
Y是否独立的函数independent,参数Pxy为
(
X
,
Y
)
(X, Y)
(X,Y)的联合分布律的概率矩阵。第3行调用博文《离散型维随机向量的联合分布律及边缘分布》定义的函数margDist,计算
X
X
X与
Y
Y
Y的边缘分布律概率序列,分别记为Px和Py(注意Px和Py分别为列向量和行向量)。第4行调用Px的矩阵乘法dot函数,计算与Py的积矩阵,结果存于PxPy。第5~6行的if语句,对数组元素类型为浮点型float64的情形,调用矩阵abs(PxPy-Pxy)<1e-8的all函数,判断PxPy中每个元素与矩阵Pxy中对应元素之差的绝对值是否全部小于
1
0
−
8
10^{-8}
10−8。此处,abs(PxPy-Pxy)<1e-8是一个形状与Pxy(或PxPy)相同的矩阵,其中每个元素为
∣
p
i
⋅
⋅
p
⋅
j
−
p
i
j
∣
<
1
0
−
8
|p_{i\cdot}\cdot p_{\cdot j}-p_{ij}|<10^{-8}
∣pi⋅⋅p⋅j−pij∣<10−8是否相成立,是为True,否为False。若该矩阵的所有元素均为True,则all()返回True。否则,返回False。相仿地,而对于数据类型为Rational的情形,第7行调用(Pxy==Pxpy).all(),判断
X
X
X与
Y
Y
Y的相互独立性。
例1 从含有3个正品,2个次品的5个产品中依次无放回地抽取两个。设
X
X
X表示第1次取到的次品个数,
Y
Y
Y表示第2次取到的次品个数。我们知道
(
X
,
Y
)
(X, Y)
(X,Y)的联合分布律的概率矩阵为
P
X
Y
=
(
3
10
3
10
3
10
1
10
)
P_{XY}=\begin{pmatrix}\frac{3}{10}&\frac{3}{10}\\\frac{3}{10}&\frac{1}{10}\end{pmatrix}
PXY=(103103103101),及
X
X
X与
Y
Y
Y的边缘分布律的概率序列分别为
P
X
=
(
3
5
2
5
)
P_X=\begin{pmatrix}\frac{3}{5}\\\frac{2}{5}\end{pmatrix}
PX=(5352)和
P
Y
=
(
3
5
,
2
5
)
P_Y=(\frac{3}{5},\frac{2}{5})
PY=(53,52)。由于
p
00
=
3
10
≠
3
5
⋅
3
5
=
p
0
⋅
⋅
p
⋅
0
p_{00}=\frac{3}{10}\not=\frac{3}{5}\cdot\frac{3}{5}=p_{0\cdot}\cdot p_{\cdot0}
p00=103=53⋅53=p0⋅⋅p⋅0,故
X
X
X与
Y
Y
Y不是相互独立的。
若将抽取方式改为有放回的,则不难算得
(
X
,
Y
)
(X,Y)
(X,Y)的联合分布律概率矩阵为
P
X
Y
=
(
9
25
6
25
6
25
4
25
)
P_{XY}=\begin{pmatrix}\frac{9}{25}&\frac{6}{25}\\\frac{6}{25}&\frac{4}{25}\end{pmatrix}
PXY=(259256256254),且由此算得
X
X
X与
Y
Y
Y的边缘分布律的概率序列分别为
P
X
=
(
3
5
2
5
)
P_X=\begin{pmatrix}\frac{3}{5}\\\frac{2}{5}\end{pmatrix}
PX=(5352)和
P
Y
=
(
3
5
,
2
5
)
P_Y=(\frac{3}{5},\frac{2}{5})
PY=(53,52)。可以验证:
P
X
Y
=
P
X
∘
P
Y
P_{XY}=P_X\circ P_Y
PXY=PX∘PY,故此时
X
X
X与
Y
Y
Y是独立的。下列代码验证此结果。
import numpy as np #导入numpy
from sympy import Rational as R #导入Rational
Pxy=np.array([[R(3,10), R(3,10)], [R(3,10), R(1,10)]]) #无放回抽样分布律
print('无放回抽样,X与Y相互独立是%s'%independent(Pxy))
Pxy=np.array([[9/25, 6/25], [6/25, 4/25]]) #有放回抽样分布律
print('有放回抽样,X与Y相互独立是%s'%independent(Pxy))
程序中,第3行和第5行分别设置 ( X , Y ) (X, Y) (X,Y)在无放回抽样下和有放回抽样下的联合分布律。第4行和第6行分别调用independent函数验算两个不同抽样下 X X X, Y Y Y的相互独立性。注意,第3行设置Pxy时,元素为Rational类型,而第5行设置成float64型。运行程序,输出
无放回抽样,X与Y相互独立是False
有放回抽样,X与Y相互独立是True
即在无放回抽样下,判断
X
X
X与
Y
Y
Y不是相互独立的,而在有放回抽样下
X
X
X与
Y
Y
Y是相互独立的。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》