目录
一、Frideman检验简介
二、matlab函数
三、实例
一、Frideman检验简介
Friedman检验又被称之为双因素秩方差分析,是非参数版的anova2。同anova2一样,待检验的数据也必须是均衡的。但是需要特别注意的是,Friedman检验和anova2检验不完全相同,anova2同时注意两个因素对待检验数据的影响,但是,Friedman检验只注重2个因素中的其中一个对待检验数据的影响,而另一个因素则是用来区分区组用的。
如上图所示矩阵X,Friedman检验只关注X的各个列(因素A)水平之间有无显著差异,他对各行之间(因素B,也被称之为区组因素)完全不感兴趣。因此,Friedman检验的原假设是k个独立样本(X的各列)来自于相同的正态总体。至于为何Friedman检验对因素B不感兴趣,这里通过一个例子说明。该例子来源于《MATLAB统计分析与应用40个案例分析》
二、matlab函数
<1>p=friedman(X,regs)
根据样本观测值矩阵X进行均衡实验的非参数Fiedman检验。X的每一列对应参数A的一个水平,每行对应因素B的一个水平。reps表示因素A和B的每一个水平组合下重复的实验次数,默认值为1。
friedman函数检验矩阵X的各列是否来自于相同的总体,即检验因素A的各水平之间无显著差异,他对分组因素B不感兴趣。Frideman函数返回检验的p值,当检验的p值小于或等于给定的显著性水平时,应拒绝原假设,原假设认为X总体来自于相同的总体。
frideman函数还生成1个图像,用来显示一个方差分析表。
<2>p=friedman(X,reps,displayopt)
通过参数displayopt参数设定是否显示带有标准双因素一元方差分析的图形窗口,当displayopt参数设定为‘on’时(默认情况),显示方差分析表;当displayopt参数设定为‘off’时,不显示方差分析表。
<3>[p,table]=friedman(......)
还返回元胞数组形式的方差分析表table。
<4>[p,table,stats]=friedman(......)
还返回一个结构体变量stats,用于进行后续的多重比较。当friedman函数给出的结果拒绝了原假设,则在后续的分析中,可以调用multcompare函数,把stats作为它的输入,进行多重比较。
三、实例
有4名美食评委1234对来自于四个地区ABCD的名厨的名菜水煮鱼做出评价打分,数据如下:
地区 A B C D
美食评委
1 85 82 82 79
2 87 75 86 82
3 90 81 80 76
4 80 75 81 75
现在我们想知道,这四个地方的水煮鱼品质是否相同。
数据分析:我们的目标是四个地方水煮鱼的品质是否相同。那么同一个评委对四个地区厨师的打分就具有可参考性,而不同地区评委之间对同一个厨师的打分参考性几乎没有(受评委自己的主观意识影响太强)。因此,我们认为四个地区是因素A,而评委是因素B(区组因素),不同区组之间的数据没有可比较性。
clear all; close all; clc;
%定义样本观测值矩阵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
因此可以认为,四个地区制作水煮鱼的水平有显著性差别。至于是那两个之间有显著性差别还需要
多重比较
%调用multcompare函数对四个地区制作的水煮鱼这道菜的品质进行多重比较
[c,m]=multcompare(stats);
c %查看多重比较的结果矩阵c
[{'A';'B';'C';'D'},num2cell(m)] %把m矩阵转换为元胞数组,与组名放在一起显示
注意: 这些区间虽然可以用来检验,但不是联合置信区间。 c = 1.0000 2.0000 -0.5358 1.7500 4.0358 0.2006 1.0000 3.0000 -1.4108 0.8750 3.1608 0.7589 1.0000 4.0000 0.0892 2.3750 4.6608 0.0381 2.0000 3.0000 -3.1608 -0.8750 1.4108 0.7589 2.0000 4.0000 -1.6608 0.6250 2.9108 0.8962 3.0000 4.0000 -0.7858 1.5000 3.7858 0.3311 ans = 4×3 cell 数组 {'A'} {[3.7500]} {[0.6292]} {'B'} {[ 2]} {[0.6292]} {'C'} {[2.8750]} {[0.6292]} {'D'} {[1.3750]} {[0.6292]} |
从以上结果可以看出,c矩阵的第3行的第3列和第5列构成的区间不包括0,说明在显著性水平0.05下,可认为A,D两个地区制作的水煮鱼这道菜的品质之间的差异是显著的