概率论与数理统计——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.5460
,sigma=0.0050
,mui=-0.5483,-0.5438
,sigmai=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进行一元线性回归
plot(x,y,'*')
绘出数据的散点图ba=polyfit(x,y,1)
得到回归系数,其中ba(1)
为斜率b,ba(2)为截距asig=norm(y-ba(2)-ba(1)*x)/sqrt(n-2)
得到随机误差的方差σ²- 调用
x1=[1,n]
(n自定义),y1=ba(2)+ba(1)*x1
,plot(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; %置信上限
以上部分内容引自《概率论与数理统计(第二版)》(高等教育出版社),如有侵权,请联系我删除。