680 likes | 1.14k Views
Matlab 统计工具箱. 一:统计工具箱简介 二:概率分布 三:参数估计 四:描述性统计 五:假设检验 六:统计绘图. 一 . matlab 统计工具箱( statistics toolbox) 简介. 统计学是处理数据的艺术和科学,通过收集,分析,解释和表达数据来探索事物中蕴含的规律.随着科技水平的迅猛发展,知识经济的时代来临,海量的数据需要人们处理. matlab 统计工具箱为人们提供了一个强有力的统计分析工具.
E N D
Matlab统计工具箱 一:统计工具箱简介 二:概率分布 三:参数估计 四:描述性统计 五:假设检验 六:统计绘图
一.matlab统计工具箱(statistics toolbox)简介 统计学是处理数据的艺术和科学,通过收集,分析,解释和表达数据来探索事物中蕴含的规律.随着科技水平的迅猛发展,知识经济的时代来临,海量的数据需要人们处理.matlab统计工具箱为人们提供了一个强有力的统计分析工具. 统计工具箱基于matlab数值计算环境,支持范围广泛的统计计算任务.它包括200多个处理函数(m文件)主要应用于以下几方面:
1.1 统计工具箱的几大功能 *概率分布 *参数估计 *描述性统计 *假设检验 *统计绘图
1.1.1概率分布---离散型 统计工具箱提供了20种概率分布类型,其中包括 离散型分布: (如binomial二项分布, 即n次贝努里试验中出现k次成功的概率.poisson 分布, 和 分布等).
1.1.2 概率分布—连续型 连续型分布 如正态分布F(x)= beta分布,uniform平均分布等. 每种分布提供5类函数: 1 概率密度 2 (累积)分布函数 3 逆累积分布函数 4 随机数产生器 5 均值和方差函数.
1.1.3另外4大功能 *参数估计---依据原始数据计算参数估计值置信区域. *描述性统计---方差,期望等数字特征. *假设检验---提供最通用的假设检验函数t-检验,z-检验. *统计绘图--- box图函数,正态概率图函数等. 注意:统计工具箱中的说有函数都可用 type function_name语句查看其代码,也可进行修改,从而变为己用,加入到工具箱中.
随机变量的统计行为取决于其概率分布,而分布函数常用连续和离散型分布。统计工具箱提供20种分布。每种分布有五类函数。随机变量的统计行为取决于其概率分布,而分布函数常用连续和离散型分布。统计工具箱提供20种分布。每种分布有五类函数。 1: 概率密度(pdf) ; 2: 累积分布函数(cdf); 3:逆累积分布函数(icdf);4: 随机数产生器 5: 均值和方差函数; 一:离散型概率密度函数:为观察到的特定值的概率。 连续型概率密度函数定义为:如存在非负函数p(x) ≥0,使对任意b≥a, X 在(a,b)上取值概率为p{a<X<b}= ;则称p(x)为随机变量X的概率密度函数。 二:累积分布 (cdf):它取决于pdf. 表达式为F(x)= . 逆累积分布(icdf):实际上是cdf的逆,它返回给定显著概率条件下假设检验的 临界值。 二 概率分布
2.1 三:随机数产生器 所有随机数产生方法都派生于均匀分布随机数。产生方法有:直接法、反演法、拒绝法。 四:均值和方差 均值和方差是分布函数的简单函数。在Matlab里用“stat”结尾的函数可计算得到给定参数的分布的均值和方差。 以下以正态分布为例说明在Matlab里的实现。 一:概率密度函数 X=[-3:0.5:3]; f=normpdf(x,0,1); (其中normpdf为正态分布的Matlab分布实现函数,可由以下介绍的函数代替。)
2.2 功能:可选分布的概率密度函数。 格式:Y=pdf(‘name’,X,A1,A2,A3) 说明:‘name’为特定分布的名称,如‘Normal’,’Gamma’等。X为分布函数的自变量X的取值矩阵,而A1,A2,A3分别为相应的分布参数值。Y给出结果,为概率密度值矩阵。 举例:p=pdf(‘Normal’,-2:2,0,1) 给出标准正态分布在-2到2的分布函数值。 而p=pdf(‘Poisson’,0:4,1:5)给出Poisson分布函数。
2.3 累积分布函数与逆累积分布函数 同样地,累积分布和逆累积分布对每个分布都有特定地Matlab实现函数,这里只介绍通用的cdf,icdf. --- cdf, icdf 功能:计算可选分布的累积分布函数和逆累积分布函数。 格式:P=cdf(‘name’,X,A1,A2,A3) X=icdf(‘name’,X,A1,A2,A3) 说明:cdf和icdf中的参数使用和pdf中的相同。只是计算结果不同。 举例:p=cdf(‘Normal’,0:5,1:6) X=icdf(‘Normal’,0.1:0.2:0.9,0,1)
2.4 随机数产生器 在Matlab里和pdf,cdf与icdf一样,随机数的产生也有通用函数random. --- random 功能:产生可选分布的随机数。 格式:y=random(‘name’,A1,A2,A3,m,n) 说明:random函数产生统计工具箱中任一分布的随机数。‘name’为相应分布的名称。A1,A2,A3为分布参数,意义同pdf参数。m,n确定了结果y的数量,如果分布参数A1,A2,A3为矢量,则m,n是可选的,但应注意,它们给出的长度或矩阵行列数必须与分布参数的长度相匹配。 举例:rn=random(‘Normal’,0,1,2,4)
2.5 均值和方差 和以上其他函数不同的是均值和方差的运算没有通用的函数,只能用各个分布的函数计算。对应于正态分布的计算函数为normstat(); 它返回两个参数的向量,分别为均值和方差。 举例:[m,n]=normstat(mu,sigma)
三.参数估计 参数估计: 某分布的数学形式已知,应用子样信息来估计其有限个参数的值 本节主要介绍 3.1 最大似然估计(Maximum likelihood estimation) 3.2 对数似然函数
3.1最大似然估计 基本思想: 已知一组观测值,给定这组值出自的某类分布中,求 得最有可能出现这组值的一个分布. 调用方法: [phat,pci]=mls[‘dist’,data,alpha] phat为参数估计结果,pci为置信区间计算结果dist为用户给定的分布名称,data为数据列表,(1-alpha)置信区域.
3.1.1 最大似然估计(mls)举例 例: rv=binornd(20,0.75) rv= 17 [p,pci]=mle(‘binomial’,rv,0.05,20) p= 0.8000 pci= 0.5634 0.9427
3.2 对数似然函数 统计工具箱提供了β分布,γ分布,正态分布和威布尔分布的负对数似然函数值的求取函数. 正态分布的负对数似然函数 调用方法 L=normlike(params,data) Params为正态分布参数:params(1)为μ,params(2)为σ
3.2.1其他负对数似然函数 β分布的负对数似然函数 logL=betalike(params,data) γ分布的负对数似然函数 logL=gamlike(params,data) 威布尔分布的负对数似然函数 logL=weiblike(params,data) 参数设置与正态分布的负对数似然函数类似,不加冗述.
四 描述性统计 • 概述: • 人们希望用少数样本来体现样本总体的规律。 • 描述性统计就是收集、整理、加工和分析统计数据,使之系统化、条理化,以显示出数据资料的趋势、特征和数量关系。 • 根据统计量特征性质的不同,工具箱提供了位置度量、散布度量、自助法以及在缺失数据情况下处理方法等方面的描述性统计工具函数。
4.1中心趋势(位置)度量 • 数据样本中心度量的目的在于对数据样本的数据分布线上分布的中心予以定位,即中心位置的度量。 • 均值是对位置的简单和通常的估计量。但野值的存在往往影响位置的确定。而中位数和修正的均值则受野值的干扰很小。中位数是样本的50%分位点。而修正的均值所蕴涵的思想则是剔除样本中最高值和最低值来确定样本的中心位置。 • 几何均值和调和均值对野值都较敏感。当样本服从对数正态分布或偏斜程度很大时,它们也都是有效的方法。 • 以下介绍位置度量有关函数。
4.2.1: 几何平均数(geomean) • 功能:样本的几何均值。 • 格式:m=geomean(X) • 说明:几何均值的定义为 m= (1.4.1) geomean 函数计算样本的几何均值 。X若为矢量,它返回X中元素的几何均值;X若为矩阵,它的结果为一个行矢量,每个元素为X对应列元素的几何均值。 举例:x=exprnd(1,10,6); geometric=geomean(X); average=mean(X);
4.2.2: (调和均值)harmmean • 功能:样本数据的调和均值。 • 格式:m=harmmean(X) • 说明:调和均值定义为 • 举例:样本均值大于或等于调和均值。 X=exprnd(1,10,6); harmonic=harmmean(X) average=mean(X)
4.2.3(平均值)mean • 功能:样本数据的平均值。 • 说明:平均值定义为 • 举例:x=normrnd(0,1,100,5); xbar=mean(X)
4.2.4:median • 功能:样本数据的中值。 • 说明:中值即数据样本的50%中位数。中位数对野值出现的影响较小。 • 举例:xodd=1:5; modd=median(xodd) meven=median(xeven)
4.2.5:trimmean • 功能:剔除极端数据的样本均值。 • 格式:m=trimmean(X,percent) • 说明:函数计算剔除观测量中最高百分比和最低百分比数据后的均值。 函数中percent代表百分比。 • 举例:X=normrnd(0,1,100,100); m=mean(X) trim=trimmean(X,10) sm=std(m) strim=std(trim) efficiency=(sm/strim).^2
4.3散布度量 • 散布度量可以理解为样本中的数据偏离其数值中心的程度,也称离差。 • 极差,定义为样本最大观测值与最小观测值之差。 • 标准差和方差为常用的散布度量,对正态分布的样本描述是最优的。但抗野值干扰能力较小。 • 平均绝对值偏差对野值也敏感。 • 四分位数间距为随机变量的上四分位数 和下四分位之差。
4.4 Matlab里有关散布度量计算的函数 在Matlab里,有关散布度量计算的函数为: 1:计算样本的内四分位数间距的 iqr(X). 2:求样本数据的平均绝对偏差的 mad(X). 3:计算样本极差的 range(X). 4: 计算样本方差的 var(X,w). 5: 求样本的标准差的 std(X). 6: 求协方差矩阵的cov(X). 这些函数的详细说明可以参见Matlab的帮助文档。
4.5处理缺失数据的函数 • 在对大量的数据样本进行处理分析时,常会遇到一些数据无法找到或不能确定的情况。这时可用NaN标注这个数据。而工具箱中有一些函数自动处理它们。 • 如 :忽视NaN, 求其他数据的最大值的nanmax. • 格式:m=nanmax(X) • 举例:m=magic(3); m([1 6 8])=[NaN NaN NaN] [nmax,maxidx]=nanmax(m)
4.6中心矩 • 中心矩是关于数学期望的矩。对于任意的r 0,称 为随机变量X的r阶中心矩。一阶中心矩为0,二阶中心矩为方差: 函数moment计算任意阶中心矩。 格式:m=moment(X,order) 说明:order确定阶。
4.7相关系数 • 相关系数是两个随机变量间线性相依程度的度量。 • 可用函数corrcoef计算它。 • 格式:R=corrcoef(X) • 说明:输入矩阵X的行元素为观测值,列元素为变量,R=corrcoef(X)返回相关系数矩阵R.
五.假设检验 假设检验 是统计的基本问题.旨在应用得到的少量信息,判断整体是否满足给定条件或达到给定的标准. 回顾一下我们以前在统计学中所学的假设检验. 其步骤为:
5.1 假设检验步骤 1.设:零假设.(成立则h=0,否则h=1). 2.取得一组观测值(子样). 3.给定显著型水平α(一般取0.05). 4.应用子样的某些统计量特征. 5.在 成立前提下,若出现已知观测值的概率小于5%,则拒绝,否则认为观测值与假设无显著差别.
5.2 ranksum函数 调用方法: [p,h]=ranksum(x,y,alpha) p返回x,y的母体一致的显著性水平,h为假设检验的返回值.x,y为两组观测值,alpha为显著性水平. 请参考下面例子
5.2.1 Ranksum函数举例 例:检验两组服从poisson分布的随机数样本的均值是否相同. x=poissrnd(5,10,1); y=poissrnd(2,10,1); [p,h]=ranksum(x,y,0.05) p= 0.0028 h= 1
5.3 signrank函数 调用方法:[p,h]=signrank(x,y,alpha) 参数与ranksum函数类似. 例:检验两个正态分布的样本子样均值是否相等. x=normrnd(0,1,20,1); y=normrnd(0,2,20,1); [p,h]=signrank(x,y,0.05) p= 0.2568 h= 0
5.4 ttest---t检验 调用方法: [h,sig,ci]=ttest(x,m,alpha) h为假设检验的返回值.sig与T统计量有 关,T= . ci为均值的(1-alpha)置信区 域.m为假设的样本均值.
5.4.1 ttest函数举例 例:给出理论均值为0、标准差为1的100个正态随机数样本。当然,观测样本的均值和标准差与理论值不同的,但假设检验的结果却还原其本质规律。 x=normrnd(0,1,1,100); [h,sig,ci]=ttest(x,0); h= 0 sig= 0.4474 ci= -0.1165 0.2620 结果h=0,意味着我们不能拒绝零假设。
5.5 ztest函数 已知方差的单样本均值的检验假设. 调用方法: [h,sig,ci]=ztest(x,m,sigma,alpha,tail) ztest(x,m,sigma)是在0.05显著性水平下检验正态分布的样本是否具有均值m和标准差sigma. h=ztest(x,m,sigma,alpha)则可由您确定显著性水平alpha值,并返回检验结果h。 Sig、ci与ttest函数中相应的意义相同。
5.5.1函数ztest举例 例: x=normrnd(0,1,100,1); m=mean(x); m=0.0727 [h,sig,ci]=ztest(x,0,1); h= 0 sig= 0.4669 ci= -0.1232 0.2687
六 统计绘图 • 概述 • 统计工具箱在Matlab丰富的绘图功能上又添加了图形表现函数,box图用于展现样本及其统计量的内在规律,也用于通过图形来比较多个样本的均值。正态概率图是确定样本是否为正态分布的图形。分位数-分位数图用于比较两个样本的分布。
6.1 Box图 • --boxplot • 功能:数据样本的box图。 • 格式:boxplot(X) boxplot(X,notch,’sym’,vert,whis) 举例:x1=normrnd(5,1,100,1); x2=normrnd(6,1,100,1); x=[x1 x2]; boxplot(x,1)
6.2误差条图 • ---errorbar • 功能:误差条图。 • 格式:errorbar(X,Y,L,U,symbol) • 举例:lambda=(0.1:0.2:0.5); r=poissrnd(lambda(ones(50,1),:)); [p,pci]=poissfit(r,0.001); L=p-pci(1,: ) U=pci(2,: )-p errorbar(1:3,p,L,U,’+’)
6.3 还有其他函数: 1: fsurfht 画交互轮廓图 2: gline 绘制交互 3:gname 用实例名称或实例号来标记图中的点 4: lsline 绘制数据的最小二乘拟合线 5: normplot 图形化正态检验的正态概率图 6: pareto 帕累托图 7: qqplot 两个样本的分位数-分位数图 8 :rcoplot 回归残差图 9: refcurve 在当前图形中给出多项式拟合曲线
几个统计绘图的例子 • 画正态概率图 • Normplot(x) • 画数据的正态概率图 • X=normrnd(0,1,50,1) • H=normplot(x);
pareto图 • Pareto(y,’names’) • defects=['pits ';'cracks';'holes ';'dents ']; • quantify[5,3,19,25]; • quantity=[5,3,19,25];
用实例名来标记图中的点 • Gname(‘case’) • 功能:用实例名来标记图中的点 • Load cities • Eduation=rating(:,6);arts=ratings(:,7); • Plot(eduation,artsk,’+’) • Gname(names)
第四章 最优工具箱(Optimization Toolbox Ver 5.0) 优化工具箱简介 Matlab 的优化工具箱提供了对各种优化问题的一个完整的解决方案,其内容涵盖线性规划,二次规划,非线性规划,最小二成问题,非线性方程求解,多目标决策,最小最大问题,以及半无限问题等的优化问题。 一个简单的例子: 例一 ,考虑如下优化问题 目标函数: minf(x)x=℮x1(4x12+2x22+4x1x2+2x2+1) 约束方程: x1x2-x1-x2+1.5≤0 x1x2≥-10
为了求解该优化问题,必须先编写一个能够返回函数值的M文件,将函数表达式写入,然后调用有约束非线性优化函数constr,由于优化函数要求约束方程具有G(x)≤0的形式,因此必须将约束方程规范化,进行与处理。为了求解该优化问题,必须先编写一个能够返回函数值的M文件,将函数表达式写入,然后调用有约束非线性优化函数constr,由于优化函数要求约束方程具有G(x)≤0的形式,因此必须将约束方程规范化,进行与处理。 求解过程 第一步:为目标函数及约束方程编写M文件———fun.m function [f,g] = fun(x) f =exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1) ; g(1,1) = 1.5+x(1)*x(2) –x(1) –x(2) ; % 约束 g(2,1) = -(1)*x(2) –10 ; 第二步:在命令窗口调用有约束非线性优化函数 constr x0 = [-1,1] ; % 设置初始解向量 x = constr (‘fun’, x0) 经过29次函数调用后,得出如下结果: x = 9.5474 1.0474 极值点处的函数值和约束条件的值为: [f,g] = fun(x) 规范化后约束方程变为 x1x2-x1-x2+1.5≤0 -x1x2-10≤0
f =0.0236g =0e –15* .8882 可见,使用Matlab的优化工具箱解决优化问题简洁,明了。用户应该将精力集中于需要解决的问题,而不需要考虑各种算法的具体实现。 4.2.2 约束方程的规范化 由于Matlab的优化工具箱仅支持形如G(x)≤0的约束方程以及变量的上下界约束。因此,对于非规范型的约束方程,必须进行变换。将其变 换为形如 –g(x)≤0 对于等式约束,Matlab 要求必须将等式约束方程置于约束变量g 的前几个元素中,并在优化参数设置选项 options 相两种设置 options(13) 为等式约束方程的个数。 以例一的优化问题为例,加入一个等式约束: x1+x2 = 1 将其改为规范等式约束: x1+x2 – 1= 0 并在第二步中加入: options(13) = 1 ; %有一个等式约束 对于上下界约,Matlab 通过优化函数的有界语法调用来实现。例如, 对于 constr函数,其有界语法调用格式为: x = constr ( ‘fun’, x0 , options , vlb , vub ) ; 该调用将x 限制在vlb≤x≤vub
4.2.3 参数设置与附加参数传递优化问题求解时常常要对相对误差,使用算法等进行设置,Matlab 提供了options 向量来对优化函数进行参数设置。如果没有使用options 向量或者options 向量唯为空向量,则回自动生成一个options 向量并使用一组缺省值。如果要对options 向量中的某些元素重新赋值,则可首先通过foptions 函数来产生一个options 向量,然后对有需要的元素赋值,其他仍然为空缺值。 foptions 功能:设置优化参数, 显示参数值 格式: help foptions options = foptions 需要注意的是,附加参数不能超过 10 个。 4.2.4 表达式优化 直接对由表达式描述的简单函数进行优化 注意,当书写这种表达式时,自变量必须以小写字母 x 表示。 例3 表达式优化的例子: x = fminu (‘sin(x)’ , 1) % 求sin(x)的最小值,初始值为1 x = fxolve (‘x*x*x –[1,2;3,4]’ , ones(2,2)) % 矩阵方程求解 x = leastsq ( ‘x*x –[3 5; 9 10]’ , eye(2,2)) % 最小方差问题
4.3 线性规划目标函数: minc1x1+c2x2+…cnxn约束 : a11x1+a12x2+…+a1nxn=b1 a21x1+a22x2+…+a2nxn=b2 … am1x1+am2x2+…+amnxn=bm xi≥0, i = 1,2, …n 注意,所有的决策变量xi 均假定为非负,否则可用 x’i –x’’i 取代它,x’i>0,x’’i>0, 如果有不等式约束,则对含≤的约束,在左边加上一个非负变量使其成为等式约束;对含≥的约束,在左边减去一个非负变量使其成为等式约束。 4.3.2 lp函数 lp 功能 :求解线性规划问题 格式 :x = lp(c,A,b) x = lp(c,A,b,vlb) x = lp(c,A,b,vlb,vub) % 设置解向量的上下界 x = lp(c,A,b,vlb,vub,x0) % 设置初始解向量 x0 x = lp(c,A,b,vlb,vub,x0,neqcstr) % 设置在约束中的等式约束的个数 [x,lambda,how] = lp (c,A,b,…) % 同时返回拉格朗日乘子