关于ANOVA处理数据的事后比较

各位大牛请教一下,

我用rest做的ANOVA,做完以后想做一下事后检验,看看到底是哪些组间出现的变化,应该怎么做呢?

跪谢!

援引王金辉老师的一段解析,这可能是我们容易犯迷糊的地方,希望能帮到您:

I identified significant different regions among three groups (for example,saying three groups as  'A', 'B', and 'C') performing voxel-wise one-way ANOVA with using SPM8 software. So I want to do post-hoc pair-wise t-test between 'A' and 'B', between 'B'
and 'C', and between 'C' and 'A'.So I have some questions.
Q:我应用SPM8对A、B、C三组指标进行体素水平的单因素方差分析、并得到了显著差异的脑区。现在我想对ABC两两之间做事后检验,获得任意两组之间的差异。如下问题:
 
1) Should I perform these post-hoc t-test to whole brain? Or should I perform them to the only region which is identified as significantly different by the ANOVA analysis?关于这些两两之间的事后t检验,我应该做全脑范围的t检验吗?或者说分析仅局限在单因素方差分析出现显著差异的脑区?
 
RE:
If it is a true post hoc test it must be done using the regions identified as significant in the ANOVA. If you re-run the whole brain analysis it has no relationship to the ANOVA and thus is not a post-hoc test, but a new series of tests.
倘若真是事后t检验,那只能限定在上述单因素方差分析的差异团块范围内。如果又进行全脑范围的分析,那这个与之前的方差分析没有任何关系、因此也不是事后t检验,只是一系列新的比较。
 
There are a few possible approaches. Run the t-tests and mask with the significant ANOVA findings, or extract beta values for each person from the significant clusters from the F-test, and do group comparisons on those. The second option may be best, as you are now running 1 simple t-test for each comparison for each cluster. However, be aware of the difference, as this approach tests "overall in this cluster does group A differ from B". And this may have issues. For example in a large cluster if group A > B in some parts but B > A in others. It is not always fair to assume that all voxels in  a large cluster will show the same effect. So if you have large clusters, whole brain t-test masked with the F-stat may be best.
可以考虑的办法:在ANOVA显著团块的mask范围内进行t检验,或者从ANOVA分析的显著团块中提取每一个人的beta(平均)值(当然这里可以是任意进行统计分析的指标),然后直接进行组间简单的t检验。第二种选择可能更好(?),因为这时只需要进行逐团块的简单t检验。但是要非常清楚的是,第二种方式检验的是“这个团块指标总体(平均值?)是否存在,比如AB两组之间的差异?”。不过有时这可能也有问题,例如在一个很大的显著性团块中,团块中一部分参数存在A >B、但是另一部分存在B > A,这时直接简单的提取团块均值可能就有问题。这种情况下,可能进行团块mask内逐体素t检验更好一些。
 
Likewise I think you should avoid choosing a small ROI around the 'peak' of each cluster, as that is a somewhat biased result (running post-hoc tests only on regions showing the greatest effect, you have a circularity problem).
类似的,我觉得你应该避免选择每一个团块内峰值点及其周围的ROI区域,这一些区域的信号可能具有一些偏差(这些区域能显示最大的差异,可能犯了循环验证的错误?)。
 
 
2) When I perform these post-hoc t-test, should I adopt bonferroni corrected p-value? (say, 0.05/3 in this case).
做事后t检验的时候,我应该采取bonferroni校正的p值吗?(即,这里是0.05/3)
 
Yes, absolutely. Some form of correction (bonferroni or otherwise) is necessary. But keep in mind that bonferroni may be overly stringent. If, for example, your F-test gives 4 significant clusters, you are now running at least 12 post hoc comparisons (3 t-tests in each of the 4 clusters), and need a large correction. Consider FDR correction instead.是这样。校正是必要的(bonferroni校正或者其它)。但是要清楚的是,bonferroni校正过于严格。例如,您的F-检验得到4个显著团块,您可能需要运行12次事后检验,因此需要较多的校正。不过可以考虑FDR等校正。
 
3) If areas of the significant region with the post-hoc t-test is larger than those of the significant region with the ANOVA,
    how should I interpret those regions outside of the region identified by the ANOVA?如果事后检验得到的显著脑区大于方差分析的显著区域,我如何解释这些位于F检验显著区域之外的结果呢?
 
Shouldn't be an issue as you should not run whole brain t-tests here, see above. But, if you did it, it's easy to interpret: The ANOVA is one statistic, a whole brain t-test is a different statistic, and they will never perfectly overlap. They may be sensitive to different things. Which you prefer depends on how you want to answer your question, but if you are looking for 'overall differences between groups', then the ANOVA is a likely the more correct approach.只要不进行全脑水平的t检验,这种情况不应该出现,理由如上,见第一条。但是,如果您做了全脑的t检验,也好解释:t检验和方差分析是两种不同的参数检验方法,它们不可能完全重叠。它们可能对不同的情况敏感(注:如自由度、资料利用率、对实验设计的影响及犯假阳性的概率等)。就看您更想用什么方式来回答问题,但是如果您在探寻“组间总的差异“,那么方差分析应该是更正确的选择(理由如上)。

非常感谢您这么及时的回答,对我的帮助很大。

但看了王金辉老师的答疑,我还是有困惑的地方:

1.“可以考虑的办法:在ANOVA显著团块的mask范围内进行t检验,或者从ANOVA分析的显著团块中提取每一个人的beta(平均)值(当然这里可以是任意进行统计分析的指标),然后直接进行组间简单的t检验。第二种选择可能更好(?),因为这时只需要进行逐团块的简单t检验。”为何第二种方法更好?只是因为进行简单t检验要不那么麻烦一些吗?

2.关于原文中说“例如,您的F-检验得到4个显著团块,您可能需要运行12次事后检验,因此需要较多的校正。“这里我也没有看懂,我理解的是F检验得到多少个团块并不是决定事后检验的因素,难道不是看你有多少个分析的组,然后分别对每个团块的各个组间进行两两t检验吗?

3.关于事后检验:我把方差分析有差异的地方做成一个个mask,然后再t检验时用mask这样进行两两t检验是正确的吗?

4.在方差分析时,我想采用的alphasim 矫正,但在rest提供的那个表也适用于方差分析吗?同样,我在事后检验时,那个rest里的表也适合这种加了mask的情况吗?

万分感谢!