RcmdrPlugin.aRnova is a R Commander add-on for repeated-measures and
mixed-design (‘split-plot’) analysis of variance (ANOVA). In essence it
adds a new menu entry for repeated measures that allows to deal with up
to three within-subject factors and optionally with one or several
between-subject factors. Besides, it also provides supplementary options
and outputs to the existing One Way ANOVA
and
Multi Way ANOVA
entries, such as the choice of type of sum
of squares (II or III), the calculation of effect sizes, or multiway
ANOVA post-hoc analysis.
This tutorial (not finished yet…) aims to illustrate typical use of this plugin by replicating ANOVAs described in particular in John Fox’ R and S-plus Companion to Applied Regession (SAGE Publications Inc. 2002). While all steps are illustrated in the following, the user is expected to have minimal proficiency in using Rcmdr.
The aRnova plugin can be downloaded and installed using:
> install.packages("RcmdrPlugin.aRnova")
To load the package the fastest way is to use the following R command line which causes the package to load Rcmdr simultaneously with the aRnova plugin:
> library("RcmdrPlugin.aRnova")
Note that if aRnova has just been installed, restart a new R session
before launching this command (else the following error may occur:
Error : .onAttach failed in attachNamespace() for [....]
).
Alternatively, after loading Rcmdr without the aRnova plugin using:
> library("Rcmdr")
The aRnova package can then be loaded using the Tools
> Load Packages...
menu entry in Rcmdr. The user is then
asked to restart Rcmdr so that the Plug-in is available.
It can be verified that aRnova has been effectively loaded by
checking that the supplementary entry
Repeated measures ANOVA...
has been added in the
Statistics
> Means
Rcmr menu.
The multiway ANOVA is illustrated here using the data form Moore and
Krupat (1971) on conformity. The dataset can be found in the
car package (Moore.rda
) and in the present package
for convenience. The treatment below reproduces the treatmant of section
4.3 of John Fox R and S-plus Companion to Applied Regession
(SAGE Publications, 2002).
Figure 3 below illustrates how to (1) load and (2) view the Moore
dataset which first entries are shown in (3). In this experiment, the
conformity
(DV, 1st columbns) of each subject interacting
with a partner of either ‘low’ or ‘high’ status
(partner.status
, 1st IV, 2nd column) and’low’, ‘medium’ or
‘high’ authoritarism (fcategory
, 2nd IV, 3rd column).
The replication of this analysis starts by re-ordering the levels of
fcategory
in the order low < medium < high (the
default ordering is the alphabetical order). This reordering is
essentially for graphical purpose. This can be done in Rcmdr by using
the menu entry Data
>
Manage variables in the active dataset
>
Reorder factor levels...
as illustrated in Figure 2.
After re-ordering, the means of all combinations of factors
(cells) can be plot using the menu entry Graphs
> Plot of means...
which yields the dialog box shown in
Figure 3.1. The graph in Figure 3.2 is obtained after selecting the two
factors and conformity
as the response variable.
This graph shows a clear effect of partner.status
on the
conformity (whereby high status yields higher conformity),
providing the authoritarism (fcategory
) remains
low or medium. Overall, this suggest a main effect of
partner.status
and an interaction between
partner.status
and fcategory
on
conformity
. This will be checked in the following using a
two-way ANOVA of conformity
using
partner.status
and fcategory
as factors.
The multiway ANOVA dialog box is accessed by the
Statistics
> Means
>
Multi-way ANOVA...
menu entry. It presents two tabs
(Data
and Options
) shown in Figure 4.
With the settings shown in Figure X, a two-way ANOVA model is fitted
to the data employing sum-to-zero contrasts, and a type II test which is
the default in the car::ANOVA()
function used in aRnova
(see J Fox textbook for details on the choice of contrasts and type of
sum of squares). The R commands and results are displayed in the output
window as shown in Figure Y and reproduced below:
> options(contrasts = c('contr.sum', 'contr.poly'))
> MooreModel.1 <- lm(conformity ~ fcategory*partner.status, data=Moore)
> .myAnova <- Anova(MooreModel.1, type = 2)
> .myAnova
Anova Table (Type II tests)
Response: conformity
Sum Sq Df F value Pr(>F)
fcategory 11.61 2 0.2770 0.759564
partner.status 212.21 1 10.1207 0.002874 **
fcategory:partner.status 175.49 2 4.1846 0.022572 *
Residuals 817.76 39
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
These results indicate a significant effect of
partner.status
on the conformity, as well as an interaction
between fcategory
and partner.status
affecting
conformity, as was anticipated in this study. The use of Type III sum of
squares (widely used and the default in many other statistics packages)
leads to similar results.
Depending on the options chosen, supplementary output is given:
Efffect size
When selecting Effect size
in the Options
tab, partial eta squared (η2) are computed and
displayed as follows. In the present case, these values show that both
the main effect and interaction effect have a large effect size
according to Cohen’s guidelines:
> \# EFFECT SIZE
> .effectSize <- data.frame(format(round(.myAnova$`Sum Sq` / sum(.myAnova$`Sum Sq`), 4), nsmall = 4), row.names = rownames(.myAnova))
> colnames(.effectSize) <- c("part. eta sq.")
> .effectSize
part. eta sq.
fcategory 0.0095
partner.status 0.1744
fcategory:partner.status 0.1442
Residuals 0.6719
summary statistics of groups
When this option is selected in the Options
tab, the
mean, standard deviations and number of observations for each
combination of factor levels (cells):
> \# NUMERIC SUMMARY OF GROUPS
> with(Moore, (tapply(conformity, list(fcategory, partner.status), mean, na.rm=TRUE))) # means
high low
low 17.40000 8.900
medium 14.27273 7.250
high 11.85714 12.625
> with(Moore, (tapply(conformity, list(fcategory, partner.status), sd, na.rm=TRUE))) # std. deviations
high low
low 4.505552 2.643651
medium 3.951985 3.947573
high 3.933979 7.347254
> with(Moore, (tapply(conformity, list(fcategory, partner.status), function(x) sum(!is.na(x))))) # counts
high low
low 5 10
medium 11 4
high 7 8
post-hoc analysis When this option is
selected in the Options
tab, post-hoc analysis on
significant or close to significant effects is carried out. To this aim
an ‘extended’ dataset (with the extension .extd
) is
generated. This dataset contains additional factor combinations that
allows particularizing each combination of factor levels (cell)
and is useful for plotting means, data mining, and post-hoc analysis.
Hence, in the present case, a supplementary column
fcategory.partner.status
is generated. This allows, for
instance, to generate the boxplots corresponding to each cell
(Graphs
> Boxplot...
), as examplified in
Figure.
The post-hoc analysis consist in pairwise comparison between cells using Tukey’s HSD test when interactions are significant (p < .05) or close to significant (p < 0.1) . In the present case, the interaction between the two factors is sginficant (p = 0.02, see above), which triggers the pairwise comparison:
> summary(glht(aov(conformity ~ fcategory.partner.status, data = Moore.extd), linfct = mcp(fcategory.partner.status = "Tukey")))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Tukey Contrasts
Fit: aov(formula = conformity ~ fcategory.partner.status, data = Moore.extd)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
medium.high - low.high == 0 -3.1273 2.4698 -1.266 0.7975
high.high - low.high == 0 -5.5429 2.6813 -2.067 0.3202
low.low - low.high == 0 -8.5000 2.5081 -3.389 0.0183 *
medium.low - low.high == 0 -10.1500 3.0718 -3.304 0.0227 *
high.low - low.high == 0 -4.7750 2.6105 -1.829 0.4543
high.high - medium.high == 0 -2.4156 2.2140 -1.091 0.8795
low.low - medium.high == 0 -5.3727 2.0008 -2.685 0.0989 .
medium.low - medium.high == 0 -7.0227 2.6736 -2.627 0.1124
high.low - medium.high == 0 -1.6477 2.1277 -0.774 0.9695
low.low - high.high == 0 -2.9571 2.2566 -1.310 0.7737
medium.low - high.high == 0 -4.6071 2.8701 -1.605 0.5950
high.low - high.high == 0 0.7679 2.3699 0.324 0.9995
medium.low - low.low == 0 -1.6500 2.7090 -0.609 0.9895
high.low - low.low == 0 3.7250 2.1721 1.715 0.5252
high.low - medium.low == 0 5.3750 2.8041 1.917 0.4024
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Adjusted p values reported -- single-step method)
This post-hoc analysis show that the significant interaction comes from differences between low authoritarism/low status and low authoritarism/high status, as well as between medium authoritarism/low status and low authoritarism/high status. As shown in the previous plots, these two pairs of cells present indeed the largest differences of conformity.
To conduct an ANOVA using a repeated measures design, activate
the
dialog box entitleded “Definition of Within-subject factors” in the menu
Statistics -> Means -> Repeated Measures ANOVA...
In this dialog box, you have to supply a name and a number of levels for
each of the within-subject (repeated -measures) variable. A valid
within-factor entry must consist in a syntactically valid name (see
make.names) and 2 levels or more. On clicking the OK button, the first
valid entries are kept and used