In a within-subjects design, subjects give responses across multiple conditions or across time. In other words, measures are repeated across levels of some condition or across time points. For example, subjects can report how happy they feel when they see a sequence of positive pictures and another sequence of negative pictures. In this case, we’d observe each subjects’ happiness in both positive and negative conditions. As another example, we could measure subjects’ job satisifcation every month for 3 months. Here we’d observe job satisfaction for each subject across time. In both cases, subject scores across conditions or time very likely correlate with eachother – they are dependent.

Broadly, contrasts test focused research hypotheses. A contrast comprises a set of weights or numeric values that represent some comparison. For example, when comparing two experimental group means (i.e., control vs. treatment), you can apply weights to each group mean and then sum them up. This is the same thing as subtracting one group’s mean from the other’s.

```
# group means
control <- 5
treatment <- 3
# apply contrast weights and sum up the results
sum(c(control, treatment) * c(1, -1))
```

`## [1] 2`

Correct functional form.Your model variables share linear relationships.

No omitted influences.This one is hard: Your model accounts for all relevant influences on the variables included. All models are wrong, but how wrong is yours?

Accurate measurement.Your measurements are valid and reliable. Note that unreliable measures can’t be valid, and reliable measures don’t necessairly measure just one construct or even your construct.

Well-behaved residuals.Residuals (i.e., prediction errors) aren’t correlated with predictor variables or eachother, and residuals have constant variance across values of your predictor variables.

All change scores variances are equal.Similar to the homogenous group variance assumption in between-subjects ANOVA designs, within-subjects designs require that all change score variances (e.g., subject changes between time points, within-subject differences between conditions) are equal. This means that if you compute the within-subject differences between all pairiwse levels (e.g., timepoints, treatment levels), the variances of those parwises differences must all be equal. For example, if you ask people how satisifed they are with their current job every month for 3 months, then the variance of month 2 - month 1 should equal the variance of month 3 - month 2 and the variance of month 3 - month 1. As you might be thinking, this assumption is very strict and probably not realistic in many cases.

Sphericity and a special case, compound symmetry.Sphericity is the matrix algebra equivalent to the homogenous change score variance assumption. Compound symmtry is a special case of sphericity. A variance-covariance matrix that satisifies compound symmetry has equal variances (the values in the diagonal) and equal covariances (the values above or below the diagonal).

Short explanation: Sphericity = homogenous change score variance = compound symmetry

```
# 3 x 3 matrix, all values = 0.20
covmat <- matrix(0.20, nrow = 3, ncol = 3)
# for kicks, make all the variances = 0.50
diag(covmat) <- rep(0.50, 3)
# print
covmat
```

```
## [,1] [,2] [,3]
## [1,] 0.5 0.2 0.2
## [2,] 0.2 0.5 0.2
## [3,] 0.2 0.2 0.5
```

```
library(tidyverse)
library(knitr)
library(AMCP)
library(MASS)
library(afex)
# select from dplyr
select <- dplyr::select
recode <- dplyr::recode
```

From Chapter 11, Table 5 in Maxwell, Delaney, & Kelley (2018)

From`help("C11T5")`

: “The data show that 12 participants have been observed in each of 4 conditions. To make the example easier to discuss, let’s suppose that the 12 subjects are children who have been observed at 30, 36, 42, and 48 months of age. Essentially, for the present data set, 12 children were each observed four times over an 18 month period. The dependent variable is the age-normed general cognitive score on the McCarthy Scales of Children’s Abilities. Interest is to determine if the children were sampled from a population where growth in cognitive ability is more rapid or less rapid than average.”"

```
data("C11T5")
C11T5$id <- factor(1:12)
# print entire dataset
C11T5 %>% kable()
```

Months30 | Months36 | Months42 | Months48 | id |
---|---|---|---|---|

108 | 96 | 110 | 122 | 1 |

103 | 117 | 127 | 133 | 2 |

96 | 107 | 106 | 107 | 3 |

84 | 85 | 92 | 99 | 4 |

118 | 125 | 125 | 116 | 5 |

110 | 107 | 96 | 91 | 6 |

129 | 128 | 123 | 128 | 7 |

90 | 84 | 101 | 113 | 8 |

84 | 104 | 100 | 88 | 9 |

96 | 100 | 103 | 105 | 10 |

105 | 114 | 105 | 112 | 11 |

113 | 117 | 132 | 130 | 12 |

```
lC11T5 <- C11T5 %>%
gather(key = month, value = score, -id) %>%
mutate(monthnum = month %>% recode("Months30" = 0, "Months36" = 6, "Months42" = 12, "Months48" = 18),
linear = monthnum %>% recode(`0` = -3, `6` = -1, `12` = 1, `18` = 3),
quadratic = monthnum %>% recode(`0` = 1, `6` = -1, `12` = -1, `18` = 1),
cubic = monthnum %>% recode(`0` = -1, `6` = 3, `12` = -3, `18` = 1),
monthfac = month %>% factor(ordered = TRUE))
```

`## Warning: package 'bindrcpp' was built under R version 3.4.4`

```
# print first and last 5 observations from dataset
head(lC11T5) %>% kable()
```

id | month | score | monthnum | linear | quadratic | cubic | monthfac |
---|---|---|---|---|---|---|---|

1 | Months30 | 108 | 0 | -3 | 1 | -1 | Months30 |

2 | Months30 | 103 | 0 | -3 | 1 | -1 | Months30 |

3 | Months30 | 96 | 0 | -3 | 1 | -1 | Months30 |

4 | Months30 | 84 | 0 | -3 | 1 | -1 | Months30 |

5 | Months30 | 118 | 0 | -3 | 1 | -1 | Months30 |

6 | Months30 | 110 | 0 | -3 | 1 | -1 | Months30 |

`tail(lC11T5) %>% kable()`

id | month | score | monthnum | linear | quadratic | cubic | monthfac | |
---|---|---|---|---|---|---|---|---|

43 | 7 | Months48 | 128 | 18 | 3 | 1 | 1 | Months48 |

44 | 8 | Months48 | 113 | 18 | 3 | 1 | 1 | Months48 |

45 | 9 | Months48 | 88 | 18 | 3 | 1 | 1 | Months48 |

46 | 10 | Months48 | 105 | 18 | 3 | 1 | 1 | Months48 |

47 | 11 | Months48 | 112 | 18 | 3 | 1 | 1 | Months48 |

48 | 12 | Months48 | 130 | 18 | 3 | 1 | 1 | Months48 |

It’s always a good idea to look at your data. Check some assumptions.

```
lC11T5 %>%
ggplot(mapping = aes(x = month, y = score)) +
geom_point(position = position_jitter(0.1)) +
stat_summary(geom = "point", fun.data = mean_cl_normal, color = "red", size = 2) +
stat_summary(geom = "errorbar", fun.data = mean_cl_normal, color = "red", width = 0) +
theme_bw()
```

Do observations look normal at each time point?

```
lC11T5 %>%
ggplot(mapping = aes(sample = score)) +
geom_qq() +
facet_wrap(facets = ~ month, scales = "free") +
theme_bw()
```