概率论与数理统计——MATLAB

1. 用MATLAB产生随机数

独立同分布的随机变量的观测值称为随机数,以下MATLAB指令都是用于产生x*y个服从对应分布的随机数。

分布名称

MATLAB指令

两点分布B(1,p)

R=binornd(1,p,x,y)

二项分布B(n,p)

R=binornd(n,p,x,y)

泊松分布P(λ)

R=poissrnd(λ,x,y)

超几何分布H(N,M,n)

R=hygernd(N,M,n,x,y)

几何分布Geom§

R=geornd(p,x,y)+1

均匀分布U(a,b)

R=unifrnd(a,b,x,y)

指数分布ε(λ)

R=exprnd(1/λ,x,y)

正态分布N(μ,σ²)

R=normrnd(μ,σ,x,y)

伽马分布Γ(α,β)

R=gamrnd(α,β)

2. 用MATLAB计算概率分布函数和密度

分布名称

分布函数F(x)=P(X≤x)

概率密度f(x)或px

二项分布B(n,p)

F=binocdf(x,n,p)

px=binopdf(x,n,p)

泊松分布P(λ)

F=poisscdf(x,λ)

px=poisspdf(x,λ)

超几何分布H(N,M,n)

F=hygecdf(x,N,M,n)

px=hygepdf(x,N,M,n)

几何分布Geom§

F=geocdf(x-1,p)

px=geopdf(x-1,p)

帕斯卡分布(r,p)

F=nbincdf(x-r,r,p)

px=nbinpdf(x-r,r,p)

正态分布N(μ,σ²)

F=normcdf(x,μ,σ)

f=normpdf(x,μ,σ)

指数分布ε(λ)

F=expcdf(x,1/λ)

f=exppdf(x,1/λ)

伽马分布Γ(α,β)

F=gamcdf(x,α,1/β)

f=gampdf(x,α,1/β)

韦布尔分布W(a,b)

F=weibcdf(x,a,b)

f=weibpdf(x,a,b)

对数正态分布(μ,σ²)

F=logncdf(x,μ,σ²)

f=lognpdf(x,μ,σ²)

瑞利分布

F=raylcdf(x,1)

f=raylpdf(x,1)

t(n)

F=tcdf(x,n)

f=tpdf(x,n)

χ²(n)

F=chi2cdf(x,n)

f=chi2pdf(x,n)

F(n,m)

F=fcdf(x,n,m)

f=fpdf(x,n,m)

3. 用MATLAB计算样本均值、样本标准差,绘制直方图

需要先给x=[x1;x2;……;xn],y=[y1;y2;……;yn]

名称

MATLAB命令

名称

MATLAB命令

样本均值

mean(x)

最小值

min(x)

样本标准差

std(x)

最大值

max(x)

样本方差

var(x)

中位数

median(x)

样本协方差

cov(x,y)

升序排名

sort(x)

样本相关系数

corrcoef(x,y)

元素求和

sum(x)

直方图

hist(x)

取整部

fix(x)

4. 用MATLAB计算置信区间

可以调用MATLAB命令来计算服从某一分布的样本的样本均值样本标准差s参数μ,σ的置信水平为1-α的置信区间

例如调用x=[-0.541;-0.545;……;-0.535;-0.546]为x赋值,然后调用[mu,sigma,mui,sigmai]=normfit(x,0.05)得到输出mu=-0.5460sigma=0.0050mui=-0.5483,-0.5438sigmai=0.0038,0.0072。即样本均值=-0.5460,样本标准差s=0.0050,置信水平0.95下μ的置信区间是[-0.5483,-0.5438],σ的置信区间是[0.0038,0.0072]。

注意,此处的命令都是适用于参数均未知的情况下,对于有已知参数的,结果可能有出入。

分布参数

MATLAB命令

结果说明

正态分布N(μ,σ²)

[mu,sigma,mui,sigmai]=normfit(x,α)

样本均值,s和μ,σ的置信水平为1-α的置信区间

泊松分布P(λ)

[lambda,lambdai]=poissfit(x,α)

λ的MLE和置信水平为1-α的置信区间

指数分布ε(1/λ)

[lambda,lambdai]=expfit(x,α)

λ的MLE和置信水平为1-α的置信区间

均匀分布U(a,b)

[a,b,ai,bi]=unifit(x,α)

a,b的MLE和置信水平为1-α的置信区间

5. 用MATLAB计算上α分位数

分布与分位数

MATLAB命令

标准正态分布zα

z=norminv(1-α,0,1)

t分布tα(n)

t=tinv(1-α,n)

卡方分布χ²α(n)

chi2=chi2inv(1-α,n)

F分布Fα(n,m)

F=finv(1-α,n,m)

Bα(n,p)

B=binoinv(1-α,n,p)+1

瑞利分布

R=raylinv(1-α,1)

6. 用MATLAB进行一元线性回归

  1. plot(x,y,'*')绘出数据的散点图
  2. ba=polyfit(x,y,1)得到回归系数,其中ba(1)为斜率b,ba(2)为截距a
  3. sig=norm(y-ba(2)-ba(1)*x)/sqrt(n-2)得到随机误差的方差σ²
  4. 调用x1=[1,n](n自定义),y1=ba(2)+ba(1)*x1plot(x,y,'*',x1,y1)绘出(x,y)的散点图和回归直线图

或者可以通过以下的方式

x=[1975;1977;1980;1982;1984;1986];
y=[642;656;688;689;717;742];
n=numel(x);
c=cov(x,y); %协方差矩阵
sxy=c(1,2); %样本协方差
sx=sqrt(c(1,1)); %样本x标准差
sy=sqrt(c(2,2)); %样本y标准差
pxy=sxy/(sx*sy); %样本相关系数
b=sxy/power(sx,2);
a=mean(y)-b*mean(x);
lyy=(n-1)*power(sy,2);
lxx=(n-1)*power(sx,2);
Q=lyy-power(b,2)*lxx; %残差平方和
sigma=sqrt(Q/(n-2));
x0=1987;
t=2.776; %t α/2(n-2)
y0=a+b*x0;
yita=sigma*sqrt(1+1/n+power(x0-mean(x),2)/lxx);
% 置信水平为1-α的置信区间
xiaxian=y0-t*yita; %置信下限
shangxian=y0+t*yita; %置信上限