一:Friedman檢驗
? ? ? ?Friedman函數(shù)(非參數(shù)檢驗)檢驗矩陣X的各列是否來自于相同的總體,即檢驗因素A的各水平之間無顯著差異,他對分組因素B不感興趣。Frideman函數(shù)返回檢驗的p值,當(dāng)檢驗的p值小于或等于給定的顯著性水平時,應(yīng)拒絕原假設(shè),原假設(shè)認(rèn)為X總體來自于相同的總體。
二:Matlab--?Friedman檢驗代碼
以一個小例子直觀表示friedman檢驗代碼應(yīng)用過程:
例:設(shè)有來自A,B,C, D 四個地區(qū)的四位名廚制作名菜京城水煮魚?,為了比較它們的品質(zhì)是否相同,經(jīng)四位美食評委評分結(jié)果如下所示,現(xiàn)利用Friedman檢驗四位名廚制作的京城水煮魚這道菜品質(zhì)有無區(qū)別。
A | B | C | D | ||
評委1 | 85 | 82 | 82 | 79 | |
評委2 | 87 | 75 | 86 | 82 | |
評委3 | 90 | 81 | 80 | 76 | |
評委4 | 80 | 75 | 81 | 75 |
假設(shè)檢驗問題為:? ? ? ? ? ? ? ? ? ??:四個地區(qū)的京城水煮魚品質(zhì)相同,
? ? ?:四個地區(qū)的京城水煮魚品質(zhì)不同。
<1>
X=[85,82,82,79;
87,75,86,82;
91,81,80,76;
80,75,81,75]
p=friedman(x,regs)
?X為待檢驗矩陣,我們的目標(biāo)是四個地方水煮魚的品質(zhì)是否相同。那么同一個評委對四個地區(qū)廚師的打分就具有可參考性,而不同地區(qū)評委之間對同一個廚師的打分參考性幾乎沒有。因此,我們認(rèn)為四個地區(qū)是因素A,而評委是因素B(區(qū)組因素)。
輸出結(jié)果如下:
p =
? ? 0.0434
p<0.05, 說明在顯著性水平0.05下拒絕原假設(shè),則認(rèn)為這四個地區(qū)的有顯著性差距。
注:regs為重復(fù)實驗的次數(shù)(行數(shù)必須為重復(fù)次數(shù)的倍數(shù),否則matlab會報錯);
<2>
若想進一步考慮四個地區(qū)中哪兩個地區(qū)具有顯著性差別,進一步可以進行如下的檢測:
[p,table,stats]=friedman(x)
%返回檢驗值p值、方差分析表table和結(jié)構(gòu)體變量stats
p =
? ? 0.0434
table =
? 4×6 cell 數(shù)組
? ? '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 =?
? 包含以下字段的 struct:
? ? ? ?source: 'friedman'
? ? ? ? ? ? n: 4
? ? meanranks: [3.7500 2 2.8750 1.3750]
? ? ? ? sigma: 1.2583
?
%調(diào)用multcompare函數(shù)進行多重比較
[c,m]=multcompare(stats);
c %查看多重比較的結(jié)果矩陣c
[{'A';'B';'C';'D'},num2cell(m)] %把m矩陣轉(zhuǎn)換為元胞數(shù)組,與組名放在一起顯示
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 數(shù)組
? ? 'A' ? ?[3.7500] ? ?[0.6292]
? ? 'B'? ? ?[ ? ? 2]? ? ? ? [0.6292]
? ? 'C' ? ?[2.8750] ? ?[0.6292]
? ? 'D' ? ?[1.3750] ? ?[0.6292]
從以上結(jié)果可以看出,c矩陣的第3行的第3列和第5列構(gòu)成的區(qū)間不包括0,說明在顯著性水平0.05下,可認(rèn)為A,D兩個地區(qū)制作的水煮魚這道菜的品質(zhì)之間的差異是顯著的。進一步可以通過MATLAB生成的Friedman 檢驗圖直觀的看出:
如上圖所示,橫軸是平均序值,縱軸是每個算法、對于每一個算法,用一個圓點顯示其平均序值,以圓點為中心的橫線段表示臨界值域的大小。觀察圖,若兩個算法的橫線段有交疊,說明兩個算法沒有顯著的差別。由圖可以看出,A與D有明顯差距。
三:Friedman檢驗用于檢驗算法文章來源:http://www.zghlxwxcb.cn/news/detail-436850.html
? ? ? ?Friedman檢驗可以用于檢驗?zāi)骋恢笜?biāo)下,對多個算法在多個數(shù)據(jù)集的性能進行比較。文章來源地址http://www.zghlxwxcb.cn/news/detail-436850.html
到了這里,關(guān)于Friedman 檢驗--Matlab的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!