'Calculate partial eta-squared with type 3 sum of square in r

I have ran a 2 X 2 X 2 mixed ANOVA using ezANOVA and type 3 sum of squared in r.

The code looks like

ezANOVA(data = D, between = condition, within = c(Notation,Operation), dv = Acc, wid = ID,type=3)

The output does not include the sum of square and the effect size was the generalized eta-squared. I am not sure how to calculate the partial eta-squared with type 3 sum of square in r.

I have tried to use the aov() function and eta_squared() function from package effectsize, but the aov() function uses type 1 sum of square and so the effect size is different from the type 3 sum of square effect size.

Thus, I am wondering if there is any way to calculate the partial eta squared for a 3-way mixed ANOVA using type 3 sum of square in R.

Thank you in advance for your help



Solution 1:[1]

Short of manually calculating partial eta squared, I wasn't able to find a function that worked with ezANOVA. I want to point out that the column labeled ges is the generalized eta squared (not partial, though).

However, I do have a method that will work for using SS 3 from the package jmv, along with both within and between ANOVA, while providing partial eta squared. It's a bit more of a mouthful to put together the function, as well. I added tons of options that you don't have outlined in your function in the question. I did this because this package's help isn't all that helpful. You definitely don't need to use all of these parameters, but at least you'll know what the package is expecting if you do use these options.

Your question isn't reproducible. I started by creating some arbitrary data to work with.

library(jmv)

# some fake data to work with
set.seed(253)
df1 <- data.frame(x = rnorm(200, 50, 3),
                  y = rnorm(200, 25, 5),
                  z = rnorm(200, 1.5, .1),
                  direc = as.factor(rep(c("left","right"), times = 100)))

Next the repeated measures + between ANOVA:

fit = anovaRM(data = df1, 
              ss = "3",                       # type of SS (1, 2, or 3)
              bs = list("direc"),             # between subjects
              bsTerms = list("direc"),        # between subjects 
              rm = list(list(label = "tests", # within subjects
                             levels = c("pretest","mid","posttest"))), 
                                   # can use levels(data$factor) if easier
                                   # does not have to be a real variable**
              rmCells = list(list(measure = "x",      # continuous value
                                  cell = "pretest"),  # group label
                             list(measure = "y",      # continuous value
                                  cell = "mid"),      # group label
                             list(measure = "z",      # continuous value
                                  cell = "posttest")), # group
              rmTerms = list("tests"),                # grouping variable/within measures
              emMeans = list(list("tests","direc")),  # all grouping vars (em tables)
              emmPlots = T,                  # show emm plot
              emmTables = T,                 # show emm tables
              effectSize = "partEta",        # use partial eta (multi options, see help)
              spherTests = T,                # use Mauchley test
              spherCorr = "GG",              # Greenhouse (multi options`, see help)
              leveneTest = T,                # check homogeneity (p > .05 = good**)
              qq = T,                        # plot normality validation qq plot
              postHocCorr = "tukey")         # use TukeyHSD

This is the type of output you'll see when you call fit (or whatever you name your ANOVA object).

# 
#  REPEATED MEASURES ANOVA
# 
#  Within Subjects Effects                                                                                                            
#  ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 
#                   Sphericity Correction    Sum of Squares    df            Mean Square     F              p             ?²-p        
#  ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 
#    tests          Greenhouse-Geisser          235493.0127      1.399431    168277.62891    9808.561967    < .0000001    0.9802130   
#    tests:direc    Greenhouse-Geisser             105.1735      1.399431        75.15443       4.380599     0.0247609    0.0216454   
#    Residual       Greenhouse-Geisser            4753.7668    277.087435        17.15620                                             
#  ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 
#    Note. Type 3 Sums of Squares
# 
# 
#  Between Subjects Effects                                                                   
#  ?????????????????????????????????????????????????????????????????????????????????????????? 
#                Sum of Squares    df     Mean Square    F           p            ?²-p        
#  ?????????????????????????????????????????????????????????????????????????????????????????? 
#    direc             22.01519      1       22.01519    1.954001    0.1637204    0.0097723   
#    Residual        2230.81167    198       11.26673                                         
#  ?????????????????????????????????????????????????????????????????????????????????????????? 
#    Note. Type 3 Sums of Squares
# 
# 
#  ASSUMPTIONS
# 
#  Tests of Sphericity                                                             
#  ??????????????????????????????????????????????????????????????????????????????? 
#             Mauchly's W    p             Greenhouse-Geisser ?    Huynh-Feldt ?   
#  ??????????????????????????????????????????????????????????????????????????????? 
#    tests      0.5708482    < .0000001               0.6997157        0.7031690   
#  ??????????????????????????????????????????????????????????????????????????????? 
# 
# 
#  Homogeneity of Variances Test (Levene's)        
#  ??????????????????????????????????????????????? 
#         F              df1    df2    p           
#  ??????????????????????????????????????????????? 
#    x    1.653217e-4      1    198    0.9897542   
#    y     0.42682247      1    198    0.5143102   
#    z     0.01824029      1    198    0.8927043   
#  ??????????????????????????????????????????????? 
# 
# 
#  ESTIMATED MARGINAL MEANS
# 
#  TESTS:DIREC
# 
#  Estimated Marginal Means - tests:direc                                      
#  ??????????????????????????????????????????????????????????????????????????? 
#    direc    tests       Mean         SE             Lower        Upper       
#  ??????????????????????????????????????????????????????????????????????????? 
#    left     pretest     50.224630    0.307314811    49.618600    50.830660   
#             mid         24.048471    0.508157857    23.046375    25.050567   
#             posttest     1.499185    0.009470430     1.480509     1.517860   
#    right    pretest     49.818121    0.307314811    49.212091    50.424151   
#             mid         25.590657    0.508157857    24.588561    26.592753   
#             posttest     1.512816    0.009470430     1.494140     1.531492   
#  ??????????????????????????????????????????????????????????????????????????? 
#  

These are the two plots you'll see (or a variation of these: qq and emm).

qq emm

This is really an amazing package, but it isn't very self-explanatory. If you have any questions, leave a comment.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Kat