In longitudinal research, the same people provide responses to the same measure on two occasions (the individuals in the two groups are the same).
In paired-sample research, the individuals in the two groups are different, but they are related and their responses are assumed to be correlated. Examples would be responses by children and their parents, members of couples, twins, etc.
In paired-measures research, the same people provide responses to two different measures that assess closely related constructs. This resembles longitudinal research, but data collection occurs at one time.
All of these are instances of repeated measures designs.
The advantage of repeated measures designs is that, compared to an independent groups design of the same size, the repeated measures design is more powerful.
Two groups are more alike than in simple randomization
The correlated sampling units will have less variability on “nuisance variables” because those are either the same over time (longitudinal) or over measures (paired measures), or very similar over people (paired samples).
Nuisance variables – anything that isn’t relevant to the study.
Each of these repeated measures problems can be viewed as a transformation of the original two measures into a single measure: a difference score. This reduces the analysis to a one-sample t-test on the difference score, with null mean = 0.
If the repeated measures are \(X_1\) and \(X_2\), then their difference is \(D = X_1 – X_2\). This new measure has a mean and standard deviation, like any other single measure, making it appropriate for a one-sample t-test.
\[t_{df = N-1} = \frac{\bar{\Delta}-\mu}{\frac{\hat{\sigma}_\Delta}{\sqrt{N}}}\]
\[H_0: \bar{\Delta} = \mu\]
\[H_1: \bar{\Delta} \neq \mu\]
\[H_0: \bar{\Delta} = 0\]
\[H_1: \bar{\Delta} \neq 0\]
Human-wildlife conflict in urban areas endangers wildlife species. One species under threat is the Larus argentatus or herring gull, which is considered a nuisance owing to food-snatching and other behaviors. A recent study examined whether herring gull behavior is influenced by human behavior cues and whether this could be used to reduce human-gull conflict.
In this study, experimenters visited coastal towns in the UK and found locations with multiple gulls. They placed a bag of potato chips (250 g) in front of them and measured how long it took gulls to peck at the food.
“We adopted a repeated measures design… We randomly assigned individuals to receive Looking At or Looking Away first, and trial order was counterbalanced across individuals. Second trials commenced 180 s after the completion of the first trial to allow normal behaviour to resume.”
In the Looking At treatment, the experimenter directed her gaze towards the eye(s) of the gull and turned her head, if necessary, to follow its approach path until the gull completed the trial by pecking at the food bag.
In the Looking Away treatment, the experimenter turned her head and eyes approximately 60° (randomly left or right) away from the gull and maintained this position until she heard the gull peck at the food bag.
GullID At Away
1 FAL01 210 35
2 FAL03 300 80
3 FAL04 6 3
4 PEN03 18 21
5 W120M 47 13
6 W019 25 4
7 PNZ01 4 13
8 PNZ02 9 8
9 STI01 300 18
10 STI02 300 6
11 W186 11 8
12 STI03 4 3
13 STI04 4 6
14 HEL02 12 19
15 NEW01 300 6
16 NEW02 63 16
17 NEW03 300 166
18 PER01 24 66
19 TRU01 300 167
Use a paired-samples t-test because we have the same gulls in both conditions.
\(\large H_0\): There is no difference in how long it takes gulls to approach food between conditions.
\(\large H_1\): Gulls take longer to approach food in one of the conditions.
t-distribution requires two parameters, a mean and a standard deviation.
The mean of our sampling distribution comes from our null hypothesis, so
\[\large \mu = 0\]
Our standard deviation of our sampling distribution is the standard error of difference scores. This is calculated via the following steps
To calculate the standard error of difference scores, we simply divide the standard deviation by the square root of the number of pairs or, if repeated measures, the number of subjects.
\[\frac{\hat{\sigma}_\Delta}{\sqrt{N}} = 26.58\]
df = nrow(gulls)-1
cv_t = qt(df = df, p = .975)
t_x = seq(-3.76, 3.76)
plot_t = data.frame(t_x) %>%
ggplot(aes(x=t_x)) +
stat_function(fun = function(x) dt(x, df), geom = "line") +
stat_function(fun = function(x) dt(x, df), geom = "area",
xlim = c(cv_t, 3.76), fill = "purple") +
stat_function(fun = function(x) dt(x, df), geom = "area",
xlim = c(-3.76, -1*cv_t), fill = "purple") +
labs(title = "Sampling distribution \n(in t)", y = "density", x = "t")+
theme_pubr(base_size = 20)
cv_x = cv_t*se_delta
x = t_x*se_delta
plot_x = data.frame(x) %>%
ggplot(aes(x=x)) +
stat_function(fun = function(x) dt(x = x/se_delta, df = df), geom = "line") +
stat_function(fun = function(x) dt(x/se_delta, df = df), geom = "area",
xlim = c(cv_x, max(x)), fill = "purple") +
stat_function(fun = function(x) dt(x/se_delta, df = df), geom = "area",
xlim = c(min(x), -1*cv_x), fill = "purple") +
labs(title = "Sampling distribution \n(in difference in seconds)", y = "density", x = "difference seconds")+
theme_pubr(base_size = 20)
ggarrange(plot_t, plot_x, ncol = 2)
\[t_{df = N-1} = \frac{\bar{\Delta}-\mu}{\frac{\hat{\sigma}_\Delta}{\sqrt{N}}}\]
In this case, N refers to the number of pairs, not the total sample size.
\[t_{df = N-1} = \frac{83.11-0}{26.58} = 3.13\]
Note: A paired-samples t-test is exactly the same as a one-sample t-test on the difference scores.
df = nrow(gulls)-1
cv_t = qt(df = df, p = .975)
t_x = seq(-3.76, 3.76)
statistic_t = m_delta/se_delta
plot_t = data.frame(t_x) %>%
ggplot(aes(x=t_x)) +
stat_function(fun = function(x) dt(x, df), geom = "line") +
stat_function(fun = function(x) dt(x, df), geom = "area",
xlim = c(cv_t, 3.76), fill = "purple") +
stat_function(fun = function(x) dt(x, df), geom = "area",
xlim = c(-3.76, -1*cv_t), fill = "purple") +
geom_vline(aes(xintercept = statistic_t), linetype = 2, color = "red")+
labs(title = "Sampling distribution \n(in t)", y = "density", x = "t")+
scale_x_continuous(limits = c(-3.8, 3.8))+
theme_pubr(base_size = 20)
cv_x = cv_t*se_delta
x = t_x*se_delta
statistic_x = statistic_t*se_delta
plot_x = data.frame(x) %>%
ggplot(aes(x=x)) +
stat_function(fun = function(x) dt(x = x/se_delta, df = df), geom = "line") +
stat_function(fun = function(x) dt(x/se_delta, df = df), geom = "area",
xlim = c(cv_x, max(x)), fill = "purple") +
stat_function(fun = function(x) dt(x/se_delta, df = df), geom = "area",
xlim = c(min(x), -1*cv_x), fill = "purple") +
geom_vline(aes(xintercept = statistic_x), linetype = 2, color = "red")+
labs(title = "Sampling distribution \n(in difference in seconds)", y = "density", x = "difference seconds")+
scale_x_continuous(limits = c(-3.8*se_delta, 3.8*se_delta))+
theme_pubr(base_size = 20)
ggarrange(plot_t, plot_x, ncol = 2)
Another option is to calculate the area above the absolute value of the test statistic and multiply that by two – this estimates the probability of finding this test statistic or more extreme.
With the raw data, the calculation of the variance of the standard deviation scores \(\large (\hat{\sigma}_\Delta)\) is intuitive. Sometimes you will not have access to the raw data, but will want to conduct the test.
For example, you read a study that compares a sample of Oregon students to known US benchmarks on several variables using multiple one-sample t-tests; you want to know whether OR students respond more to one variable than the other.
school = read_csv(here("data/census_at_school.csv"))
school = school %>% filter(ClassGrade >= 9) %>%
filter(!is.na(Importance_reducing_pollution)) %>%
filter(!is.na(Importance_recycling_rubbish))
psych::describe(school[,c("Importance_reducing_pollution", "Importance_recycling_rubbish")], fast = T) %>%
select(n, mean, sd) %>%
kable(., col.names = c("N", "Mean", "SD"),
digits = 2) %>%
kable_styling()
N | Mean | SD | |
---|---|---|---|
Importance_reducing_pollution | 194 | 792.15 | 937.03 |
Importance_recycling_rubbish | 194 | 714.85 | 652.65 |
The correlation between these variables is 0.61.
It turns out that the mean difference score is the same as the difference in means, so that’s an easy part of the calculation.
But the calculation of the standard deviation becomes a little more complicated:
\[\large \hat{\sigma}_\Delta = \sqrt{\hat{\sigma}^2_{X_1} + \hat{\sigma}^2_{X_2} - 2r(\hat{\sigma}_{X_1}\hat{\sigma}_{X_2})}\]
Now you have all the information you need for the statistical test!
[1] 1.441472
[1] 0.1510719
\[\large \hat{\sigma}_\Delta = \sqrt{\hat{\sigma}^2_{X_1} + \hat{\sigma}^2_{X_2} - 2r(\hat{\sigma}_{X_1}\hat{\sigma}_{X_2})}\]
What happens if \(\large r\) is large and positive?
What happens if \(\large r\) is small and positive?
What happens if \(\large r\) is negative?
Note: These are the same assumptions as a one-sample t-test.
RMarkdown
Bring laptops to class