统计数据
学习MATLAB有关数据统计、随机变量分布和统计作图的指令,学会用MATLAB求解概率统计问题以及相关操作.
1 学习MATLAB命令
1.1 数据描述
MATLAB的统计工具箱(statistics toolbox)提供了许多统计计算的程序,用于数据描述的常用命令(实际上,求均值、标准差等的命令在MATLAB中而不在统计工具箱中).
设X为向量或矩阵.
求均值命令是mean(X),当X为向量时,返回向量的均值;当X为矩阵时,返回由矩阵每一列的均值构成的行向量(这里的均值、方差等都是指样本均值、样本方差等).
求中位数的命令是median(X);
求标准差的命令是std(X);
求方差的命令是var(X);
求极差的命令是range(X);
求偏度的命令是skewness(X);
求峰度的命令是kurtosis(X);
求元素之和的命令是sum(X),求元素累积和的命令是cumsum(X);
求元素之积的命令是prod(X),求元素累积积的命令是cumprod(X);
对数组排序的命令是sort,其格式为:
[Y,I]=sort(X),当X为向量,Y返回X的升序排列,I返回Y对应的X各元素原来的编址,即Y=X(I);当X为矩阵,分别对各列排序;
求数组的上分位数命令是prctile,其格式为:
Y=prctile(X,p),当X为向量,Y返回X的上p%分位数;当X为矩阵,分别返回各列的上p%分位数;
命令trimmean(X,p)是求X在剔除上下各(p/2)%数据以后的均值;
设X,Y为向量,求X的样本协方差命令是cov(X,Y);
设X为矩阵,求X的样本协方差矩阵命令是cov(X);
命令corrcoef用法与cov类似,得到的是相关系数;
命令moment(X,n)返回X的n阶中心矩;当X为矩阵,返回矩阵每列元素的n阶中心矩.
在sort,median,std, var range,skewness, kurtosis, min, max,sum,prod,cumsum,cumprod等命令中,当X为矩阵时,返回结果的解释与mean类似,即返回X的每一列的相应统计计算结果.
例如,同一车间的三台机器所轧的薄板厚度分别是:
机器1:0.2360.2380.2480.2450.243
机器2:0.2570.2530.2550.2540.261
机器3:0.2580.2640.2590.2670.262
输入:
data=[0.2360.2380.2480.2450.243;0.2570.2530.2550.2540.261; 0.2580.2640.2590.2670.262];
data=data';
mean(data)
median(data)%注意mean,median的区别
输出为:
ans=
0.24200.25600.2620
ans=
0.24300.25500.2620
输入:
std(data),sqrt(var (data))%var是std的平方
输出为:
ans=
0.00490.00320.0037
ans=
0.0049 0.0032 0.0037
输入:
sum(data),cumsum(data)%注意sum和cumsum的区别
输出为:
ans=
1.21001.28001.3100
ans=
0.23600.25700.2580
0.47400.51000.5220
0.72200.76500.7810
0.96701.01901.0480
1.21001.28001.3100
输入:
corrcoef(data)%将三列看成三个随机变量,得相关系数矩阵
输出为:
ans=
1.0000 -0.01600.1787
-0.01601.0000 -0.3658
0.1787 -0.36581.0000
输入:
[Y,I]=sort (data)%排序
输出为:
Y=
0.23600.25300.2580
0.23800.25400.2590
0.24300.25500.2620
0.24500.25700.2640
0.24800.26100.2670
I=
121
243
535
412
354
输入:
prctile (data,[25 50] )%prctile (data,50)等于median(data)
输出为:
ans=
0.23750.25380.2588%返回25%上分位数
0.24300.25500.2620%返回50%上分位数
输入:
trimmean(data,20)%注意与mean的区别
输出为:
ans=
0.24200.25600.2620
1.2 常用概率分布
MATLAB统计工具箱提供20种概率分布,我们介绍8种常见分布的MATLAB命令,见表17.1.
表17.1
分布 |
均匀分布 |
指数分布 |
正态分布 |
χ2分布 |
t分布 |
F分布 |
二项分布 |
泊松分布 |
命令 |
unif |
exp |
norm |
chi2 |
t |
f |
bino |
poiss |
对每一种分布提供5类运算功能,采用表17.2所示的字符.
表17.2
功能 |
概率函数 |
分布函数 |
逆概率分布 |
期望与方差 |
随机数生成 |
命令 |
|
cdf |
inv |
stat |
rnd |
当需要某一分布的某类运算功能时,将分布字符与功能字符连接起来,就得到所要的命令,我们来举例说明.
(1)概率函数
输入:
y=normpdf(2.5,2,3)%N(2,9),在x=2.5处的概率密度(标准正态的μ,σ2可省略)
输出为:
y=0.1311
输入:
y=binopdf(3:7,10,0.3)%二项分布B(10,0.3),k=3,4,5,6,7的概率
输出为:
y=0.26680.20010.10290.03680.0090
(2)分布函数
输入:
y=normcdf([-1 0 1.5],0,2)%N(0,22),x=-1,0,1.5处的分布函数
输出为:
y=
0.30850.50000.7734
输入:
y=fcdf(1,10,50)%F(10,50)在x=1处的分布函数
输出为:
y=0.5436
(3)逆概率函数
逆概率函数是分布函数F(x)的反函数,即给定概率α,求满足α=F(xα)=∫xα-∞p(x)dx的xα,也称xα为该分布的下α分位数.
输入:
y=norminv(0.7724,0,2)%N(0,22)的0.7724下分位数
输出为:
y=1.4935
输入:
y=tinv([0.3,0.999],10)%t (10)的0.3,0.999下分位数
输出为:
y=-0.54154.1437
(4)期望与方差
输入:
[m,v]normstat(1,4)%计算N(1,42)的期望和方差
输出为:
m=1v=16
输入:
[m,v]=fstat(3,5)%计算F(3,5)的期望和方差
输出为:
m=1.6667v=11.1111
1.3 随机数
常用的生成随机数的命令及格式有:
rand(m,n)%生成(0,1)上均匀分布的m行n列随机数矩阵
randn(m,n) %生成标准正态分布N(0,1)的m行n列随机数矩阵
randperm(N) %生成1,2,…,N的一个随机排列
random(dist,p1,p2,…,N) %生成以pl,p2,…为参数的m行n列dist类分布随机数矩阵,dist是表示分布类型的字符串
unidrnd(N,m,n) %生成1,2,…,N的等概率m行n列随机数矩阵
binornd(k,p,m,n) %生成参数为k,p的m行n列二项分布随机数矩阵
unifrnd(a,b,m,n) %生成[a,b]区间上连续型均匀分布m行n列随机数矩阵
normrnd (mu,sigma,m,n) %生成均值为mu,均方差为sigma的m行n列正态分布随机数矩阵
mvnrnd(mu,sigma,m) %生成n维正态分布数据,这里mu为n维均值向量,sigma为n阶协方差矩阵,输出为m×n矩阵,每行代表一个n维正态分布随机数
通常随机数生成函数random可适用的分布类型包括:′Discrete Uniform′(离散均匀分布),′Binomial′(二项分布),′Uniform′(均匀分布),′Normal′(正态分布),′Poisson′(泊松分布),′Chisquare′(χ2分布),′t′(t分布),′f′(F分布),′Geometric,′(几何分布),′Hypergeometric′(超几何分布),′Exponential′(指数分布),′Gamma′(Γ分布),′Weibull′(Weibull分布)等.
例如:
random('Binomial',10,0.5,1,10)%生成1行10列服从B (10, 0.5)分布的随机数
random('Uniform',1,3,2,6) %生成2行6列服从U[1,3]分布的随机数
unidrnd (20,1,8) %生成1行8列服从1~20均匀分布的随机数
binornd (10,0.5,1,10) %同random('Binomial',10,0.5,1,10)
normrnd (-5,6,1,10) %生成1行10列服从N(-5,62)的随机数
mvnrnd([0;0]+[1,0.9;0.9,1],10); %生成10个服从N(0,0,1,1,0.9)的二维正态随机数
1.4 统计图
常用的统计作图命令及格式有:
bar(X)%作向量Y的条形图
hist(X,k) %将向量X中数据等分为k组,并作频数直方图,k的缺省值为10
bar(Y,X) %作向量Y相对于X的条形图
[N,X]=hist(Y,k) %不作图,N返回各组数据频数,X返回各组的中心位置
boxplot(Y) %作向量Y的箱形图
例如,输入:
v=randn(1,100); %100个标准正态分布随机数
subplot(1,3,1);hist(v,5); %作出5组频数直方图,见图(a)
[n,x]=hist(v,5)
输出为:
n=
102640222%各组频数
x=
-1.6232 -0.66210.29911.26022.2213 %各组中心
输入:
subplot(1,3,2);bar(x,n/100); %作出5组频数直方图,见图(b)
subplot (1,3,3);boxplot(v); %作出箱型图(c)
箱型图的箱中包含了从25%上分位数到75%上分位数的数据,中间线为中位数.