Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中调整多重比较的p值_Matlab_Statistics - Fatal编程技术网

在Matlab中调整多重比较的p值

在Matlab中调整多重比较的p值,matlab,statistics,Matlab,Statistics,我有一个p值的单元格数组,需要进行多次比较。如何在Matlab中实现这一点?我找不到内置函数 在R中,我会: data.pValue_adjusted = p.adjust(data.pValue, method='bonferroni') Matlab有类似的函数吗?理想情况下,执行不同调整方法的方法(Bonferroni、Benjamini Hochberg、FDR…)查看Matlab文件交换中的文件和相关文件 我希望这有帮助 可能是您正在寻找的,但它只实现了Bonferroni Holm

我有一个p值的单元格数组,需要进行多次比较。如何在Matlab中实现这一点?我找不到内置函数

在R中,我会:

data.pValue_adjusted = p.adjust(data.pValue, method='bonferroni')
Matlab有类似的函数吗?理想情况下,执行不同调整方法的方法(Bonferroni、Benjamini Hochberg、FDR…)

查看Matlab文件交换中的文件和相关文件

我希望这有帮助

可能是您正在寻找的,但它只实现了Bonferroni Holm方法。 您必须在FEX中搜索与其他校正方法类似的解决方案

也就是说,统计工具箱中的方法是为多个比较测试而设计的,尽管它不会返回正确的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');

如果您有生物信息学工具箱,您可以使用函数计算由错误发现率调整的p值。

对于没有生物信息学工具箱的人,FDR(错误发现率)方法也有很好的描述,它还提供了一个与FDR脚本的链接。

另请参见和
作为背景。

R的
p.adjust
函数的MATLAB/Octave实现可用。它可以使用以下方法对多重比较进行p值调整,相当于它们的R对应方法:

  • 霍姆
  • 霍希伯格
  • 霍梅尔
  • 邦费罗尼
  • 波黑
  • 罗斯福
  • Sidak(此选项在R函数中不可用)

免责声明:我是这个软件包的作者。

我认为Bonferroni Holm已经足够好了。无论如何,我不明白细节;)快速阅读文档表明,multompare仅适用于anova类测量(似乎使用t检验临界值-参见bonferroni的描述-而不是调整p值)。bonferroni*(FWER/家庭错误率)和Benjamini*(FDR/错误发现率)之间存在重要差异。非常粗略地说,FWER中的显著性(aka alpha)是测试错误地拒绝无效假设的概率,即使是一次。在FDR中,意义是不正确的拒绝(发现)的比例。所以,如果40分在95%的水平上是显著的,那么在FWER下,这意味着有20分之一的几率1场比赛是错误的。而对于罗斯福来说,这意味着1/20是错误的,所以平均2个是错误的。@Eponymous:谢谢你的解释。我认为关于
multcompare
,您是对的,因为它的输入是
stats
结构,它只包含t值而不包含p值。。。如下文所示,解决方案是使用
TTET2
计算多个测试的原始p值,然后从生物信息学工具箱调用
mafdr
,根据Benjamini&Hochberg(FDR)方法获得调整后的p值。我可能应该提到,我不是一名统计学家,这不是我的专业领域:)对于那些无法使用生物信息学工具箱的人来说,Benjamini&Hochberg和Benjamini&Yekutieli在。虽然不是一个替代品,但它可以代替MAFDR。@Eponymous值得注意的是,官方的
MAFDR
实现默认使用Storey(2002)方法,该方法通常比原始的Benjamini Hochberg版本更强大。文档。虽然链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。该链接中的有用说明功能强大!谢谢分享