Subject:

- ANOVA
- Introduction
- 1. Fit a Model
- 2. {/PARAGRAPH}
## R - Two-Way Repeated Measures ANOVA Example

- 3. {/PARAGRAPH}
## SPSS tutorials

- 20 thoughts on “Repeated measures ANOVA with R (functions and tutorials)”
- Multiple Comparisons
- Visualizing Results
- R Tutorial Series: One-Way Repeated Measures ANOVA
- MANOVA
- Post navigation
- Going Further

## ANOVA

If you have been analyzing ANOVA designs in traditional statistical packages, you are likely to find R's approach less coherent and user-friendly. A good online presentation on ANOVA in R can be found in ANOVA section of the Personality Project.

## Introduction

(Note: I have found that these pages render fine in Chrome and Safari browsers, but can appear distorted in iExplorer.)

### 1. Fit a Model

In the following examples **lower case** letters are numeric variables and **upper case** letters are factors.

For within subjects designs, the data frame has to be rearranged so that each measurement on a subject is a separate observation. See R and Analysis of Variance.

### 2.

## R - Two-Way Repeated Measures ANOVA Example

Look at Diagnostic Plots

Diagnostic plots provide checks for heteroscedasticity, normality, and influential observerations.

For details on the evaluation of test requirements, see (M)ANOVA Assumptions.

### 3.

## SPSS tutorials

Evaluate Model Effects

**WARNING**: R provides Type I sequential SS, not the default Type III marginal SS reported by SAS and SPSS. In a nonorthogonal design with more than one term on the right hand side of the equation **order will matter** (i.e., A+B and B+A will produce *different* results)!

We will need use the **drop1( )** function to produce the familiar Type III results. It will compare each term with the full model. Alternatively, we can use anova(fit.model1, fit.model2) to compare nested models directly.

## 20 thoughts on “Repeated measures ANOVA with R (functions and tutorials)”

Nonparametric and resampling alternatives are available.

## Multiple Comparisons

You can get Tukey HSD tests using the function below.

By default, it calculates post hoc comparisons on each factor in the model. You can specify specific factors as an option.

**Again, remember that results are based on Type I SS! **

## Visualizing Results

Use box plots and line plots to visualize group differences. There are also two functions specifically designed for visualizing mean differences in ANOVA layouts. **interaction.plot( ) **in the base stats package produces plots for two-way interactions.

## R Tutorial Series: One-Way Repeated Measures ANOVA

plotmeans( ) in the gplots package produces mean plots for single factors, and includes confidence intervals.

click to view

click to view

## MANOVA

If there is more than one dependent (outcome) variable, you can test them simultaneously using a **multivariate analysis of variance** (MANOVA).

In the following example, let Y be a matrix whose columns are the dependent variables.

Other test options are "Wilks", "Hotelling-Lawley", and "Roy". Use** summary.aov( )** to get univariate statistics.

**TukeyHSD( )** and **plot( )** will not work with a MANOVA fit. Run each dependent variable separately to obtain them.

## Post navigation

Like ANOVA, MANOVA results in R are based on Type I SS. To obtain Type III SS, vary the order of variables in the model and rerun the analyses. For example, fit y~A*B for the TypeIII B effect and y~B*A for the Type III A effect.

## Going Further

R has excellent facilities for fitting linear and generalized linear **mixed-effects models**.

The lastest implimentation is in package lme4.

See the R News Article on Fitting Mixed Linear Models in R for details.