Skip to content

Doing Oneway Repeated Measures ANOVAs :Designing, Running, and Analyzing Experiments(Interaction Design Specialization) Answers 2026

Q1. Number of participants

data2 <- read.csv("websearch2.csv")
length(unique(data2$Participant))

πŸ‘‰ Enter the printed number


Q2. Highest average number of searches

aggregate(Searches ~ Engine, data2, mean)

πŸ‘‰ Identify the largest mean
πŸ‘‰ Round to 2 decimals


Q3. Order effect on Searches (paired t-test)

Convert to wide format:

wide_order <- dcast(data2, Participant ~ Order, value.var = "Searches")
t.test(wide_order[,2], wide_order[,3], paired = TRUE)

πŸ‘‰ Enter p-value
πŸ‘‰ Round to 4 decimals


Q4. Searches by Engine (paired t-test)

wide_engine <- dcast(data2, Participant ~ Engine, value.var = "Searches")
t.test(wide_engine[,2], wide_engine[,3], paired = TRUE)

πŸ‘‰ Take absolute value of t statistic
πŸ‘‰ Round to 2 decimals


Q5. Effort ratings (Wilcoxon signed-rank, exact)

effort_wide <- dcast(data2, Participant ~ Engine, value.var = "Effort")

wilcoxsign_test(
as.numeric(effort_wide[,2]) ~ as.numeric(effort_wide[,3]),
distribution = "exact"
)

πŸ‘‰ Enter p-value
πŸ‘‰ Round to 4 decimals


🟦 PART B: websearch3.csv (3 engines)

Q6. Number of participants

data3 <- read.csv("websearch3.csv")
length(unique(data3$Participant))

Q7. Highest average number of searches

aggregate(Searches ~ Engine, data3, mean)

πŸ‘‰ Take largest mean, round to 2 decimals


Q8. Order effect (Repeated Measures ANOVA)

order_anova <- ezANOVA(
data = data3,
dv = Searches,
wid = Participant,
within = Order,
detailed = TRUE
)

order_anova$Mauchly

πŸ‘‰ Enter Mauchly’s W
πŸ‘‰ Round to 4 decimals


Q9. Interpret sphericity + ANOVA

From the same output:

  • If p < 0.05 β†’ use Greenhouse–Geisser corrected p

  • Else β†’ use standard p

πŸ‘‰ Enter appropriate p-value, rounded to 4 decimals


Q10. Searches by Engine (RM-ANOVA)

engine_anova <- ezANOVA(
data = data3,
dv = Searches,
wid = Participant,
within = Engine,
detailed = TRUE
)

engine_anova$Mauchly

πŸ‘‰ Enter Mauchly’s W, round to 4 decimals


Q11. Interpret sphericity + ANOVA

πŸ‘‰ Same rule as Q9
πŸ‘‰ Enter correct p-value, round to 4 decimals


Q12. Are post hoc tests warranted?

Decision rule:

  • Omnibus p < 0.05 β†’ Yes

  • Omnibus p β‰₯ 0.05 β†’ No


Q13. Post hoc paired t-tests + Holm

wide_engine3 <- dcast(data3, Participant ~ Engine, value.var = "Searches")

pvals <- c(
t.test(wide_engine3[,2], wide_engine3[,3], paired = TRUE)$p.value,
t.test(wide_engine3[,2], wide_engine3[,4], paired = TRUE)$p.value,
t.test(wide_engine3[,3], wide_engine3[,4], paired = TRUE)$p.value
)

p.adjust(pvals, method = "holm")

πŸ‘‰ Take the smallest corrected p-value
πŸ‘‰ Round to 4 decimals


Q14. Friedman test on Effort

friedman_test(Effort ~ Engine | Participant,
data = data3,
distribution = "asymptotic")

πŸ‘‰ Enter Chi-square statistic
πŸ‘‰ Round to 4 decimals


Q15. Are post hoc tests warranted?

Rule:

  • p < 0.05 β†’ Yes

  • p β‰₯ 0.05 β†’ No


Q16. Wilcoxon signed-rank + Holm

effort_wide3 <- dcast(data3, Participant ~ Engine, value.var = "Effort")

pvals <- c(
wilcox.test(effort_wide3[,2], effort_wide3[,3], paired = TRUE, exact = FALSE)$p.value,
wilcox.test(effort_wide3[,2], effort_wide3[,4], paired = TRUE, exact = FALSE)$p.value,
wilcox.test(effort_wide3[,3], effort_wide3[,4], paired = TRUE, exact = FALSE)$p.value
)

p.adjust(pvals, method = "holm")

πŸ‘‰ Take smallest corrected p-value
πŸ‘‰ Round to 4 decimals


🧾 Final Summary Table (Fill After Running R)

Q Test Value to Enter
1 Participant count ___
2 Max mean Searches ___
3 Order t-test p ___
4 t
5 Wilcoxon p ___
6 Participant count ___
7 Max mean Searches ___
8 Mauchly’s W (Order) ___
9 RM-ANOVA p ___
10 Mauchly’s W (Engine) ___
11 RM-ANOVA p ___
12 Post hoc warranted Yes / No
13 Smallest Holm p ___
14 Friedman χ² ___
15 Post hoc warranted Yes / No
16 Smallest Holm p ___