基于matlab的方差分析 您所在的位置:网站首页 方差齐性分析结果怎么看 基于matlab的方差分析

基于matlab的方差分析

2024-02-15 18:47| 来源: 网络整理| 查看: 265

更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

方差分析是英国统计学家R.A.Fisher在20世纪20年代提出的一种统计方法,它有着非常广泛的应用。在生产实践和科学研究中,经验要研究生产条件或实验条件的改变对产品的质量或产量的影响。如在农业生产中,需要考虑品种、施肥量、种植密度等因素对农作物收获量的影响;又如某产品在不同的地区、不同的时期、,采用不同的销售方式,其销售量是否有差异。在诸多影响因素中,哪些是主要的,哪些是次要的,以及主要因素处于何种状态时,才能使农作物的产量和产品的销售量达到一个较高的水平,这就是方差分析索要解决的问题。

方差分析按影响分析指标的因素(也可简单成为 自变量)个数的多少,分为单因素方差分析、双因素方差分析、三因素方差分析。。。

方差分析按分析指标(也可简单称为 因变量)的个数多少,分为一元方差分析(即ANOVOA)、多元方差分析(即,MANOVOA)..

多自变量多因变量的方差分析,可以简单称为多元方差分析,当然更精确的称为“X因素Y元方差分析”,如二因素二元方差分析。

1。单因素一元方差分析

(1) MATLAB统计工具箱中提供了anova1函数,用来作单因素一元方差分析,其调用格式如下:

p=anova1(x)

根据样本观测值矩阵X进行单因素一元方差分析,检验矩阵X的各列所对应的总体是否具有相同的均值,原假设是X的各列所对应的总体具有相同的均值。输出参数p是检验的p值,对于给定的显著性水平,如果p0.05,说明在显著性水平0.05下接受原假设,认为6个学院的学生的考试成绩服从方差相同的正态分布,满足方差分析的基本假定。

第三步:方差分析

经过正态性检验和方差齐次性检验之后,认为6个学院学生的成绩服从方差相同的正态分布,下面调用anoval函数进行单因素一元方差分析,检验不同学院的学生的考试成绩有无显著差别,原假设是没有显著差别,备择假设是有显著差别。

%读取文件数学成绩.xls中第一工作表中的数据 [x,y]=xlsread(‘数学成绩.xls’);

%提取矩阵x中的第2列数据,即成绩数据 score=x(:,2);

%读取元胞数组y的第4列的第2行至最后一行数据,即2077名同学所在学院名称数据 college=y(2:end,4);

%单因素一元方差分析 [p,table,stats]=anova1(score,college)

p =

5.6876e-74

table =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘F’ ‘Prob>F’ ‘Groups’ [2.9192e+04] [ 5] [5.8384e+03] [76.7405] [5.6876e-74] ‘Error’ [1.5756e+05] [2071] [ 76.0796] [] [] ‘Total’ [1.8675e+05] [2076] [] [] []

stats =

gnames: {6×1 cell} n: [510 404 349 206 303 305] source: ‘anova1’ means: [72.5608 74.4703 79.8968 73.1068 69.4323 67.9508] df: 2071 s: 8.7224

基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看

anova1函数返回的p值F’ ‘Columns’ [ 3067] [ 2] [1.5335e+03] [78.3064] [1.3145e-09] ‘Rows’ [368.1667] [ 1] [ 368.1667] [18.8000] [3.9813e-04] ‘Interaction’ [250.3333] [ 2] [ 125.1667] [ 6.3915] [ 0.0080] ‘Error’ [352.5000] [18] [ 19.5833] [] [] ‘Total’ [ 4038] [23] [] [] []

stats =

source: ‘anova2’ sigmasq: 19.5833 colmeans: [38.7500 60 64.7500] coln: 8 rowmeans: [50.5833 58.4167] rown: 12 inter: 1 pval: 0.0080 df: 18

基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看

因素A、因素B以及他们的交互作用对应的检验p值均小于给定的显著性水平0.05,所以可以认为氮、磷两种肥料的施用量对水稻的产量均有显著性影响,并且他们之间的交互作用也是非常显著的。由于氮、磷两种肥料的用量对水稻的产量均有非常显著的影响,可以作进一步分析,例如进行多重分析,找出因素A、B在哪种水平的组合下水稻的平均产量最高。

(3)多重比较

下面调用multcompare函数,把anova2函数返回的结构体变量stats作为它的输入,进行多重比较。

%对列(因素A)进行多重比较 [c_A,m_A]=multcompare(stats,’estimate’,’column’) %对行(因素B)进行多重比较 [c_B,m_B]=multcompare(stats,’estimate’,’row’)

Note: Your model includes an interaction term that is significant at the level you specified. Testing main effects under these conditions is questionable.

c_A =

1.0000 2.0000 -26.8971 -21.2500 -15.6029 0.0000 1.0000 3.0000 -31.6471 -26.0000 -20.3529 0.0000 2.0000 3.0000 -10.3971 -4.7500 0.8971 0.1084

m_A =

38.7500 1.5646 60.0000 1.5646 64.7500 1.5646

Note: Your model includes an interaction term that is significant at the level you specified. Testing main effects under these conditions is questionable.

c_B =

1.0000 2.0000 -11.6289 -7.8333 -4.0378 0.0004

m_B =

50.5833 1.2775 58.4167 1.2775

由上面结果可以看出,若单独考虑A因素,它的第1个水平与后两个水平差异显著,它的第2个水平与第3个水平差异不显著,并且当A去第3个水平(N3)时,水稻产量的均值达到最大(64.75);如果单独考虑B因素,它的两个水平差异显著,在因素A,B的水平组合N3P2下,水稻的平均产量达到最大值,然而这确实错误的,因为A,B之间存在着非常显著的交互作用,在这种情况下对主效应进行检验可能存在问题,这时应该对因素A、B的每种水平组合进行多重比较,找出所要的水平组合。这就是下一节的内容。

3.多因素一元方差分析

(1)多因素一元方差分析的MATLAB实现

MATLAB工具工具箱中提供了anovan函数,用来根据样本观测值向量进行均衡或非均衡试验的多因素一元方差分析,检验多个(N个)因素的主效应或交互式效应是否显著,调用格式如下:

p=anovan(y,group)

根据样本观测值向量y进行均衡或非均衡试验的多因素一元方差分析,检验多个因素的主效应是否显著。输入参数group是一个元胞数组,它的每一个元胞对应一个因素,是该因素的水平列表,与y等长,用来标记y中的每个观测所对应的因素的水平。

anovan函数还生成1个图形,用来显示一个标准的多因素一元方差分析表。

p=anovan(y,group,param1,val1,param2,val2,……)

通过指定一个或多个成对出现的参数名与参数值来控制多因素一元方差分析。可用的参数名与参数值如下表

参数名

参数值

说明

‘alpha’

(0,1)内的标量

指定置信水平

‘continuous’

下标向量

用来指明哪些分组变量被作为连续变量,而不是离散的分类变量

‘display’

‘on’ ‘off’

用来指定是否显示方差分析表

‘model’

‘linear’,‘interaction’ ‘full’

用来指定所用模型的类型,‘linear’(默认)只对N个主效应进行检验,不考虑交互效应,‘interaction’对主效应和两个因素的交互效应减小检验 ‘full’对N个主效应和全部的交互效应进行检验。 也可以通过0和1的矩阵自定义效应项

‘nested’

由0和1构成的矩阵M

指定分组变量之间的嵌套关系

‘random’

下标向量

用来指明哪些分组变量是随机的。

‘sstype’

1,2或3

指定平方和的类型,默认值为3

‘varnames’

字符矩阵或字符串元胞数组

指定分组变量的名称。当没有指定时,默认用‘X1’,‘X2’,…’XN’做为名称

[p,table]=anovan(……)

返回元胞数组形式的方差分析表table。

[p,table,stats]=anovan(…..)

返回一个结构体变量stats,用于进行后续的多重比较,。当某因素对实验指标的影响显著时,在后续的分析中,可用调用multcompare函数,把stats作为其输入,进行多重比较。

[p,table,stats,terms]=anovan(…..)

返回方差分析计算中的主效应和交互效应矩阵terms。

(2)例:仍用上节中的数据

处理

区组

1

2

3

4

N1P1

38

29

36

40

N1P2

45

42

37

43

N2P1

58

46

52

51

N2P2

67

70

65

71

N3P1

62

64

61

70

N3P2

58

63

71

69

调用anovan函数进行分析,在不考虑区组因素的情况下,分析氮、磷两种肥料的施用量对水稻的产量是否有显著影响,并分析交互作用是否显著,然后找出在因素A,B的哪种水平组合下水稻的平均产量高,显著性水平为0.05.

%定义一个矩阵,输入原始数据 yield=[38 29 36 40 45 42 37 43 58 46 52 51 67 70 65 71 62 64 61 70 58 63 71 69]; yield=yield’ %矩阵转置 %将数据矩阵yield按列拉长成24行1列的向量 yield=yield(:); %定义因素A(氮)的水平列表向量 A=strcat({‘N’},num2str([ones(8,1);2*ones(8,1);3*ones(8,1)])); %定义因素B(磷)的水平列表向量 B=strcat({‘P’},num2str([ones(4,1);2*ones(4,1)])); B=[B;B;B]; %将因素A、B的水平列表向量与yield向量放在一起构成一个元胞数组,以元胞数组形式显示出来 [A,B,num2cell(yield)] %指定因素名称,A表示氮肥施用量,B表示磷肥施用量 varnames={‘A’,’B’}; %调用anovan函数作双因素一元方差分析,返回主效应A、B和交互效应AB所对应的p值向量 %还返回方差分析表table,结构体变量stats,标识模型效应项的矩阵term [p,table,stats,term]=anovan(yield,{A,B},’model’,’full’,’varnames’,varnames)

ans =

‘N1’ ‘P1’ [38] ‘N1’ ‘P1’ [29] ‘N1’ ‘P1’ [36] ‘N1’ ‘P1’ [40] ‘N1’ ‘P2’ [45] ‘N1’ ‘P2’ [42] ‘N1’ ‘P2’ [37] ‘N1’ ‘P2’ [43] ‘N2’ ‘P1’ [58] ‘N2’ ‘P1’ [46] ‘N2’ ‘P1’ [52] ‘N2’ ‘P1’ [51] ‘N2’ ‘P2’ [67] ‘N2’ ‘P2’ [70] ‘N2’ ‘P2’ [65] ‘N2’ ‘P2’ [71] ‘N3’ ‘P1’ [62] ‘N3’ ‘P1’ [64] ‘N3’ ‘P1’ [61] ‘N3’ ‘P1’ [70] ‘N3’ ‘P2’ [58] ‘N3’ ‘P2’ [63] ‘N3’ ‘P2’ [71] ‘N3’ ‘P2’ [69]

p =

0.0000 0.0004 0.0080

table =

‘Source’ ‘Sum Sq.’ ‘d.f.’ ‘Singular?’ ‘Mean Sq.’ ‘F’ ‘Prob>F’ ‘A’ [3.0670e+03] [ 2] [ 0] [1.5335e+03] [78.3064] [1.3145e-09] ‘B’ [ 368.1667] [ 1] [ 0] [ 368.1667] [18.8000] [3.9813e-04] ‘A*B’ [ 250.3333] [ 2] [ 0] [ 125.1667] [ 6.3915] [ 0.0080] ‘Error’ [ 352.5000] [ 18] [ 0] [ 19.5833] [] [] ‘Total’ [ 4038] [ 23] [ 0] [] [] []

stats =

source: ‘anovan’ resid: [24×1 double] coeffs: [12×1 double] Rtr: [6×6 double] rowbasis: [6×12 double] dfe: 18 mse: 19.5833 nullproject: [12×6 double] terms: [3×2 double] nlevels: [2×1 double] continuous: [0 0] vmeans: [2×1 double] termcols: [4×1 double] coeffnames: {12×1 cell} vars: [12×2 double] varnames: {2×1 cell} grpnames: {2×1 cell} vnested: [] ems: [] denom: [] dfdenom: [] msdenom: [] varest: [] varci: [] txtdenom: [] txtems: [] rtnames: []

term =

1 0 0 1 1 1

基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看

返回的向量p是主效应A,B和交互效应AB所对应的检验的p值,table是元胞数组的方差分析表,stats是一个结构体变量,可用于后续的分析中(如多重比较),矩阵term的3行分布表示了3个效应项:主效应项A,主效应项B和交互式效应项AB,还生成了一个方差分析表。

返回的结果与调用anova2函数得到的结果一样,因素A,因素B以及他们的交互作用所对应的p值均小于给定的显著想水平0.05,所以可以认为氮、磷两种肥料的施用量对水稻的产量均有非常显著的影响,并且他们之间的交互作用也是非常显著的。

(3)多重比较。

调用multcompare函数,把anovan函数返回的结构体变量stats作为它的输入,对因素A、B的每种水平的组合进行多重比较,找出在因素A、B的哪种水平组合下水稻的平均产量最高。

%多重比较 [c,m,h,gnames]=multcompare(stats,’dimension’,[1 2]) %查看各处理的均值 [gnames,num2cell(m)]

c =

1.0000 2.0000 -25.9446 -16.0000 -6.0554 0.0009 1.0000 3.0000 -38.4446 -28.5000 -18.5554 0.0000 1.0000 4.0000 -15.9446 -6.0000 3.9446 0.4236 1.0000 5.0000 -42.4446 -32.5000 -22.5554 0.0000 1.0000 6.0000 -39.4446 -29.5000 -19.5554 0.0000 2.0000 3.0000 -22.4446 -12.5000 -2.5554 0.0093 2.0000 4.0000 0.0554 10.0000 19.9446 0.0483 2.0000 5.0000 -26.4446 -16.5000 -6.5554 0.0006 2.0000 6.0000 -23.4446 -13.5000 -3.5554 0.0047 3.0000 4.0000 12.5554 22.5000 32.4446 0.0000 3.0000 5.0000 -13.9446 -4.0000 5.9446 0.7926 3.0000 6.0000 -10.9446 -1.0000 8.9446 0.9995 4.0000 5.0000 -36.4446 -26.5000 -16.5554 0.0000 4.0000 6.0000 -33.4446 -23.5000 -13.5554 0.0000 5.0000 6.0000 -6.9446 3.0000 12.9446 0.9251

m =

35.7500 2.2127 51.7500 2.2127 64.2500 2.2127 41.7500 2.2127 68.2500 2.2127 65.2500 2.2127

h =

2

gnames =

‘A=N1,B=P1’ ‘A=N2,B=P1’ ‘A=N3,B=P1’ ‘A=N1,B=P2’ ‘A=N2,B=P2’ ‘A=N3,B=P2’

ans =

‘A=N1,B=P1’ [35.7500] [2.2127] ‘A=N2,B=P1’ [51.7500] [2.2127] ‘A=N3,B=P1’ [64.2500] [2.2127] ‘A=N1,B=P2’ [41.7500] [2.2127] ‘A=N2,B=P2’ [68.2500] [2.2127] ‘A=N3,B=P2’ [65.2500] [2.2127]

基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看

返回的矩阵c是6种处理(N1P1,N2P1,N3P1,N1P2,N2P2,N3P2)间多重比较的结果矩阵,每一行的前两列是进行比较的两个处理的编号,第4列是两个处理的均值之差,第3列是两个处理均值差的95%置信下限,第5列是两个处理均值差的95%置信下限,当两个处理均值差的95%置信区间不包含0时,说明在显著性水平0.05下,这两个处理均值间差异是显著的。m矩阵列出了6种处理的平均值,很明显第5个处理(即N2P2)的平均值最大,由矩阵c或交互式多重比较的图中可以得到,处理5与处理3,6差异不显著,所以可以认为第3个和第6个处理也是可以的,所以,综上,可以在处理3,5,6中做出选择,即N3P1,N2P2,N3P2。

4. 单因素多元方差分析

(1)单因素多元方差分析的MATLAB实现

MATLAB统计工具箱中提供了manoval函数,用来做单因素多元方差分析,检验多个多元正态总体是否具有相同的均值向量。调用格式如下:

d=manova1(X,group)

根据样本观测值矩阵X进行单因素多元方差分析,比较X中的各组观测是否具有相同的均值向量,原假设是各组的组均值是相同的多元向量。样本观测值矩阵X是一个mxn的矩阵,它的每一列对应一个变量,每一行对应一个观测,每一个观测都是n元的。输入参数group是一个分组变量,用来标示X中的每个观测所在的组,group可以是一个分类变量、向量、字符串数组或字符串元胞数组,group的长度应该与X的行数相等,group中相同元素对应的X中的观测来自同一个总体(组)的样本。

各组的均值向量生成了一个向量空间,输出参数d是这个空间维数的估计,当d=0时,接受原假设,当d=1时在显著性水平0.05下,拒绝原假设,认为各组的组均值不全相同,但是不能拒绝他们贡献的假设;当d=2时,拒绝原假设,此时各组的组均值可能共面,但是不共线。

d=manova1(X,group,alpha)

指定检验的显著性水平。返回的d是满足p>alpha的最小维数,其中p是检验的p值,此时检验各组的均值向量是否位于一个d维空间。

[d,p]=manova1(……)

还返回检验的p值向量,它的第i个元素对应的原假设是:各组的均值向量位于一个i-1维空间,若p的第i个元素小于或等于给定的显著性水平,则拒绝这样的原假设。

[d,p,stats]=manova1(……)

还返回一个结构体变量stats。

(2)例:

为了研究销售方式对商品的销售额的影响,选择四种商品(甲,乙,丙和丁)按三种不同的销售方式(1,2,和3)进行销售。这四种商品的销售额分别记为x1,x2,x3,x4,其数据如下表

基于matlab的方差分析_方差分析结果怎么看基于matlab的方差分析_方差分析结果怎么看

根据这些数据分析不同销售方式对销售额是否有显著影响,显著性水平为0.05.

下面调用manova1函数作单因素多元方差分析。

%从文件销售.xls中读取数据 xdata=xlsread(‘销售.xls’);

%提取xdata的第2-5列和第8-11列,即四种商品的销售额数据 x=[xdata(:,2:5);xdata(:,8:11)];

%提取xdata的列6列和第12列,即销售方式数据 group=[xdata(:,6);xdata(:,12)];

%调用manova1函数作多元方差分析 [d,p,stats]=manova1(x,group)

d =

1

p =

0.0040 0.0917

stats =

W: [4×4 double] B: [4×4 double] T: [4×4 double] dfW: 57 dfB: 2 dfT: 59 lambda: [2×1 double] chisq: [2×1 double] chisqdf: [2×1 double] eigenval: [4×1 double] eigenvec: [4×4 double] canon: [60×4 double] mdist: [60×1 double] gmdist: [3×3 double] gnames: {3×1 cell}

从manova1函数返回的结果来看,p值分别为0.0040.05,说明在显著性水平0.05下拒绝假设:3种销售方式所对应的销量的均值向量都相同,接受假设:3种销售方式多对应的销售量的均值向量位于一个1维空间(即共线),因此维数的估计值为d=1。总的来说,在显著性水平0.05下,可认为不同销售方式对销售额有显著影响,但是究竟对四种商品中的哪种商品的销售额影响最显著,还需要对四种商品的销售额分别做一元方差分析。

%调用anova1函数对甲商品的销售额作一元方差分析 [p1,table]=anova1(x(:,1),group)

%调用anova1函数对乙商品的销售额作一元方差分析 [p2,table2]=anova1(x(:,2),group)

%调用anova1函数对丙商品的销售额作一元方差分析 [p3,table3]=anova1(x(:,3),group)

%调用anova1函数对丁商品的销售额作一元方差分析 [p4,table4]=anova1(x(:,4),group)

p1 =

0.0411

table =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘F’ ‘Prob>F’ ‘Groups’ [5.2213e+03] [ 2] [2.6106e+03] [3.3766] [0.0411] ‘Error’ [4.4070e+04] [57] [ 773.1500] [] [] ‘Total’ [4.9291e+04] [59] [] [] []

p2 =

0.2078

table2 =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘F’ ‘Prob>F’ ‘Groups’ [ 518.5333] [ 2] [259.2667] [1.6154] [0.2078] ‘Error’ [9.1481e+03] [57] [160.4921] [] [] ‘Total’ [9.6666e+03] [59] [] [] []

p3 =

0.8478

table3 =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘F’ ‘Prob>F’ ‘Groups’ [2.4808e+03] [ 2] [1.2404e+03] [0.1656] [0.8478] ‘Error’ [4.2703e+05] [57] [7.4917e+03] [] [] ‘Total’ [4.2951e+05] [59] [] [] []

p4 =

8.6070e-04

table4 =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘F’ ‘Prob>F’ ‘Groups’ [3.8529e+04] [ 2] [1.9265e+04] [8.0085] [8.6070e-04] ‘Error’ [1.3712e+05] [57] [2.4055e+03] [] [] ‘Total’ [1.7564e+05] [59] [] [] []

对四种商品的销售额分别做了一元方差分析,得到的检验p值分别为:p10.05,p3>0.05,p4Chi-sq’ ‘Groups’ [564.7908] [ 3] [188.2636] [9.7043] [ 0.0213] ‘Error’ [890.2092] [22] [ 40.4641] [] [] ‘Total’ [ 1455] [25] [] [] []

stats1 =

gnames: {4×1 cell} n: [7 5 8 6] source: ‘kruskalwallis’ meanranks: [20.1429 15.3000 10.5625 8.1667] sumt: 90

p2 =

0.0092

table2 =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘F’ ‘Prob>F’ ‘Groups’ [5.2951e+04] [ 3] [1.7650e+04] [4.9150] [0.0092] ‘Error’ [7.9003e+04] [22] [3.5911e+03] [] [] ‘Total’ [1.3195e+05] [25] [] [] []

kruskalwallis函数返回的检验值p=0.0213F’ ‘Groups’ [2.9119e+05] [ 3] [9.7064e+04] [1.8156] [0.1738] ‘Error’ [1.1761e+06] [22] [5.3461e+04] [] [] ‘Total’ [1.4673e+06] [25] [] [] []

Kruskal-Wallis检验是基于秩的非参数检验,上面将样本观测数据中的最大值进一步增大,并没有改变样本的秩,所以两次调用kruskalwallis函数得到的结果是完全相同的,这说明Kruskal-Wallis检验不受个别异常值的影响。而改变一个数据后调用anova1函数得到的结果与改变前是相反的,这反映了参数检验的局限性,当样本数据不满足参数方差分析的基本假定时,最好用非参数方差比较检验。

(3)多重比较

由于Kruskal-Wallis非参数检验认为灯丝是不同配料方案对灯泡寿命有显著影响,下面通过多重比较来检验在哪种配料方案下灯泡寿命的差异是显著的。

%调用multcompare函数对不同配料方案下灯泡的寿命进行多重比较 [c,m,h,gnames]=multcompare(stats1); [gnames,num2cell(m)] %把矩阵m转换为元胞数组,与gnames放在一起显示

c =

1.0000 2.0000 -6.6331 4.8429 16.3188 0.6993 1.0000 3.0000 -0.5630 9.5804 19.7237 0.0722 1.0000 4.0000 1.0724 11.9762 22.8800 0.0247 2.0000 3.0000 -6.4356 4.7375 15.9106 0.6961 2.0000 4.0000 -4.7344 7.1333 19.0010 0.4110 3.0000 4.0000 -8.1888 2.3958 12.9804 0.9377

ans =

‘A1’ [20.1429] [2.8835] ‘A2’ [15.3000] [3.4117] ‘A3’ [10.5625] [2.6972] ‘A4’ [ 8.1667] [3.1145]

从上面结果中可以看出,在显著性水平0.05下,灯丝的第1、4两种配料方案所对应的灯泡寿命的差异是显著的,其余配料方案所对应的灯泡寿命的差异是不显著的,并且第1种方案的平均秩最大,即灯丝的第一种配料方案所对应的灯泡的寿命最长。

二:非参数Frideman检验

(1)Frideman检验的MATLAB实现

MATLAB统计工具箱中提供了friedman函数,用来做非参数Friedman检验(双因素只方差分析)。调用格式:

p=friedman(X,regs)

根据样本观测值矩阵X进行均衡实验的非参数Fiedman检验。X的每一列对应参数A的一个水平,每行对应因素B的一个水平。reps表示因素A和B的每一个水平组合下重复的实验次数,默认值为1。

friedman函数检验矩阵X的各列是否来自于相同的总体,即检验因素A的各水平之间无显著差异,他对分组因素B不感兴趣。Frideman函数返回检验的p值,当检验的p值小于或等于给定的显著性水平时,应拒绝原假设,原假设认为X总体来自于相同的总体。

frideman函数还生成1个图像,用来显示一个方差分析表。

p=friedman(X,reps,displayopt)

通过参数displayopt参数设定是否显示带有标准双因素一元方差分析的图形窗口,当displayopt参数设定为‘on’时(默认情况),显示方差分析表;当displayopt参数设定为‘off’时,不显示方差分析表。

[p,table]=friedman(……)

还返回元胞数组形式的方差分析表table。

[p,table,stats]=friedman(……)

还返回一个结构体变量stats,用于进行后续的多重比较。当friedman函数给出的结果拒绝了原假设,则在后续的分析中,可以调用multcompare函数,把stats作为它的输入,进行多重比较。

(2)例:设有来自A、B、C、D四个地区的四名厨师制作名菜:水煮鱼,想比较他们的品质是否相同。四位美食评论对四名厨师的菜品分布做出了评分,如下表:

美食评委

地区

A

B

C

D

1

85

82

82

79

2

87

75

86

82

3

90

81

80

76

4

80

75

81

75

根据表中的数据检验四个地区制作的水煮鱼这道菜的品质有无差别,去显著性水平为0.05

调用frideman函数作非参数Frideman检验,检验的原假设:四个地区的水煮鱼这道菜的品质没有区别。

%定义样本观测值矩阵x x=[85 82 82 79 87 75 86 82 90 81 80 76 80 75 81 75]; %调用friedman函数作Frideman检验,返回检验的p值,方差分析表table和结构体变量stats [p,table,stats]=friedman(x)

p =

0.0434

table =

‘Source’ ‘SS’ ‘df’ ‘MS’ ‘Chi-sq’ ‘Prob>Chi-sq’ ‘Columns’ [12.8750] [ 3] [4.2917] [8.1316] [ 0.0434] ‘Error’ [ 6.1250] [ 9] [0.6806] [] [] ‘Total’ [ 19] [15] [] [] []

stats =

source: ‘friedman’ n: 4 meanranks: [3.7500 2 2.8750 1.3750] sigma: 1.2583

返回的检验p值p=0.0434



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有