您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > MATLAB进行单因素方差分析——ANOVA
MATLAB进行单因素方差分析—ANOVA方差分析的目的是确定因素的不同处理(方法、变量)下,响应变量(类别、结果)的均值是否有显著性差异。方差分析用于两个或者两个以上因素样本均值的检验问题,如果直接使用假设检验的方法进行检验,那么需要对两两变量进行假设检验,如果有r个变量,需要进行的检验数量为r*(r-1)个,计算量相当庞大。对此,R.A.Fisher提出一种基于总误差分解分析的方法对所有样本的误差量分解为随机误差(组内的波动误差)和条件误差(组间的、由不同因素或者不同处理造成的误差),分别表示为SSE和SSA,总误差为SST,那么,SST=SSE+SSA。由随机误差和波动误差构造F统计量对样本均值进行检验的过程,称之为方差分析(AnalysisofVariance,ANOVA)。使用常用的统计工具可以方便的进行方差分析,并给出方差分析表。方差分析表如有如下格式,可以一目了然的获得关于样本总误差分配情况以及所构造的统计量大小、检验显著性等。方差分析的前提是以下两个假设:(1)正态性假设;(2)方差齐性假设;第一个假设即各变量服从正态分布,可以通过一般的正态性检验方法进行检验,这里不再赘述;主要关注一下方差齐性检验,所谓方差齐性,也即方差分析是针对方差一致的情况下,检验样本均值是否一致。因此,所使用样本首先要通过方差齐性检验,其H0假设即为所有样本的样本方差相等。为检验该假设,Bartlett提出了一种卡方检验方法,所构造统计量服从自由度为r-1的卡方分布,r为变量个数。其检验的思想是,首先求出各个样本的样本方差,然后得到样本方差的算术平均值和几何平均值,那么,几何平均值=算术平均值(GMSSE<=MSSE),当所有样本方差相等时,取等号。因此,MSSE/GMSSE比较大时,说明H0假设不能够被接受,方差不一致。所构造的统计量是对上述比值进行的对数变换并添加了一些新项目。Bartlett证明,所构造的统计量服从自由度为r-1的卡方分布。为了在MATLAB下进行方差齐性检验,笔者编写了下面的barttestforvar函数,实现Bartlett方差齐性检验的内容,该函数返回统计量和p值。函数的输入可以为两种:(1)一个矩阵,每一列为一个变量,至少两列;(2)两个向量,第一个向量表示所有变量的样本,第二个向量表示组别,使用整数表示,相同的整数表示一个组(一个变量)。下面是使用该函数对下面的样本进行的方差齐性检验(左侧为样本,右侧为组别):731661891821431801631882782912762852942802962683793713713873683593763803barttestforvar(X,g)ans=Bstat:4.0349pval:0.1330返回统计量说明p值不足以拒绝原假设,也就是说,样本可以通过方差齐性检验。函数代码请下载附件:点击浏览该文件:barttestforvar.rar经过正态性检验和方差齐性检验之后,该问题已经适合进行方差分析,MATLAB提供了适用于单因素方差分析的函数anova1函数。该函数使用非常方便,举个例子来说明:仍然使用上面的数据,y代表样本,g表示组别,那么:p=anova1(y,g)该函数返回表示统计显著性的p值,以及两个图,一个图在前面已经说过,为方差分析表,另一个为直观的表示各个变量的均值和均值置信区间的箱线图,如下:p=0.0211根据p值以及箱线图,都可以看出,所给的三个变量均值具有显著差异。
本文标题:MATLAB进行单因素方差分析——ANOVA
链接地址:https://www.777doc.com/doc-5442935 .html