此处,我们假定2-维离散型随机向量二维离散联合概率密度 python 二维离散联合分布律_概率论的联合分布律为

二维离散联合概率密度 python 二维离散联合分布律_取值_02


即随机变量二维离散联合概率密度 python 二维离散联合分布律_ci_03二维离散联合概率密度 python 二维离散联合分布律_数组_04个值,二维离散联合概率密度 python 二维离散联合分布律_数组_05二维离散联合概率密度 python 二维离散联合分布律_数组_06个值,将二维离散联合概率密度 python 二维离散联合分布律_概率论的联合分布中的概率值构成一个二维离散联合概率密度 python 二维离散联合分布律_概率论_08的矩阵,记为二维离散联合概率密度 python 二维离散联合分布律_概率论_09,即

二维离散联合概率密度 python 二维离散联合分布律_数组_10

1. 联合分布律的表示

Python的scipy.stats包并未提供2-维分布,但numpy包的array数组类对象却能很好地表示这样的2-维离散型随机向量的联合分布律。
例1 从含有3个正品,2个次品的5个产品中依次无放回地抽取两个。设二维离散联合概率密度 python 二维离散联合分布律_ci_03表示第1次取到的次品个数,二维离散联合概率密度 python 二维离散联合分布律_数组_05表示第2次取到的次品个数。求二维离散联合概率密度 python 二维离散联合分布律_概率论的联合分布律。
:显然,二维离散联合概率密度 python 二维离散联合分布律_ci_03二维离散联合概率密度 python 二维离散联合分布律_数组_05的所有可能取值均为二维离散联合概率密度 python 二维离散联合分布律_取值_16。由于是无放回抽取,
二维离散联合概率密度 python 二维离散联合分布律_取值_17
二维离散联合概率密度 python 二维离散联合分布律_ci_18二维离散联合概率密度 python 二维离散联合分布律_取值_19
二维离散联合概率密度 python 二维离散联合分布律_ci_20二维离散联合概率密度 python 二维离散联合分布律_数组_21
于是,二维离散联合概率密度 python 二维离散联合分布律_概率论的联合分布律中由概率构成的矩阵二维离散联合概率密度 python 二维离散联合分布律_ci_23。下列代码在Python中表示二维离散联合概率密度 python 二维离散联合分布律_概率论_09

import numpy as np                      #导入numpy
from sympy import Rational as R			#导入Rational
Pxy=np.array([[R(3,10), R(3,10)],       #创建2-维数组Pxy
             [R(3,10), R(1,10)]])
print(Pxy)                              #输出2-维数组

第3~4行创建一个名为Pxy的array类对象,将其设置为两个等长的数组的数组,从而构成一个矩阵。Pxy中的每一个元素设置为表示有理数的Rational对象(第2行导入,别名为R)。运行该程序,输出

[[3/10 3/10]
 [3/10 1/10]]

2. 边缘分布的计算

由上例可见,numpy的array类对象可将矩阵表示为2-维数组——数组的数组。2-维数组有两个“轴”:纵向记为axis=0,横向记为axis=1,如下图所示。

二维离散联合概率密度 python 二维离散联合分布律_概率论_25


为计算变量二维离散联合概率密度 python 二维离散联合分布律_ci_03二维离散联合概率密度 python 二维离散联合分布律_数组_05的边缘分布律,可调用array类对象Pxy的sum函数,指定按行对列标j(axis=1)相加得到二维离散联合概率密度 python 二维离散联合分布律_ci_03的边缘分布律,这是一个具有二维离散联合概率密度 python 二维离散联合分布律_数组_04个元素的数组,记为二维离散联合概率密度 python 二维离散联合分布律_概率论_30;按列对行标i(axis=0)相加得二维离散联合概率密度 python 二维离散联合分布律_数组_05的边缘分布律,是一个具有二维离散联合概率密度 python 二维离散联合分布律_数组_06个元素的数组,记为二维离散联合概率密度 python 二维离散联合分布律_二维离散联合概率密度 python_33。下列程序定义了按此方法根据联合分布律二维离散联合概率密度 python 二维离散联合分布律_概率论_09计算边缘分布律二维离散联合概率密度 python 二维离散联合分布律_概率论_30二维离散联合概率密度 python 二维离散联合分布律_二维离散联合概率密度 python_33的Python函数。

import numpy as np                  #导入numpy
def margDist(Pxy):                  #定义计算边缘分布的函数
    Px=Pxy.sum(axis=1)              #按行相加得X分布律
    Py=Pxy.sum(axis=0)              #按列相加得Y分布律
    return (Px.reshape(Px.size, 1), #返回Px,Py
           Py.reshape(1, Py.size))

程序中第2~6行定义了用于根据二维离散联合概率密度 python 二维离散联合分布律_ci_37的联合分布律计算二维离散联合概率密度 python 二维离散联合分布律_ci_03二维离散联合概率密度 python 二维离散联合分布律_数组_05的边缘分布的函数margDist。参数Pxy是组织为2-维数组的二维离散联合概率密度 python 二维离散联合分布律_ci_37的联合分布律。第3行、第4行分别对Pxy按行相加和按列相加得到二维离散联合概率密度 python 二维离散联合分布律_ci_03二维离散联合概率密度 python 二维离散联合分布律_数组_05的边缘分布律存于Px和Py。第5~6行将Px,Py作为返回值返回。需要提及的是,为将array类对象表示的1-维数组,设置为一个列向量或行向量,以便与2-维数组表示的矩阵进行统一的运算,要调用该数组的reshape函数。因此,第5行返回的Px为列向量二维离散联合概率密度 python 二维离散联合分布律_取值_43,Py为行向量二维离散联合概率密度 python 二维离散联合分布律_二维离散联合概率密度 python_44
例2 计算例1中2-维随机向量二维离散联合概率密度 python 二维离散联合分布律_概率论的边缘分布律。
:由例1知,二维离散联合概率密度 python 二维离散联合分布律_概率论的联合分布律中概率矩阵为二维离散联合概率密度 python 二维离散联合分布律_ci_23。下列代码在Python中表示二维离散联合概率密度 python 二维离散联合分布律_概率论_09,按行对列标求和得二维离散联合概率密度 python 二维离散联合分布律_ci_03得边缘分布概率序列二维离散联合概率密度 python 二维离散联合分布律_二维离散联合概率密度 python_50,按列对行标求和得二维离散联合概率密度 python 二维离散联合分布律_数组_05的边缘分布概率序列二维离散联合概率密度 python 二维离散联合分布律_概率论_52
下列代码计算例1的随机向量二维离散联合概率密度 python 二维离散联合分布律_概率论二维离散联合概率密度 python 二维离散联合分布律_ci_03二维离散联合概率密度 python 二维离散联合分布律_数组_05的边缘分布。

import numpy as np                  #导入numpy
from sympy import Rational as R     #导入Rational
Pxy=np.array([[R(3,10), R(3,10)],   #创建联合分布律Pxy
             [R(3,10), R(1,10)]])
Px, Py=margDist(Pxy)                #计算边缘分布律
print('Px:%s'%Px)
print('Py:%s'%Py)

第3~4行设置二维离散联合概率密度 python 二维离散联合分布律_概率论的联合分布律的概率矩阵Pxy。第5行调用上列程序定义的函数margDist,计算结果赋予Px,Py。运行程序,输出

Px:[[3/5]
 [2/5]]
Py:[[3/5 2/5]]