实验十四  MATLAB中的概率统计函数

 

一、实验目的

熟悉Matlab中有关概率统计的命令,掌握利用Matlab软件解决概率统计基本问题的方法。

 

二、相关知识

    Matlab中,有一个专门的工具箱stats toolbox来处理有关概率论和数理统计的问题,该工具箱中有许多关于概率统计的函数,这里介绍一些基本内容。

我们先看一个例子:

1:设有1000件零件,其中优等品300件,随机抽取50件来检查,计算:

1)其中不多于10件优等品的概率。绘出这50件产品中优等品的概率分布图。

2)根据(1)算得的概率p,进行逆累积概率计算,把算得的结果和10进行比较。

3)其中恰好有10件优等品的概率。给出随机变量的分布概率密度图像。

根据概率论的知识,对于一批共有M件产品,其中有K件次品,如果我们一次随机抽取N件来查看,则其中次品件数x符合超几何分布,我们记做:X~H(N,K,M)

Matlab中,函数hygecdf()用来计算超几何分布的积累概率分布,其具体格式如下:

   P=hygecdf(x,M,K,N)

函数中参数的意义为:共有M件产品,次品K件,抽取N件检查,计算发现其中不多于x件次品的概率。

函数hygepdf()用来计算超几何分布的概率密度分布,其具体格式如下:

   Px=hygepdf(x,M,K,N)

函数中参数的意义为:共有M件产品,次品K件,抽取N件检查,计算发现其中恰好有x件次品的概率。

函数hygeinv()进行逆累积分布计算,和hygecdf()命令相对应。其具体格式如下:

   X=hygeinv(p,M,K,N)

在已知参数MKN和概率p的情况下计算随机量X,使得x分布在[0,X]上的概率为p

函数hygernd()产生超几何分布随机数,具体格式为Xhygernd(M,K,N,m,n),其在已知参数MKN的条件下,产生mn列符合超几何分布的随机数。

依照上面的介绍,我们可设计程序如下:

clear

P1=hygecdf(10,1000,300,50)

X=hygeinv(P1,1000,300,50)

P2=hygepdf(10,1000,300,50)

x=1:50;

Px1=hygecdf(x,1000,300,50);

Px2=hygepdf(x,1000,300,50);

stairs(x,Px1);

figure      %生成一个新的图形窗口

stairs(x,Px2);

这里,函数stairs(x,y)绘制向量y的阶梯图,其中阶梯的宽度以向量x指定。

    上面我们介绍了4个关于超几何分布的函数,其实对于每一种常见分布,Matlab都提供了相应的函数,只要把表示超几何分布的字头”hyge”换成相应的字头即可,在Matlab中,表示常用分布函数的字头如下:

分布

函数字头

分布

函数字头

两项分布

bino

指数分布

exp

几何分布

geo

正态分布

norm

超几何分布

hyge

T分布

t

泊松分布

poiss

F分布

f

均匀分布

unif

β分布

beta

离散均匀分布

unid

γ分布                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

gam

我们只要将它们分别与cdfpdfinvrnd组合,即可得到各种分布的相应函数。其用法可以用“help 函数名”查看。

Matlab还可以用来求常用分布函数计算数学期望和方差,函数名及意义如下:

分布名

函数及使用格式

意义和说明

两项分布

[E,D]=binostat(N,P)

计算两项分布的数学期望和方差

超几何分布

[E,D]=hygestat(M,K,N)

计算超几何分布的数学期望和方差

泊松分布

[E,D]=poisstat(Lambda)

计算泊松分布的数学期望和方差

均匀分布

[E,D]=unifstat(A,B)

计算均匀分布的数学期望和方差

指数分布

[E,D]=expstat(P,Lambda)

计算指数分布的数学期望和方差

正态分布

[E,D]=normstat(mu,sigma)

计算正态分布的数学期望和方差

函数cov()计算协方差,corrcoef()计算相关系数。

Matlab还可以用来进行参数估计,常用分布参数估计的函数如下表

常用分布

参数估计函数

泊松分布

[lambdahat,lambdaci]=poissfit(X,Alpha)

均匀分布

[ahat,bhat,aci,bci]=unifit(X,Alpha)

指数分布

[lambdahat,lambdaci]=expfit(X,Alpha)

两项分布

[phat,pci]=binofit(X,Alpha)

正态分布

[muhat,sigmahat,muci,sigmaci]=normfit(X,Alpha)

2:设有一批零件,其中一级品的概率为0.2,现在从中随机抽取20只,其中一级品的个数为随机量。根据条件给出一个随机数,然后再根据这个随机数计算一级品率的最大可能性估计值。

解:程序如下:

clear

X=binornd(20,0.2)     %生成二项分布随机数

[p,pci]=binofit(X,20)   %给出参数估计和置信区间

结果为:X =2p =0.1000pci =[0.0123, 0.3170]

这样的结果表示:当随机抽取20个样品,其中一级品为2个时,一级品率的估计值为0.1,虽然与实际情况不符,但的确在置信区间内。

3:设有一批产品2000个,其中有30个次品,随机抽取100个产品,求其中次品数x的概率密度分布,并绘制图形。这里有两种抽取方法:(1)不放回抽样,一次抽取100个。(2)放回抽样,抽100次。

分析:不放回抽样,x服从超几何分布。放回抽样,x服从两项分布,此时次品率按30/2000 =0.015计算;因为抽取的数量多(100个),次品率小(p=0.015),所以x的分布可以按泊松分布近似计算,此时分布参数Lambda100×0.015=1.5。程序如下:

clear 

x=0:20;

P1=hygepdf(x,2000,30,100);

P2=binopdf(x,100,0.015);

P3=poisspdf(x,1.5);

subplot(3,1,1)

plot(x,P1,'+')

title('hygepdf');

subplot(3,1,2)

plot(x,P2,'*')

subplot(3,1,3)

plot(x,P3,'.')

title('poisspdf')

 

 

三、实验内容

1.在计算机上实现相关知识中的三个实例,体会Matlab有关概率统计函数的用法。

2.某人向空中抛硬币100次,落下为正面的概率为0.5。这100次中正面向上的次数为x,(1)试计算x=45的概率和x<=45的概率。(2)给出随机数x的概率累积分布图像和概率密度图像。

3.完成实验报告。