1、_第8章 Matlab在概率统计中的应用概率论与数理统计是研究和应用随机现象统计规律性的一门数学科学。其应用十分广泛,几乎遍及所有科学领域、工农业生产和国民经济各部门。本章将利用Matlab来解决概率统计学中的概率分布、数字特征、参数估计以及假设检验等问题。8.1 数据分析8.1.1 几种均值 在给定的一组数据中,要进行各种均值的计算,在Matlab中可由以下函数实现。mean 算术平均值函数。对于向量X,mean (X) 得到它的元素的算术平均值;对于矩阵,mean (X)得到X各列元素的算术平均值,返回一个行向量。 nanmean 求忽略NaN的随机变量的算术平均值。 geomean 求随
2、机变量的几何平均值。 harmmean 求随机变量的和谐平均值。 trimmean 求随机变量的调和平均值。8.1.2 数据比较在给定的一组数据中,还常要对它们进行最大、最小、中值的查找或对它们排序等操作。Mtalab中也有这样的功能函数。max 求随机变量的最大值元素。nanmax 求随机变量的忽略NaN的最大值元素。min 求随机变量的最小值元素。nanmin 求随机变量的忽略NaN的最小值元素。median 求随机变量的中值。nanmedian 求随机变量的忽略NaN的中值。mad 求随机变量的绝对差分平均值。sort 对随机变量由小到大排序。sortrows 对随机矩阵按首行进行排序。
3、range 求随机变量的值的范围,即最大值与最小值的差(极差)。8.1.3 累和与累积求向量或矩阵的元素累和或累积运算是比较常用的两类运算,在Matlab中可由以下函数实现。sum 若X为向量,sum (X)为X中各元素之和,返回一个数值;若X为矩阵,sum (X)为X中各列元素之和,返回一个行向量。nansum 忽略NaN求向量或矩阵元素的累和。cumsum 求当前元素与所有前面位置的元素和。返回与X同维的向量或矩阵。cumtrapz 梯形累和函数。prod 若X为向量,prod (X)为X中各元素之积,返回一个数值;若X为矩阵,prod (X)为X中各列元素之积,返回一个行向量。cumpr
4、od 求当前元素与所有前面位置的元素之积。返回与X同维的向量或矩阵。8.2 离散型随机变量的概率及概率分布8.2.1 几个常见分布8.2.1.1 二项分布设随机变量X的分布律为: P X = k = Cnk p k (1-p) n - k k = 0, 1, 2, , n其中:0 p p=pdf(bino,1,100,0.01) %利用通用函数计算恰好发生k次的概率p = 0.3697或在Matlab命令窗口键入: p=binopdf(1,100,0.01) %利用专用函数计算恰好发生k次的概率p = 0.3697(2)至少有1件次品的概率在Matlab命令窗口键入: p=1-cdf(bino
5、,0,100,0.01) % cdf是用来计算Xk的累积概率值的通用函数,这里是计算X1的概率值。p = 0.6340或在Matlab命令窗口键入: p=1-binocdf(0,100,0.01)p = 0.63408.2.2.2 Poisson分布在二项分布中,当n的值很大,p的值很小,而np又较适中时,用Poisson分布来近似二项分布较好(一般要求= np poisscdf (0,1.5) %X = 0表示0次呼叫,Lambda = t/2 = 1.5ans = 0.2231即(1)中没有收到呼叫的概率为0.2231。 1-poisscdf (0,2.5)ans = 0.9179即(2)
6、中至少收到1次呼叫的概率为0.9179。解法二:由于呼叫次数X0就是呼叫0次,即X = 0。因此,此题也可用poisspdf求解。即:poisspdf (0, 1.5)和1-poisspdf (0, 2.5)。8.2.2.3 超几何分布1. 设N为产品总数,M为其中次品总数,n为随机抽取件数(nN),则次品数X恰为k件的概率p_k(k = 0, 1, 2, , min (n, M))可由下列命令求得:命令:pdf 或 hygepdf格式:pdf (hyge, k, N, M, n) 或 hygepdf (k, N, M, n)2. 累积概率值的求法:命令:cdf 或 hygecdf 格式:cd
7、f (hyge, k, N, M, n) 或 hygecdf (k, N, M, n)说明:该函数的功能是返回次品数Xk的概率之和。例8-4 设盒中有5件同样的产品,其中3件正品,2件次品,从中任取3件,求不能取得次品的概率。解:在Matlab编辑器中编辑M文件:LX0802.mN=input(input N=)M=input(input M=)n=input(input n=)for k=1:M+1 p_k=hygepdf(k-1,N,M,n)end在Matlab的命令窗口键入LX0804,回车后按提示输入N、M、n的值,显示如下:input N=5N = 5input M=2M = 2in
8、put n=3n = 3p_k = 0.1000p_k = 0.6000p_k = 0.3000这里,p_k=(0.1000 0.6000 0.3000)表示取到次品数分别为X = 0, 1, 2的概率。8.3 连续型随机变量的概率及其分布8.3.1 几个常见的分布8.3.1.1 均匀分布若随机变量X的概率密度为,则称X在区间a, b上服从均匀分布,记为XU (a, b)。8.3.1.2 指数分布若随机变量X的概率密度为,其中为常数则称X服从参数为的指数分布,记为E ()。 8.3.1.3 正态分布若随机变量X的概率密度为其中,是两个常数,则称X服从参数为,的正态分布,记为XN (,)。8.3
9、.1.4 分布 , 其中,记为:8.3.1.5 分布 , 其中,记为:8.3.1.6 分布(卡方分布)X的分布密度为 , n为正整数,则称X为服从自由度为n的分布,记为:X(n)。8.3.1.7 t分布若随机变量t的分布密度为 ,n为正整数,则称t为服从自由度为n的t分布,记为:T t (n)。8.3.1.8 F分布若随机变量x的分布密度为,n1,n2为正整数,则称X服从第一自由度为n1,第二自由度为n2的F分布,记为:XF (n1, n2)。8.3.2 概率密度函数值连续型随机变量:如果存在一非负可积函数,使对于任意实数,X在区间上取值的概率为:,则函数称作随机变量X的概率密度函数。通用函数
10、pdf和专用函数用来求密度函数在某个点x处的值。1. 利用概率密度函数值通用函数pdf计算格式:pdf (name, x, A) pdf (name, x, A, B) pdf (name, x, A, B, C)说明:返回以name为分布的随机变量在X = x处、参数为A、B、C的概率密度函数值。name取值如下表8.1所示。表8.1 常见通用函数密度函数表name分 布unif均匀分布密度函数exp指数分布密度函数norm正态分布密度函数chi2卡方()分布t或Tt分布f和FF分布密度函数gam分布密度函数beta分布logn对数分布nbin负二项分布ncf非中心F分布nct非中心t分布n
11、cx2非中心卡方分布rayl瑞利分布weibweibull(韦伯)分布2. 利用专用函数计算概率密度函数值,如表8.2所示。表8.2 专用函数概率密度函数表函 数 名调 用 形 式注 释unifpdfunifpdf (x, a, b)a, b上均匀分布概率密度在X = x处的函数值exppdfexppdf (x, Lambda)指数分布概率密度在X = x处的函数值normpdfnormpdf (x, mu, sigma)正态分布概率密度在X = x处的函数值chi2pdfchi2pdf (x, n)卡方分布概率密度在X = x处的函数值tpdftpdf (x, n)t分布概率密度在X = x
12、处的函数值fpdffpdf (x, n1, n2)F分布概率密度在X = x处的函数值gampdfgampdf (x, a, b)分布概率密度在X = x处的函数值betapdfbetapdf (x, a, b)分布概率密度在X = x处的函数值lognpdflognpdf (x, mu, sigma)对数分布概率密度在X = x处的函数值nbinpdfnbinpdf (x, R, P)负二项分布概率密度在X = x处的函数值ncfpdfncfpdf (x, n1, n2, delta)非中心F分布概率密度在X = x处的函数值nctpdfnctpdf (x, n, delta)非中心t分布概
13、率密度在X = x处的函数值ncx2pdfncx2pdf (x, n, delta)非中心卡方分布概率密度在X = x处的函数值raylpdfraylpdf (x, b)瑞利分布概率密度在X = x处的函数值weibpdfweibpdf (x, a, b)weibull分布概率密度在X = x处的函数值例8-5 计算正态分布N (0,1)在点0.7733的概率密度值。解:在Matlab命令窗口键入: pdf(norm,0.7733,0,1) %利用通用函数ans = 0.2958 normpdf(0.7733,0,1) %利用专用函数ans = 0.2958两者计算结果完全相同。例8-6 绘制
14、卡方分布密度函数在n分别等于1,5,15时的图形。解:在Matlab编辑器中编辑M文件:LX0806.mx=0:0.1:30;y1=chi2pdf(x,1);plot(x,y1,:)hold ony2=chi2pdf(x,5);plot(x,y2,+)y3=chi2pdf(x,15);plot(x,y3,o)axis(0,30,0,0.2)xlabel(图8.1)在命令窗口键入LX0806,回车后得结果为图8.1。8.3.3 累积概率函数值(分布函数)连续型随机变量的累积概率函数值是指随机变量Xx的概率之和。即:PXx=也就是连续型随机变量的分布函数F (x),F (x)既可以用通用函数,也可
15、用专用函数来计算。通常用这些函数计算随机变量落在某个区间上的概率和随机变量X的分布函数F (x)。 1. 利用通用函数cdf计算累积概率值格式:cdf (name, x, A) cdf (name, x, A, B) cdf (name, x, A, B, C)说明:返回随机变量Xx的概率之和。name为上述分布函数名。2. 利用专用函数计算累积概率值其命令函数是在上述分布后面加上cdf,其用法同专用函数计算概率密度函数值。如正态分布的累积概率值:命令函数为:normcdf (x, mu, sigma)则显示结果为 F (x) =的值。例8-7某公共汽车站从上午7:00起每15分钟来一班车。若
16、某乘客在7:00到7:30间的任何时刻到达此站是等可能的,试求他侯车的时间不到5分钟的概率。解:设乘客7点过X分钟到达此站,则X在0,30内服从均匀分布,当且仅当他在时间间隔(7:10,7:15)或(7:25,7:30)内到达车站时,侯车时间不到5分钟。故其概率为:p = P10X15+P25X30在Matlab编辑器中建立M文件LX0807.m如下:format ratp1=unifcdf(15,0,30)-unifcdf(10,0,30);p2=unifcdf(30,0,30)-unifcdf(25,0,30);p=p1+p2运行结果为:p = 1/3 例8-8 设XN (3, 22),求
17、P2X5,P-4X2,PX3。解:在Matlab编辑器中编辑M文件LX0808.m如下:p1=normcdf(5,3,2)-normcdf(2,3,2)p2=normcdf(10,3,2)-normcdf(-4,3,2)p3=1-normcdf(2,3,2)+normcdf(-2,3,2)p4=1-normcdf(3,3,2)运行结果为:p1 = 0.5328p2 = 0.9995p3 = 0.6977p4 = 0.5000例8-9 设随机变量X的概率密度为 (1)确定常数c;(2)求X落在区间内的概率;(3)求X的分布函数F (x)。解:(1)在Matlab编辑器中建立M文件LX08091.
18、m如下:syms c xp_x=c/sqrt(1-x2);F_x=int(p_x,x,-1,1)运行结果为:F_x = pi*c由pi*c=1得 c=1/pi(2)在Matlab编辑器中建立M文件LX08092.m如下:syms xc=1/pi; %1/pi不加单引号“”,其结果的表达式有变化。p_x=c/sqrt(1-x2);format ratp1=int(p_x,x,-1/2,1/2)运行结果为:p1 = 1/3(3)在Matlab编辑器中建立M文件LX08093.m如下:syms x tc=1/pi;p_t=c/sqrt(1-t2);F_x=int(p_t,t,-1,x)运行结果为:F
19、_x = 1/2*(2*asin(x)+pi)/pi simple(F_x)ans = asin(x)/pi+1/2所以X的分布函数为:F (x) = 例8-10 设lnX N (1, 22),求P。解:利用对数分布累积专用函数,在Matlab命令窗口键入: p=logncdf(2,1,2)-logncdf(1/2,1,2)p = 0.24048.3.4 逆累积概率值已知分布和分布中的一点,求此点处的概率值要用到累积概率函数cdf,当已知概率值而需要求对应概率的分布点时,就要用到逆累积概率函数icdf,icdf返回某给定概率值下随机变量X的临界值,实际上就是cdf的逆函数,在假设检验中经常用到
20、。即:已知F (x) = PXx,求x逆累积概率值的计算有下面两种方法。8.3.4.1 通用函数icdf格式:icdf (name, p, a1, a2, a3)说明:返回分布为name,参数为a1, a2, a3累积概率值为p的临界值,这里name与前面相同。如:p = cdf (name, x, a1, a2, a3)则:x = icdf (name, p, a1, a2, a3)例8-11设XN (3, 22),确定c,使得PXc = PXc = PXc = PX c=icdf(norm,0.5,3,2)运行结果为:c = 3例8-12 在假设检验中,求临界值问题:已知:,查自由度为10
21、的双边界检验t分布临界值。解:在Matlab命令窗口键入: t0=icdf(t,0.025,10)运行结果为:t0 = -2.22818.3.4.2 专用函数-inv如:norminv (p, mu, sigma) %正态逆累积分布函数,返回临界值。用法与前面类似。关于常用临界值函数可查表8.3:表8.3 常用临界值函数表函 数 名调 用 形 式注 释unifinvx = unifinv (p, a, b)a, b上均匀分布逆累积分布函数,X为临界值expinvx = expinv (p, lambda)指数逆累积分布函数norminvx = norminv (p, mu, sigma)正态逆
22、累积分布函数chi2invx = chi2inv (p, n)卡方逆累积分布函数tinvx = tinv (p, n)T分布逆累积分布函数finvx = finv (p, n1, n2)F分布逆累积分布函数gaminvx = gaminv (p, a, b)分布逆累积分布函数betainvx = betainv (p, a, b)分布逆累积分布函数logninvx = logninv (p, mu, sigma)对数逆累积分布函数ncfinvx = ncfinv (p, n1, n2, delta)非中心F分布逆累积分布函数nctinvx = nctinv (p, n, delta)非中心t分
23、布逆累积分布函数ncx2invx = ncx2inv (p, n, delta)非中心卡方逆累积分布函数raylinvx = raylinv (p, b)瑞利逆累积分布函数weibinvx = weibinv (p, a, b)韦伯逆累积分布函数例8-13 公共汽车门的高度是按成年男子与车门顶碰头的机会不超过1%设计的。设男子身高X(单位:cm) N (175, 36),求车门的最低高度。解:设h为车门高度,X为男子身高,求满足条件PXh0.01的h,即PX h=norminv(0.99,175,6)h = 188.9581例8-14 设二维随机向量(X, Y)的联合密度为 求:(1)P0X1
24、, 0Y X=14.70 15.21 14.90 14.91 15.32 15.32; mean(X)ans = 15.06008.4.1.2 连续型随机变量的期望若随机变量X的概率密度为p (x),则X的期望为: 若下式右端积分绝对收敛,则X的函数f (X)的期望为: 例8-17 已知随机变量X的概率密度 求EX和E (4X-1)。解:在Matlab编辑器中建立M文件LX0817.m:syms xp_x=3*x2;EX=int(x*p_x,0,1)EY=int(4*x-1)*p_x,0,1)运行结果为:EX = 3/4EY = 2例8-18 设随机变量X的概率密度为 求EX。解:在Matla
25、b编辑器中建立M文件LX0818.m:syms xp_x=1/2*exp(-abs(x);EX=int(x*p_x,-inf,inf)运行结果为:EX = 08.4.2 方差方差是随机变量的个别偏差的平方的期望: DX = E (X-EX)2 = EX2-(EX)2标准差:对于样本x = x1, x2, , xn,有样本方差:样本标准差:8.4.2.1 离散型随机变量的方差1. 方差DX = E (X-EX)2 = EX2-(EX)2在Matlab中用sum函数计算:设X的分布律为PX = xk = pk,k = 1, 2, 则方差 DX = sum (X - EX).2.*p或 DX = s
26、um (X .2.*p) - (EX).2标准差: = sqrt (DX)例8-19 设随机变量X的分布律为X-2-1012p0.30.10.20.10.3求DX,D (X2-1)。解:在Matlab编辑器中建立M文件LX0819.m:X=-2 -1 0 1 2;p=0.3 0.1 0.2 0.1 0.3;EX=sum(X.*p)Y=X.2-1EY=sum(Y.*p)DX=sum(X.2.*p)-EX.2DY=sum(Y.2.*p)-EY.2运行结果为:EX = 0Y = 3 0 -1 0 3EY = 1.6000DX = 2.6000DY = 3.04002. 样本方差设随机变量X的样本为x
27、 = x1, x2, , xn,由于X取xi的概率相同且均为1/n,因此可以用上面的方法计算方差。另一方面,在Matlab中又有专门的函数var计算样本方差。函数:var %计算一组采集数据即样本的方差格式:var (X) %var (X) = ,若X为向量,则返回向量的样本方差;若X为矩阵,则返回矩阵列向量的样本方差构成的行向量。var (X, 1) %返回向量(矩阵)X的简单方差(即置前因子为1/n的方差)var (X, w) %返回向量(矩阵)X的以w为权重的方差函数:std %计算一组采集数据即样本的标准差格式:std (X) %返回向量(矩阵)X的样本标准差即:std (X) = std (X, 1) %返回向量(矩阵)X的标准差(置前因子为1/n)std (X, 0) %与std (X)相同std (X, flag, dim) %返回向量(矩阵)X中维数为dim的标准差