[S] repeated measures summary

Dave Krantz (dhk@paradox.psych.columbia.edu)
Sun, 12 Apr 1998 18:19:27 -0400

Gabriel Baud-Bovy describes an experimental design as follows:

> Description of the experiment: a robot produced laterally oriented
> point-to-point movements. The trajectories resulted from
> the combination of 2 possible paths (straight line or arc
> of circle) and 5 velocity profiles. Subjects grasped the handle
> mounted on the extremity of the robotic arm and were
> instructed to follow the movement as well as possible.
> The force applied by the subject's hand to the handle was
> recorded during the movements. For each subject, there were 10
> blocks of 24 movements (12 left-to-right and 12 right-to-left
> movements). All movements in one block were identical (same
> path and velocity profile).
> Description of the dataframe:
> fxy: average length of the force vector during the movement
> su: subjects (10-levels factor)
> st: movement type (20-levels factor=2*5*2)
> pa: paths (2-levels factor)
> sp: velocity profiles (5 levels factor)
> dir: movement direction (2 levels factor)
> n: repetitions (12 levels factor)
> note: the dataframe has 10*20*12=2400 rows.

Since the factor of order (of pa:sp blocks) is ignored (perhaps
because the subjects have had practice and no order effects
are expected??), the design given by Baud-Bovy appears to be
completely crossed, except for repetitions, which should
probably be viewed as nested within su:pa:sp:dir. The initial
anova table given (according to Baud-Bovy) by

summary(aov(fxy ~ pa*sp*dir*su, data=dat))

should yield all the correct sums of squares and degrees of freedom;
I am puzzled by the reported 2199 df for residuals--as far as
I can see it should be 2200 = (10*2*5*2) * (12-1). I believe
that the Splus command shown, applied to the design specified,
will indeed give 2200 as the df for residuals.

To obtain the correct association of factor sums of squares
with corresponding interaction errors, I would use the

summary(aov(data=dat, fxy ~ pa*sp*dir +
Error(su + su:pa + su:sp + su:dir +
su:pa:sp + su:pa:dir + su:sp:dir + su:pa:sp:dir)))

[ It would be nice if one could abbreviate the last two lines above to


but for reasons that I do not understand, this does not work as I
would have expected, and I always find myself forced to write out
the expansion of the error terms. ]

This breaks the original 16 sums of squares given by the earlier
command into 9 subtables; the first and last (su and Residuals)
have only one entry each, and no F test; the intervening 7 each
have one of the "main effect" terms or 2-way or 3-way interaction
terms paired with the corresponding su: interaction and provide
the standard repeated-measures F tests.

[ CAVEAT: the standard F-tests are based on an extremely simple
covariance model--one that almost always turns out to be a massive
oversimplification, in my own experience with complex factorial
designs and human subjects. An analysis of variance of the sort
illustrated should never be used as the main data analysis without
thorough subsidiary testing of the covariance model. ]

At any rate, I don't see how the nested analysis suggested by Baud-Bovy
(in the " su/ " syntax) could be correct.

Dave Krantz

This message was distributed by s-news@wubios.wustl.edu. To unsubscribe
send e-mail to s-news-request@wubios.wustl.edu with the BODY of the
message: unsubscribe s-news