概率统计Python计算:离散型2-维随机向量的联合分布律及边缘分布
此处,我们假定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=⎝⎜⎜⎜⎛p11p21⋮pm1p12p22⋮pm2⋯⋯⋯⋯p1np2n⋮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=(103103103101)。下列代码在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=(103103103101)。下列代码在Python中表示PXYP_{XY}PXY,按行对列标求和得XXX得边缘分布概率序列PX=(3525)P_X=\begin{pmatrix}\frac{3}{5}\\\frac{2}{5}\end{pmatrix}PX=(5352),按列对行标求和得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-维随机向量的联合分布律及边缘分布相关推荐
- 概率统计Python计算:条件概率和概率乘法公式
1. 古典概型中条件概率的计算 条件概率 P ( B ∣ A ) P(B|A) P(B∣A)是将样本空间限制在 A A A上, A ∩ B A\cap B A∩B的概率.因此,我们可以利用博文< ...
- 概率统计Python计算:离散型自定义分布数学期望的计算(一)
对非经典分布的随机变量,当然可以按博文<自定义离散型分布>中介绍的方法,自定义rv_discrete(离散型)或rv_continuos(连续型)的子类(详见博文<自定义连续型分布& ...
- 概率统计Python计算:自定义离散型分布
假定有自定义的分布数据(X, P),其中X表示随机变量XXX的取值序列,P表示对应XXX的每个取值的概率序列.scipy.stats包为我们提供了一个rv_discrete类,可以用数据(X, P)创 ...
- 概率统计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 ...
- 概率统计Python计算:离散型随机变量分布(bernoulli geom)
Python的scipy.stats包中提供了各种随机变量的分布.每一种分布,其累积分布函数(分布函数)记为cdf.离散型变量分布的概率质量函数(分布律),记为pmf.除此之外,每个分布都有一个服从该 ...
- 概率统计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)\ ...
- 概率统计Python计算:连续型随机向量边缘分布或条件分布概率计算
对于连续型随机向量(X,Y)(X,Y)(X,Y)的边缘分布和条件分布而言,密度函数都是一元函数.为计算随机变量取值落入指定区间I=(a,b)I=(a, b)I=(a,b)的概率P(X∈I)=∫abf( ...
- 概率统计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 ...
- 概率统计Python计算:随机变量的分布函数
任何随机变量XXX都有其分布函数(或称为累积分布函数) F(x)=P(X≤x),x∈(−∞,+∞).F(x)=P(X\leq x), x\in (-\infty,+\infty).F(x)=P(X≤x ...
- 概率统计Python计算:全概率公式
1. numpy数组的按元素计算 设完备事件组A1,A2,⋯,AnA_1,A_2,\cdots,A_nA1,A2,⋯,An作为引发事件BBB的nnn个因素.诸因素的先验概率构成的序列为P(A1) ...
最新文章
- camunda流程引擎如此简单(二)
- 时光机穿梭---工作区和暂存区
- Codeforces 408D Long Path (DP)
- QT中的MessageBox设置自动关闭退出
- 数据湖就是坑人的新概念?那些挖坑的企业,后来都怎么样了
- HTML学习总结(2)——标题/水平线/注释/段落/折行/文本格式化
- Linux命令_搜索文件
- php调用API支付接口 可个人使用,无需营业执照(使用第三方接口,调用的天工接口。)...
- 突破某些网站限制只能由微信打开的尴尬场景
- Android项目集成穿山甲开屏/插屏/横幅广告教程大全
- 镜像构建工具SOURCE TO IMAGE(S2I)实践
- Leecode-动态规划专题训练
- 联想t450怎么重置计算机,韩博士教你联想t450s如何一键安装win10
- 2017 年这些令人印象深刻的智能音箱
- 开源系统搭建私有云盘,育网校园云盘系统
- 管理虚拟机工具xenSever系统+客户端xenCenter
- ppoe拨号密码忘记找回方法
- 哈尔滨工业大学提出 RISTDnet:强鲁棒性的红外小目标检测网络
- 软件设计师-随笔笔记
- MySQL大表分页查询优化技巧