MANOVA Analysis of Time Series Data

From CCN Wiki
Jump to navigation Jump to search

Analyses of multiple (rather than repeated) measures for an individual should be carried out using MANOVA. It turns out it's fairly simple to do in R.

Read in Table

Assume you have your data structured as follows:

X     T01     T02     T03     ...     TNN
a     .33     .38     .43             .78
a     .32     .39     .47             .80
b     .36     .41     .44             .77
b     .31     .35     .40             .81

Read the data into a data frame:

> dat=read.table('training_accuracy.txt', header=TRUE, sep='\t')

Run the MANOVA

The first thing to point out is that you need to have sufficient samples for the number of columns. If you are comparing 64 time points for two groups, you will need 128 (? I should know this maybe) samples, or else R will complain. Assuming you have sufficient data, the MANOVA is easy. In the above example, the first column is your grouping variable. The rest of the columns, T01 to TNN are your time points. Rather than type them all out when calling the manova function, you can just refer to them by index:

> fit=manova(as.matrix(dat[,2:65]) ~ X, data=dat)

Here, I am running the MANOVA on all 64 time points. Since column 1 is my grouping variable, X, the 64 dependent variables are in columns 2 to 65. It's trivially easy to analyze a smaller window:

 > fit=manova(as.matrix(dat[,24:26]) ~ X, data=dat)

Get the MANOVA Results

> summary(fit)
          Df  Pillai approx F num Df den Df Pr(>F)
X           1 0.56045   1.2551     64     63 0.1841