此处,我们假定2-维离散型随机向量(X,Y)(X, Y)(X,Y)的联合分布律为

即随机变量XXX取mmm个值,YYY取nnn个值,将(X,Y)(X, Y)(X,Y)的联合分布中的概率值构成一个m×nm\times nm×n的矩阵,记为PXYP_{XY}PXY​,即
PXY=(p11p12⋯p1np21p22⋯p2n⋮⋮⋯⋮pm1pm2⋯pmn)P_{XY}=\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}PXY​=⎝⎜⎜⎜⎛​p11​p21​⋮pm1​​p12​p22​⋮pm2​​⋯⋯⋯⋯​p1n​p2n​⋮pmn​​⎠⎟⎟⎟⎞​

1. 联合分布律的表示

Python的scipy.stats包并未提供2-维分布,但numpy包的array数组类对象却能很好地表示这样的2-维离散型随机向量的联合分布律。
例1 从含有3个正品,2个次品的5个产品中依次无放回地抽取两个。设XXX表示第1次取到的次品个数,YYY表示第2次取到的次品个数。求(X,Y)(X, Y)(X,Y)的联合分布律。
:显然,XXX和YYY的所有可能取值均为{0,1}\{0, 1\}{0,1}。由于是无放回抽取,
P(X=i,Y=j)=P(X=i)P(Y=j∣X=i),i,j=0,1P(X=i, Y=j)=P(X=i)P(Y=j|X=i), i, j=0, 1P(X=i,Y=j)=P(X=i)P(Y=j∣X=i),i,j=0,1
P(X=0,Y=0)=(3/5)(2/4)=3/10P(X=0, Y=0)=(3/5)(2/4)=3/10P(X=0,Y=0)=(3/5)(2/4)=3/10,P(X=0,Y=1)=(3/5)(2/4)=3/10P(X=0, Y=1)=(3/5)(2/4)=3/10P(X=0,Y=1)=(3/5)(2/4)=3/10,
P(X=1,Y=0)=(2/5)(3/4)=3/10P(X=1, Y=0)=(2/5)(3/4)=3/10P(X=1,Y=0)=(2/5)(3/4)=3/10,P(X=1,Y=1)=(2/5)(1/4)=1/10P(X=1, Y=1)=(2/5)(1/4)=1/10P(X=1,Y=1)=(2/5)(1/4)=1/10。
于是,(X,Y)(X, Y)(X,Y)的联合分布律中由概率构成的矩阵PXY=(310310310110)P_{XY}=\begin{pmatrix}\frac{3}{10}&\frac{3}{10}\\\frac{3}{10}&\frac{1}{10}\end{pmatrix}PXY​=(103​103​​103​101​​)。下列代码在Python中表示PXYP_{XY}PXY​。

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,如下图所示。

为计算变量XXX及YYY的边缘分布律,可调用array类对象Pxy的sum函数,指定按行对列标j(axis=1)相加得到XXX的边缘分布律,这是一个具有mmm个元素的数组,记为PXP_XPX​;按列对行标i(axis=0)相加得YYY的边缘分布律,是一个具有nnn个元素的数组,记为PYP_YPY​。下列程序定义了按此方法根据联合分布律PXYP_{XY}PXY​计算边缘分布律PXP_XPX​和PYP_YPY​的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,PyPy.reshape(1, Py.size))

程序中第2~6行定义了用于根据(X,Y)(X,Y)(X,Y)的联合分布律计算XXX和YYY的边缘分布的函数margDist。参数Pxy是组织为2-维数组的(X,Y)(X,Y)(X,Y)的联合分布律。第3行、第4行分别对Pxy按行相加和按列相加得到XXX、YYY的边缘分布律存于Px和Py。第5~6行将Px,Py作为返回值返回。需要提及的是,为将array类对象表示的1-维数组,设置为一个列向量或行向量,以便与2-维数组表示的矩阵进行统一的运算,要调用该数组的reshape函数。因此,第5行返回的Px为列向量(p1⋅p2⋅⋮pm⋅)\begin{pmatrix} p_{1\cdot}\\ p_{2\cdot}\\\vdots\\p_{m\cdot}\end{pmatrix}⎝⎜⎜⎜⎛​p1⋅​p2⋅​⋮pm⋅​​⎠⎟⎟⎟⎞​,Py为行向量(p⋅1,p⋅2,⋯,p⋅n)(p_{\cdot1},p_{\cdot2},\cdots,p_{\cdot n})(p⋅1​,p⋅2​,⋯,p⋅n​)。
例2 计算例1中2-维随机向量(X,Y)(X, Y)(X,Y)的边缘分布律。
:由例1知,(X,Y)(X, Y)(X,Y)的联合分布律中概率矩阵为PXY=(310310310110)P_{XY}=\begin{pmatrix}\frac{3}{10}&\frac{3}{10}\\\frac{3}{10}&\frac{1}{10}\end{pmatrix}PXY​=(103​103​​103​101​​)。下列代码在Python中表示PXYP_{XY}PXY​,按行对列标求和得XXX得边缘分布概率序列PX=(3525)P_X=\begin{pmatrix}\frac{3}{5}\\\frac{2}{5}\end{pmatrix}PX​=(53​52​​),按列对行标求和得YYY的边缘分布概率序列PY=(35,25)P_Y=(\frac{3}{5},\frac{2}{5})PY​=(53​,52​)。
下列代码计算例1的随机向量(X,Y)(X, Y)(X,Y)中XXX和YYY的边缘分布。

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行设置(X,Y)(X, Y)(X,Y)的联合分布律的概率矩阵Pxy。第5行调用上列程序定义的函数margDist,计算结果赋予Px,Py。运行程序,输出

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

写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
返回《导引》

概率统计Python计算:离散型2-维随机向量的联合分布律及边缘分布相关推荐

  1. 概率统计Python计算:条件概率和概率乘法公式

    1. 古典概型中条件概率的计算 条件概率 P ( B ∣ A ) P(B|A) P(B∣A)是将样本空间限制在 A A A上, A ∩ B A\cap B A∩B的概率.因此,我们可以利用博文< ...

  2. 概率统计Python计算:离散型自定义分布数学期望的计算(一)

    对非经典分布的随机变量,当然可以按博文<自定义离散型分布>中介绍的方法,自定义rv_discrete(离散型)或rv_continuos(连续型)的子类(详见博文<自定义连续型分布& ...

  3. 概率统计Python计算:自定义离散型分布

    假定有自定义的分布数据(X, P),其中X表示随机变量XXX的取值序列,P表示对应XXX的每个取值的概率序列.scipy.stats包为我们提供了一个rv_discrete类,可以用数据(X, P)创 ...

  4. 概率统计Python计算:离散型自定义分布数学期望的计算(二)

    对于联合分布律为 的2-维离散型随机向量(X,Y)(X,Y)(X,Y),其函数g(X,Y)g(X,Y)g(X,Y)的数学期望E(g(X,Y))=∑i=1m∑j=1ng(xi,yj)pijE(g(X,Y ...

  5. 概率统计Python计算:离散型随机变量分布(bernoulli geom)

    Python的scipy.stats包中提供了各种随机变量的分布.每一种分布,其累积分布函数(分布函数)记为cdf.离散型变量分布的概率质量函数(分布律),记为pmf.除此之外,每个分布都有一个服从该 ...

  6. 概率统计Python计算:协方差与相关系数计算

    我们知道,若随机向量(X,Y)(X,Y)(X,Y)存在E(X)E(X)E(X),E(Y)E(Y)E(Y),E(XY)E(XY)E(XY),则存在(X,Y)(X,Y)(X,Y)的协方差Cov(Y,X)\ ...

  7. 概率统计Python计算:连续型随机向量边缘分布或条件分布概率计算

    对于连续型随机向量(X,Y)(X,Y)(X,Y)的边缘分布和条件分布而言,密度函数都是一元函数.为计算随机变量取值落入指定区间I=(a,b)I=(a, b)I=(a,b)的概率P(X∈I)=∫abf( ...

  8. 概率统计Python计算:F分布分位点计算

    设XXX,YYY相互独立,且分别服从χ2(m)\chi^2(m)χ2(m)和χ2(n)\chi^2(n)χ2(n),则XY\frac{X}{Y}YX​~F(m−1,n−1)F(m-1, n-1)F(m ...

  9. 概率统计Python计算:随机变量的分布函数

    任何随机变量XXX都有其分布函数(或称为累积分布函数) F(x)=P(X≤x),x∈(−∞,+∞).F(x)=P(X\leq x), x\in (-\infty,+\infty).F(x)=P(X≤x ...

  10. 概率统计Python计算:全概率公式

    1. numpy数组的按元素计算 设完备事件组A1,A2,⋯,AnA_1,A_2,\cdots,A_nA1​,A2​,⋯,An​作为引发事件BBB的nnn个因素.诸因素的先验概率构成的序列为P(A1) ...

最新文章

  1. camunda流程引擎如此简单(二)
  2. 时光机穿梭---工作区和暂存区
  3. Codeforces 408D Long Path (DP)
  4. QT中的MessageBox设置自动关闭退出
  5. 数据湖就是坑人的新概念?那些挖坑的企业,后来都怎么样了
  6. HTML学习总结(2)——标题/水平线/注释/段落/折行/文本格式化
  7. Linux命令_搜索文件
  8. php调用API支付接口 可个人使用,无需营业执照(使用第三方接口,调用的天工接口。)...
  9. 突破某些网站限制只能由微信打开的尴尬场景
  10. Android项目集成穿山甲开屏/插屏/横幅广告教程大全
  11. 镜像构建工具SOURCE TO IMAGE(S2I)实践
  12. Leecode-动态规划专题训练
  13. 联想t450怎么重置计算机,韩博士教你联想t450s如何一键安装win10
  14. 2017 年这些令人印象深刻的智能音箱
  15. 开源系统搭建私有云盘,育网校园云盘系统
  16. 管理虚拟机工具xenSever系统+客户端xenCenter
  17. ppoe拨号密码忘记找回方法
  18. 哈尔滨工业大学提出 RISTDnet:强鲁棒性的红外小目标检测网络
  19. 软件设计师-随笔笔记
  20. MySQL大表分页查询优化技巧

热门文章

  1. 用matlab如何画中国地图,利用matlab画中国地图的几种方法
  2. 华东师范大学《模式识别与机器学习》试题
  3. 邮件营销的5个关键数字
  4. 电影下载、播放、制作、转换、各类问题全攻略
  5. 计算机语言环境变量,Win7环境变量中如何切换语言
  6. 华侨大学计算机等级,全国计算机等级考试报名系统-华侨大学.doc
  7. Web CAD SDK 14.1.0 New Crack
  8. 数字电视复用器中的PCR校正技术
  9. Python资源大全中文版(建议收藏)
  10. 视频编辑专家下载v9.3官方免费版