PostHocTest with Bonferroni ajust in Three-way repeated measures ANOVA

60 Views Asked by At

I'm tring to do a PostHocTest in Three-way repeated measures ANOVA in R (blood pressure over time, considering the factors of gender and dose of medication).

there are three ways to make a rm Anova (aov , ezAnova , anova_test ) and everyone points out a problem with performing the PostHocTest from DescTools with Bonferroni ajust.

I tried to perform the RM Anova by ezAnova. This returned to me two Anovas Stratum 1 and Stratum 2:

mod.ANOVA <- ezANOVA(data = df,
                      dv = pressure,
                      wid = ID,
                      within = time ,
                      between = c(gender, dose),
                      detailed = TRUE,
                      type = 3,
                      return_aov = TRUE)

Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().

mod.ANOVA
$ANOVA
            Effect DFn DFd          SSn      SSd            F             p p<.05        ges
1      (Intercept)   1 194 1.325280e+07 14750.03 1.743077e+05 1.659270e-288     * 0.99734914
2            gender   1 194 5.107961e+02 14750.03 6.718255e+00  1.026919e-02     * 0.01429383
3             dose   3 194 1.151308e+03 14750.03 5.047534e+00  2.174034e-03     * 0.03165026
5            time      4 776 2.614887e+05 20474.61 2.477645e+03  0.000000e+00     * 0.88128394
4       gender:dose   3 194 2.019427e+03 14750.03 8.853515e+00  1.576903e-05     * 0.05422144
6      gender:time     4 776 4.569540e+02 20474.61 4.329708e+00  1.807101e-03     * 0.01280644
7       dose:time     12 776 1.072980e+03 20474.61 3.388883e+00  7.497300e-05     * 0.02956063
8 gender:dose:time    12 776 1.402831e+03 20474.61 4.430678e+00  6.851373e-07     * 0.03829997

$`Mauchly's Test for Sphericity`
            Effect         W            p p<.05
5            time    0.1188302 1.172062e-82     *
6      gender:time   0.1188302 1.172062e-82     *
7       dose:time    0.1188302 1.172062e-82     *
8 gender:dose:time   0.1188302 1.172062e-82     *

$`Sphericity Corrections`
            Effect       GGe         p[GG] p[GG]<.05       HFe         p[HF] p[HF]<.05
5            time    0.4863097 1.046961e-215         * 0.4911641 7.924890e-218         *
6      gender:time   0.4863097  1.461814e-02         * 0.4911641  1.432758e-02         *
7       dose:time    0.4863097  3.169289e-03         * 0.4911641  3.056549e-03         *
8 gender:dose:time   0.4863097  2.801128e-04         * 0.4911641  2.643791e-04         *

$aov

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

Grand Mean: 114.9769

Stratum 1: ID

Terms:
                    gender      dose gender:dose Residuals
Sum of Squares    480.441  1086.201   2019.427 14750.027
Deg. of Freedom         1         3          3       194

Residual standard error: 8.719579
Estimated effects may be unbalanced

Stratum 2: ID:time  

Terms:
                    time     gender:time     dose:time   gender:dose:time    Residuals
Sum of Squares  263149.03      433.82    1072.02          1402.83  20474.61
Deg. of Freedom         4           4         12               12       776

Residual standard error: 5.136614
Estimated effects may be unbalanced ```


#But the PostHocTest function did not work with any of the items in the created model.

library(DescTools)
PostHocTest(mod.ANOVA, method = "bonferroni")

Error in UseMethod("PostHocTest") : 
  método não aplicável para 'PostHocTest' aplicado a um objeto de classe "list"

PostHocTest(mod.ANOVA$aov$`ID:time`, method = "bonferroni")
Error in model.tables.aov(x, "means") : este ajuste não herda de "lm"


I think there is a problem with the composition of the model, however the aov structure also had the same problem.



aov.repeated <- aov(pressure ~ dose * gender * time + Error(ID/time), data=df)
aov.repeated

Call:
aov(formula = pressure ~ dose * gender * time + Error(ID/time), data = df)

Grand Mean: 114.9769

Stratum 1: ID

Terms:
                     dose     gender dose:gender Residuals
Sum of Squares   1117.592   449.050   2019.427 14750.027
Deg. of Freedom         3         1          3       194

Residual standard error: 8.719579
Estimated effects may be unbalanced

Stratum 2: ID:time

Terms:
                    time dose:time gender:time dose:gender:time Residuals
Sum of Squares  263149.03    1098.59      407.25          1402.83  20474.61
Deg. of Freedom         4         12           4               12       776

Residual standard error: 5.136614
Estimated effects may be unbalanced

summary(aov.repeated)

Error: ID
            Df Sum Sq Mean Sq F value   Pr(>F)    
dose         3   1118   372.5   4.900  0.00264 ** 
gender        1    449   449.0   5.906  0.01600 *  
dose:gender   3   2019   673.1   8.854 1.58e-05 ***
Residuals  194  14750    76.0                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: ID:time
                  Df Sum Sq Mean Sq  F value   Pr(>F)    
time              4 263149   65787 2493.377  < 2e-16 ***
dose:time        12   1099      92    3.470 5.25e-05 ***
gender:time        4    407     102    3.859  0.00411 ** 
dose:gender:time  12   1403     117    4.431 6.85e-07 ***
Residuals        776  20475      26                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


> PostHocTest(aov.repeated$`ID:time`, method = "bonferroni")
Error in model.tables.aov(x, "means") : este ajuste não herda de "lm"```
0

There are 0 best solutions below