我有一個p值的單元數組,必須針對多重比較進行調整。我怎麼能在Matlab中做到這一點?我找不到內置函數。在Matlab中調整多個比較的p值
在R I會做:
data.pValue_adjusted = p.adjust(data.pValue, method='bonferroni')
是否有Matlab的一個類似的功能?理想情況下,執行不同調整方法的人(Bonferroni,Benjamini-Hochberg,FDR ...)?
我有一個p值的單元數組,必須針對多重比較進行調整。我怎麼能在Matlab中做到這一點?我找不到內置函數。在Matlab中調整多個比較的p值
在R I會做:
data.pValue_adjusted = p.adjust(data.pValue, method='bonferroni')
是否有Matlab的一個類似的功能?理想情況下,執行不同調整方法的人(Bonferroni,Benjamini-Hochberg,FDR ...)?
This submission可能是你在找什麼,但它只實現了Bonferroni-Holm方法。 你將不得不搜索FEX爲其他校正方法類似的解決方案..
認爲統計工具箱有MULTCOMPARE方法,是專爲多重比較檢驗,但它不返回校正p值。這裏有一個例子:
load fisheriris
[pVal tbl stats] = kruskalwallis(meas(:,1), species) %# Kruskal-Wallis or ANOVA
title('Sepal Length'), xlabel('Groups'), ylabel('Value')
[c,m] = multcompare(stats, 'ctype','bonferroni', 'display','on');
如果你有生物信息工具箱,你可以使用MAFDR函數來計算錯誤發現率調整的p值。
好主意,謝謝! –
對於那些無法訪問生物信息學工具箱的人來說,Benjamini&Hochberg和Benjamini&Yekutieli的實現在[matlab central](http://www.mathworks.com/matlabcentral/fileexchange/27418-benjamini-hochbergyekutieli-procedure-用於控制假髮現率)。雖然不是替代品,但它可以用來代替MAFDR。 – Eponymous
@同名值得注意的是,默認的官方mafdr實現使用了Storey(2002)的方法,該方法通常比原始的Benjamini-Hochberg版本更強大。文檔[這裏](http://www.mathworks.com/help/bioinfo/ref/mafdr.html)。 – Matt
另請參見http://uk.mathworks.com/matlabcentral/fileexchange/28303-bonferroni-holm-correction-for-multiple-comparisons和 https://en.wikipedia.org/wiki/Holm%E2%80%93Bonferroni_method爲背景。
雖然鏈接可能回答問題,但最好在此處包含答案的基本部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – ZygD
我認爲Bonferroni-Holm已經足夠了。我不明白細節;) –
快速閱讀文檔表明,multompare僅適用於類似於anova的測量(它似乎使用t檢驗臨界值 - 請參閱bonferroni的描述 - 而不是調整p值) – Eponymous
Bonferroni *(FWER /家族智慧錯誤率)與Benjamini *(FDR /錯誤發現率)之間存在重要差異。非常非常粗略地說,FWER中的重要性(又名α)是即使一次測試錯誤地拒絕零假設的概率。在FDR中,意義在於拒絕(發現)的比例不正確。所以,如果40%在95%的水平上顯着,那麼在FWER下,這意味着有1比20的機會出現1場比賽是錯誤的。而對於FDR,這意味着1/20是錯誤的 - 所以平均有2個是錯誤的。 – Eponymous