r:repeated_measure_anova
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
r:repeated_measure_anova [2025/05/12 08:22] – [E.g. 1] hkimscil | r:repeated_measure_anova [2025/05/12 08:25] (current) – [E.g.2 by hand] hkimscil | ||
---|---|---|---|
Line 184: | Line 184: | ||
| | ||
| | ||
- | 76, 78, 90, | + | |
- | | + | 78, 94, 95, |
- | | + | 80, 83, 88, |
- | | + | 82, 90, 99)) |
#view data | #view data | ||
Line 201: | Line 201: | ||
+ Error(reviewer), | + Error(reviewer), | ||
data = movrev) | data = movrev) | ||
+ | m2.aov <- aov(score ~ movie | ||
+ | + Error(reviewer/ | ||
+ | data = movrev) | ||
+ | |||
+ | #view model summary | ||
+ | summary(m.aov) | ||
+ | summary(m2.aov) | ||
+ | |||
+ | # pairwise.t.test(movrev$score, | ||
+ | attach(movrev) | ||
+ | pairwise.t.test(score, | ||
+ | detach(movrev) | ||
+ | # or | ||
+ | with(movrev, | ||
+ | | ||
+ | | ||
+ | | ||
+ | # the second | ||
+ | movrev <- data.frame(reviewer=rep(1: | ||
+ | | ||
+ | | ||
+ | 76, 78, 90, | ||
+ | 78, 94, 95, | ||
+ | 80, 83, 88, | ||
+ | 82, 90, 99)) | ||
+ | |||
+ | #view data | ||
+ | movrev | ||
+ | write.csv(movrev, | ||
+ | |||
+ | movrev$movie <- factor(movrev$movie) | ||
+ | movrev$reviewer <- factor(movrev$reviewer) | ||
+ | |||
+ | # Error(reviewer) = reviewer error should be isolated | ||
+ | # The above is the same as Error(reviewer/ | ||
+ | m.aov <- aov(score ~ movie | ||
+ | + Error(reviewer), | ||
+ | data = movrev) | ||
+ | m2.aov <- aov(score ~ movie | ||
+ | + Error(reviewer/ | ||
+ | data = movrev) | ||
+ | |||
#view model summary | #view model summary | ||
summary(m.aov) | summary(m.aov) | ||
+ | summary(m2.aov) | ||
# pairwise.t.test(movrev$score, | # pairwise.t.test(movrev$score, | ||
attach(movrev) | attach(movrev) | ||
pairwise.t.test(score, | pairwise.t.test(score, | ||
+ | detach(movrev) | ||
# or | # or | ||
with(movrev, | with(movrev, | ||
Line 254: | Line 298: | ||
+ + Error(reviewer), | + + Error(reviewer), | ||
+ data = movrev) | + data = movrev) | ||
+ | > m2.aov <- aov(score ~ movie | ||
+ | + + Error(reviewer/ | ||
+ | + data = movrev) | ||
+ | > | ||
> #view model summary | > #view model summary | ||
> summary(m.aov) | > summary(m.aov) | ||
Line 266: | Line 314: | ||
Residuals | Residuals | ||
--- | --- | ||
- | Signif. codes: | + | Signif. codes: |
+ | 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | ||
+ | > summary(m2.aov) | ||
+ | |||
+ | Error: reviewer | ||
+ | Df Sum Sq Mean Sq F value Pr(>F) | ||
+ | Residuals | ||
+ | |||
+ | Error: reviewer: | ||
+ | Df Sum Sq Mean Sq F value Pr(> | ||
+ | movie 2 363.3 181.67 | ||
+ | Residuals | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | ||
> | > | ||
> # pairwise.t.test(movrev$score, | > # pairwise.t.test(movrev$score, | ||
> attach(movrev) | > attach(movrev) | ||
- | The following objects are masked from movrev (pos = 5): | + | The following objects are masked from movrev (pos = 12): |
+ | |||
+ | movie, reviewer, score | ||
+ | |||
+ | The following objects are masked from movrev (pos = 14): | ||
movie, reviewer, score | movie, reviewer, score | ||
Line 285: | Line 351: | ||
P value adjustment method: bonferroni | P value adjustment method: bonferroni | ||
+ | > detach(movrev) | ||
> # or | > # or | ||
> with(movrev, | > with(movrev, | ||
Line 300: | Line 367: | ||
P value adjustment method: bonferroni | P value adjustment method: bonferroni | ||
+ | > | ||
+ | > | ||
+ | </ | ||
+ | ====== E.g.2 by hand ====== | ||
+ | < | ||
+ | #### | ||
+ | # by hand | ||
+ | #### | ||
+ | movrev | ||
+ | tapply(movrev$score, | ||
+ | m.tot <- mean(movrev$score) | ||
+ | |||
+ | |||
+ | m.by.movie <- tapply(movrev$score, | ||
+ | m.by.er <- tapply(movrev$score, | ||
+ | |||
+ | ss.bet <- sum(5*(m.tot-m.by.movie)^2) | ||
+ | df.bet <- 3-1 # 영화 가짓수 - 1 | ||
+ | ms.bet <- ss.bet / df.bet | ||
+ | |||
+ | var.by.movie <- tapply(movrev$score, | ||
+ | ss.with <- sum(var.by.movie*4) | ||
+ | df.with <- 4 + 4 + 4 | ||
+ | ms.with <- ss.with / df.with | ||
+ | ms.bet | ||
+ | ms.with | ||
+ | |||
+ | ss.sub <- sum(3 * (m.tot-m.by.er)^2) # 3 treatments (movies) | ||
+ | df.sub <- 5 - 1 # 5 persons - 1 | ||
+ | ms.sub <- ss.sub/ | ||
+ | ms.sub | ||
+ | |||
+ | ss.res <- ss.with - ss.sub | ||
+ | ss.res | ||
+ | df.res <- 4 * 2 # (N-1)*(k-1) | ||
+ | ms.res <- ss.res/ | ||
+ | ms.res | ||
+ | |||
+ | f.cal <- ms.bet/ | ||
+ | f.cal | ||
+ | pf(f.cal, 2, 8, lower.tail = F) | ||
+ | |||
+ | ss.bet | ||
+ | ss.with | ||
+ | ss.sub | ||
+ | ss.res | ||
+ | df.bet | ||
+ | df.with | ||
+ | df.sub | ||
+ | df.res | ||
+ | ms.bet | ||
+ | ms.with | ||
+ | ms.sub | ||
+ | ms.res | ||
+ | |||
+ | # check | ||
+ | ss.with == ss.sub + ss.res | ||
+ | df.with == df.sub + df.res | ||
+ | summary(m.aov) | ||
+ | # | ||
+ | # no embedded | ||
+ | # understand the meaning of embedded | ||
+ | m0.aov <- aov(score ~ movie, data = movrev) | ||
+ | summary(m0.aov) | ||
+ | summary(m.aov) | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | < | ||
+ | > #### | ||
+ | > # by hand | ||
+ | > #### | ||
+ | > movrev | ||
+ | | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 4 | ||
+ | 5 | ||
+ | 6 | ||
+ | 7 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 4 | ||
+ | 11 4 | ||
+ | 12 4 | ||
+ | 13 5 | ||
+ | 14 5 | ||
+ | 15 5 | ||
+ | > tapply(movrev$score, | ||
+ | | ||
+ | 1 88 84 92 | ||
+ | 2 76 78 90 | ||
+ | 3 78 94 95 | ||
+ | 4 80 83 88 | ||
+ | 5 82 90 99 | ||
+ | > m.tot <- mean(movrev$score) | ||
+ | > | ||
+ | > | ||
+ | > m.by.movie <- tapply(movrev$score, | ||
+ | > m.by.er <- tapply(movrev$score, | ||
+ | > | ||
+ | > ss.bet <- sum(5*(m.tot-m.by.movie)^2) | ||
+ | > df.bet <- 3-1 # 영화 가짓수 - 1 | ||
+ | > ms.bet <- ss.bet / df.bet | ||
+ | > | ||
+ | > var.by.movie <- tapply(movrev$score, | ||
+ | > ss.with <- sum(var.by.movie*4) | ||
+ | > df.with <- 4 + 4 + 4 | ||
+ | > ms.with <- ss.with / df.with | ||
+ | > ms.bet | ||
+ | [1] 181.6667 | ||
+ | > ms.with | ||
+ | [1] 26.36667 | ||
+ | > | ||
+ | > ss.sub <- sum(3 * (m.tot-m.by.er)^2) # 3 treatments (movies) | ||
+ | > df.sub <- 5 - 1 # 5 persons - 1 | ||
+ | > ms.sub <- ss.sub/ | ||
+ | > ms.sub | ||
+ | [1] 43.43333 | ||
+ | > | ||
+ | > ss.res <- ss.with - ss.sub | ||
+ | > ss.res | ||
+ | [1] 142.6667 | ||
+ | > df.res <- 4 * 2 # (N-1)*(k-1) | ||
+ | > ms.res <- ss.res/ | ||
+ | > ms.res | ||
+ | [1] 17.83333 | ||
+ | > | ||
+ | > f.cal <- ms.bet/ | ||
+ | > f.cal | ||
+ | [1] 10.18692 | ||
+ | > pf(f.cal, 2, 8, lower.tail = F) | ||
+ | [1] 0.006319577 | ||
+ | > | ||
+ | > ss.bet | ||
+ | [1] 363.3333 | ||
+ | > ss.with | ||
+ | [1] 316.4 | ||
+ | > ss.sub | ||
+ | [1] 173.7333 | ||
+ | > ss.res | ||
+ | [1] 142.6667 | ||
+ | > df.bet | ||
+ | [1] 2 | ||
+ | > df.with | ||
+ | [1] 12 | ||
+ | > df.sub | ||
+ | [1] 4 | ||
+ | > df.res | ||
+ | [1] 8 | ||
+ | > ms.bet | ||
+ | [1] 181.6667 | ||
+ | > ms.with | ||
+ | [1] 26.36667 | ||
+ | > ms.sub | ||
+ | [1] 43.43333 | ||
+ | > ms.res | ||
+ | [1] 17.83333 | ||
+ | > | ||
+ | > # check | ||
+ | > ss.with == ss.sub + ss.res | ||
+ | [1] TRUE | ||
+ | > df.with == df.sub + df.res | ||
+ | [1] TRUE | ||
+ | > summary(m.aov) | ||
+ | |||
+ | Error: reviewer | ||
+ | Df Sum Sq Mean Sq F value Pr(>F) | ||
+ | Residuals | ||
+ | |||
+ | Error: Within | ||
+ | Df Sum Sq Mean Sq F value Pr(> | ||
+ | movie 2 363.3 181.67 | ||
+ | Residuals | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | ||
+ | > # | ||
+ | > # no embedded | ||
+ | > # understand the meaning of embedded | ||
+ | > m0.aov <- aov(score ~ movie, data = movrev) | ||
+ | > summary(m0.aov) | ||
+ | Df Sum Sq Mean Sq F value Pr(> | ||
+ | movie 2 363.3 181.67 | ||
+ | Residuals | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | ||
+ | > summary(m.aov) | ||
+ | |||
+ | Error: reviewer | ||
+ | Df Sum Sq Mean Sq F value Pr(>F) | ||
+ | Residuals | ||
+ | |||
+ | Error: Within | ||
+ | Df Sum Sq Mean Sq F value Pr(> | ||
+ | movie 2 363.3 181.67 | ||
+ | Residuals | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | ||
+ | > | ||
+ | > | ||
> | > | ||
</ | </ |
r/repeated_measure_anova.1747005725.txt.gz · Last modified: 2025/05/12 08:22 by hkimscil