如何在R中运行Dunnett C事后检验?

时间:2013-09-17 16:28:53

标签: r statistics posthoc

我使用我的数据集(不相等的样本大小,不等方差)在r中运行双向anova:在3个物种中测量1个变量(每个物种中有雄性和雌性)。 这在物种之间产生了显着的结果,所以我想知道哪些成对比较产生了重要性。我知道在R中包含用于执行事后测试的函数: e.g。

Dunnett来自http://www.uwlax.edu/faculty/toribio/math305_fall09/multiple.txt的事后测试。 需要的包:“multcomp”,“mvtnorm”,“survival”,“splines”

library(multcomp)           
test.dunnett=glht(anova_results,linfct=mcp(method="Dunnett"))
confint(test.dunnett)
plot(test.dunnett)

*注意:glht在“multcomp”中描述

但Dunett的测试旨在将所有组与控件进行比较。相反,我想比较所有群体,Dunnett C. 有谁知道一个执行Dunnett C的包或知道如何编码它? (等式:http://pic.dhe.ibm.com/infocenter/spssstat/v21r0m0/index.jsp?topic=%2Fcom.ibm.spss.statistics.help%2Falg_posthoc_unequalvar.htm

1 个答案:

答案 0 :(得分:2)

(因此method项在其他地方定义,并且不应该像我假设的那样是参数的名称。)在uwlax.edu网站链接的代码中有三个多重比较的例子。第二个给出了你想要的东西,即一对全对比较。它不是“Dunnett的C”,但我的经验是R的作者通常会提供最强大的测试,并且使用out-moded测试不太方便。 SPSS网站上关于Dunnett C代码的引用已有40年历史。 ghlt和TukeyHSD函数的引用更新近,作者受到高度尊重。我认为没有令人信服的理由使用Dunnett的C而是使用TukeyHSD选项来实现你的目标:

 method1=c(96,79,91,85,83,91,82,87)
 method2=c(77,76,74,73,78,71,80)
 method3=c(66,73,69,66,77,73,71,70,74)

 score=c(method1,method2,method3)
 method=c(rep(1,length(method1)),
          rep(2,length(method2)),
          rep(3,length(method3)))
 method=factor(method)
 anova_results=aov(score~method)        
 anova_results
#------------
Call:
   aov(formula = score ~ method)

Terms:
                   method Residuals
Sum of Squares  1090.6190  387.2143
Deg. of Freedom         2        21

Residual standard error: 4.29404
Estimated effects may be unbalanced
#----------
summary(anova_results)
#------------------
            Df Sum Sq Mean Sq F value   Pr(>F)    
method       2 1090.6   545.3   29.57 7.81e-07 ***
Residuals   21  387.2    18.4                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 TukeyHSD(anova_results)
#--------------
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = score ~ method)

$method
          diff       lwr         upr     p adj
2-1 -11.178571 -16.78023  -5.5769151 0.0001590
3-1 -15.750000 -21.00924 -10.4907592 0.0000006
3-2  -4.571429 -10.02592   0.8830666 0.1113951

 TukeyHSD(anova_results, ordered=T)
#---------------    
  Tukey multiple comparisons of means
    95% family-wise confidence level
    factor levels have been ordered

Fit: aov(formula = score ~ method)

$method
         diff        lwr      upr     p adj
2-3  4.571429 -0.8830666 10.02592 0.1113951
1-3 15.750000 10.4907592 21.00924 0.0000006
1-2 11.178571  5.5769151 16.78023 0.0001590