r:oneway_anova
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
r:oneway_anova [2020/10/12 15:50] – hkimscil | r:oneway_anova [2022/04/28 10:26] (current) – [data] hkimscil | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Oneway ANOVA ====== | ====== Oneway ANOVA ====== | ||
+ | ===== data ===== | ||
+ | see https:// | ||
+ | |||
| (온도조건)x1 | | (온도조건)x1 | ||
| (온도조건)x2 | | (온도조건)x2 | ||
Line 160: | Line 163: | ||
30 46.2 hi | 30 46.2 hi | ||
</ | </ | ||
+ | ===== ANOVA by hand ===== | ||
< | < | ||
- | mean.xs <- tapply(xs$score, | + | mean.by.group.xs <- tapply(xs$score, |
- | var.xs <- tapply(xs$score, | + | var.by.group.xs <- tapply(xs$score, |
- | n.xs <- tapply(xs$score, | + | n.by.group.xs <- tapply(xs$score, |
- | df.xs <- n.xs-1 | + | df.by.group.xs <- n.xs-1 |
- | mean.xs | + | mean.by.group.xs |
- | var.xs | + | var.by.group.xs |
- | n.xs | + | n.by.group.xs |
- | df.xs | + | df.by.group.xs |
</ | </ | ||
< | < | ||
- | > mean.xs <- tapply(xs$score, | + | > mean.by.group.xs <- tapply(xs$score, |
- | > var.xs <- tapply(xs$score, | + | > var.by.group.xs <- tapply(xs$score, |
- | > n.xs <- tapply(xs$score, | + | > n.by.group.xs <- tapply(xs$score, |
- | > df.xs <- n.xs-1 | + | > df.by.group.xs <- n.xs-1 |
+ | > ss.within <- sum(var.by.group.xs * df.by.group.xs) | ||
> | > | ||
- | > mean.xs | + | > mean.by.group.xs |
low | low | ||
51.46 46.94 46.35 | 51.46 46.94 46.35 | ||
- | > var.xs | + | > var.by.group.xs |
low | low | ||
0.4671111 1.0848889 0.6027778 | 0.4671111 1.0848889 0.6027778 | ||
- | > n.xs | + | > n.by.group.xs |
low mid hi | low mid hi | ||
| | ||
- | > df.xs | + | > df.by.group.xs |
low mid hi | low mid hi | ||
9 | 9 | ||
Line 194: | Line 198: | ||
</ | </ | ||
+ | < | ||
+ | mean.xs <- mean(xs$score) | ||
+ | n.total <- length(xs$score) | ||
+ | df.total <- n.total-1 | ||
+ | n.group.xs <- 3 | ||
+ | df.between <- n.group.xs -1 | ||
+ | df.within <- sum(df.by.group.xs) | ||
+ | n.total | ||
+ | df.total | ||
+ | df.between | ||
+ | df.within | ||
+ | |||
+ | ss.total <- var(xs$score) * (length(xs$score)-1) | ||
+ | ss.total <- var(xs$score) * df.total | ||
+ | ss.between <- sum(n.by.group.xs * (mean.by.group.xs - mean.xs)^2) | ||
+ | ss.within <- sum(var.by.group.xs * df.by.group.xs) | ||
+ | ss.total | ||
+ | ss.between | ||
+ | ss.within | ||
+ | ss.total | ||
+ | ss.between + ss.within | ||
+ | |||
+ | ms.between <- ss.between/ | ||
+ | ms.within <- ss.within/ | ||
+ | ms.total <- ss.total/ | ||
+ | |||
+ | ms.total | ||
+ | ms.between | ||
+ | ms.within | ||
+ | |||
+ | f.calculated <- ms.between/ | ||
+ | f.calculated | ||
+ | var(xs$score) | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | > mean.xs <- mean(xs$score) | ||
+ | > n.total <- length(xs$score) | ||
+ | > df.total <- n.total-1 | ||
+ | > n.group.xs <- 3 | ||
+ | > df.between <- n.group.xs -1 | ||
+ | > df.within <- sum(df.by.group.xs) | ||
+ | > n.total | ||
+ | [1] 30 | ||
+ | > df.total | ||
+ | [1] 29 | ||
+ | > df.between | ||
+ | [1] 2 | ||
+ | > df.within | ||
+ | [1] 27 | ||
+ | > | ||
+ | > ss.total <- var(xs$score) * (length(xs$score)-1) | ||
+ | > ss.total <- var(xs$score) * df.total | ||
+ | > ss.between <- sum(n.by.group.xs * (mean.by.group.xs - mean.xs)^2) | ||
+ | > ss.within <- sum(var.by.group.xs * df.by.group.xs) | ||
+ | > ss.total | ||
+ | [1] 175.695 | ||
+ | > ss.between | ||
+ | [1] 156.302 | ||
+ | > ss.within | ||
+ | [1] 19.393 | ||
+ | > ss.total | ||
+ | [1] 175.695 | ||
+ | > ss.between + ss.within | ||
+ | [1] 175.695 | ||
+ | > | ||
+ | > ms.between <- ss.between/ | ||
+ | > ms.within <- ss.within/ | ||
+ | > ms.total <- ss.total/ | ||
+ | > | ||
+ | > ms.total | ||
+ | [1] 6.058448 | ||
+ | > ms.between | ||
+ | [1] 78.151 | ||
+ | > ms.within | ||
+ | [1] 0.7182593 | ||
+ | > | ||
+ | > f.calculated <- ms.between/ | ||
+ | > f.calculated | ||
+ | [1] 108.8061 | ||
+ | > var(xs$score) | ||
+ | [1] 6.058448 | ||
+ | > | ||
+ | </ | ||
+ | ===== ANOVA function (aov) ===== | ||
+ | |||
+ | < | ||
+ | x.mod <- aov(score~temp, | ||
+ | x.mod | ||
+ | summary(x.mod) | ||
+ | TukeyHSD(x.mod) | ||
+ | </ | ||
< | < | ||
- | > x.mod <- aov(values~ind,data=xs) | + | > x.mod <- aov(score~temp, data=xs) |
> x.mod | > x.mod | ||
Call: | Call: | ||
- | | + | |
Terms: | Terms: | ||
- | ind Residuals | + | |
Sum of Squares | Sum of Squares | ||
Deg. of Freedom | Deg. of Freedom | ||
Line 210: | Line 307: | ||
> summary(x.mod) | > summary(x.mod) | ||
Df Sum Sq Mean Sq F value Pr(> | Df Sum Sq Mean Sq F value Pr(> | ||
- | ind | + | temp 2 156.30 |
Residuals | Residuals | ||
--- | --- | ||
Line 220: | Line 317: | ||
95% family-wise confidence level | 95% family-wise confidence level | ||
- | Fit: aov(formula = values | + | Fit: aov(formula = score ~ temp, data = xs) |
- | $ind | + | $temp |
- | | + | |
- | x2-x1 -4.52 -5.459735 -3.5802652 0.0000000 | + | mid-low -4.52 -5.459735 -3.5802652 0.0000000 |
- | x3-x1 -5.11 -6.049735 -4.1702652 0.0000000 | + | hi-low |
- | x3-x2 -0.59 -1.529735 | + | hi-mid |
- | + | ||
- | </ | + | |
- | + | ||
- | < | + | |
- | | + | |
- | 51.46 46.94 46.35 </ | + | |
- | + | ||
- | + | ||
- | SS< | + | |
- | < | + | |
- | > mx1 <- mean(x1) | + | |
- | > mx2 <- mean(x2) | + | |
- | > mx3 <- mean(x3) | + | |
- | + | ||
- | > x2ss <- 10*((meanxs - mx2)^2) | + | |
- | > x3ss <- 10*((meanxs - mx3)^2) | + | |
- | > x1ss <- 10*((meanxs - mx1)^2) | + | |
- | > xss <- x1ss+x2ss+x3ss | + | |
- | > xss | + | |
- | [1] 156.302 | + | |
- | </ | + | |
+ | > </ | ||
====== E.g. 1 ====== | ====== E.g. 1 ====== |
r/oneway_anova.1602485447.txt.gz · Last modified: 2020/10/12 15:50 by hkimscil