R ezANOVA的事后比较

时间:2017-09-04 08:19:52

标签: r anova

我执行以下ezANOVA:

RMANOVAGHB1 <- ezANOVA(GHB1, dv=DIF.SCORE.STARTLE, wid=RAT.ID, within=TRIAL.TYPE, between=GROUP, detailed = TRUE, return_aov = TRUE)

我的数据集如下所示:

RAT.ID DIF.SCORE.STARTLE GROUP TRIAL.TYPE
1       1            170.73   SAL       TONO
2       1             80.07   SAL       NOAL
3       2            456.40  PROP       TONO
4       2            290.40  PROP       NOAL
5       3            507.20   SAL       TONO
6       3            261.60   SAL       NOAL
7       4            208.67  PROP       TONO
8       4            137.60  PROP       NOAL
9       5            500.50   SAL       TONO
10      5            445.73   SAL       NOAL

直到rat.id 16。

我的主管不与R合作,所以他们无法帮助我。我需要能够给我所有事后对比的代码,但查找它只会让我越来越困惑。 我已经尝试在ezANOVA的aov输出上做TukeyHSD,然后尝试了pairwise.t.test(因为我发现bonferroni在这种情况下是更合适的修正),但似乎都没有效果。我还发现了使用线性模型然后使用multcomp的事情,但我不知道在这种情况下这是否是一个很好的解决方案。我觉得我尝试的所有事情的问题是我在变量之间和变量之内,或者我的数据集设置不正确。另一个复杂的因素是我只是R的初学者,我的统计知识仍然非常基础,因为这是我进行分析的第一个实践经验之一。

如果重要的是,这是anova的输出:

$ANOVA
            Effect DFn DFd       SSn       SSd         F           p p<.05         ges
1      (Intercept)   1  14 1233568.9 1076460.9 16.043280 0.001302172     * 0.508451750
2            GROUP   1  14  212967.9 1076460.9  2.769771 0.118272657       0.151521743
3       TRIAL.TYPE   1  14  137480.6  116097.9 16.578499 0.001143728     * 0.103365833
4 GROUP:TRIAL.TYPE   1  14   11007.2  116097.9  1.327335 0.268574391       0.009145489

$aov

Call:
aov(formula = formula(aov_formula), data = data)

Grand Mean: 196.3391

Stratum 1: RAT.ID

Terms:
                    GROUP Residuals
Sum of Squares   212967.9 1076460.9
Deg. of Freedom         1        14

Residual standard error: 277.2906
1 out of 2 effects not estimable
Estimated effects are balanced

Stratum 2: RAT.ID:TRIAL.TYPE

Terms:
                TRIAL.TYPE GROUP:TRIAL.TYPE Residuals
Sum of Squares    137480.6          11007.2  116097.9
Deg. of Freedom          1                1        14

Residual standard error: 91.0643
Estimated effects may be unbalanced

1 个答案:

答案 0 :(得分:2)

我的解决方案,考虑到你的数据集 - 前5只大鼠:

<强> 1。让我们构建线性模型:

model.lm = lm(DIF_SCORE_STARTLE ~ GROUP * TRIAL_TYPE, data = dat)

<强> 2。让我们看看方差的同质性(leveneTest)和我们模型的分布(Shapiro-Wilk)。我们正在寻找正态分布,我们的方差应该是同质的。两个测试:

>shapiro.test(resid(model.lm))

    Shapiro-Wilk normality test

data:  resid(model.lm)
W = 0.91783, p-value = 0.3392

> leveneTest(DIF_SCORE_STARTLE ~ GROUP * TRIAL_TYPE, data = dat)
Levene's Test for Homogeneity of Variance (center = median)
      Df F value Pr(>F)
group  3   0.066  0.976
       6 

在这两种情况下,我们的p值都高于0.05,因此我们没有证据表明我们的方差在组间不同。在正态性测试的情况下,我们还可以得出结论,样本没有偏离正态性。总结我们可以使用ANOVA或成对t检验等参数测试。

3.Yo也可以运行:

hist(resid(model.lm))

检查我们的数据分布情况。并检查模型:

plot(model.lm)

在这里:https://stats.stackexchange.com/questions/58141/interpreting-plot-lm/65864你会发现这个函数产生的图解释。正如我所见,数据看起来很好。

4.现在我们终于可以进行ANOVA测试和事后HSD测试了:

> anova(model.lm)
Analysis of Variance Table

Response: DIF_SCORE_STARTLE
                 Df Sum Sq Mean Sq F value Pr(>F)
GROUP             1   7095    7095  0.2323 0.6469
TRIAL_TYPE        1  39451   39451  1.2920 0.2990
GROUP:TRIAL_TYPE  1     84      84  0.0027 0.9600
Residuals         6 183215   30536
> (result.hsd = HSD.test(model.lm, list('GROUP', 'TRIAL_TYPE')))
$statistics
    Mean       CV  MSerror      HSD r.harmonic
  305.89 57.12684 30535.91 552.2118        2.4

$parameters
  Df ntr StudentizedRange alpha  test           name.t
   6   4         4.895599  0.05 Tukey GROUP:TRIAL_TYPE

$means
          DIF_SCORE_STARTLE      std r    Min    Max
PROP:NOAL          214.0000 108.0459 2 137.60 290.40
PROP:TONO          332.5350 175.1716 2 208.67 456.40
SAL:NOAL           262.4667 182.8315 3  80.07 445.73
SAL:TONO           392.8100 192.3561 3 170.73 507.20

$comparison
NULL

$groups
        trt    means M
1 SAL:TONO  392.8100 a
2 PROP:TONO 332.5350 a
3 SAL:NOAL  262.4667 a
4 PROP:NOAL 214.0000 a

如您所见,我们的'对'已分组在一个大组 a 中,这意味着它们之间没有显着差异。然而,无论是SAL还是PROP,NOAL和TONO之间都存在一些差异。