c:ma:anova_note
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
c:ma:anova_note [2024/09/19 08:31] – [ANOVA e.g.1] hkimscil | c:ma:anova_note [2024/09/23 10:54] (current) – [ANOVA e.g.1] hkimscil | ||
---|---|---|---|
Line 160: | Line 160: | ||
ss.total | ss.total | ||
var.total | var.total | ||
- | |||
- | # for uniqueN function data.table required | ||
- | # install.packages(" | ||
- | library(data.table) | ||
- | uniqueN(sall, | ||
- | nofg <- uniqueN(sall, | ||
- | nofg | ||
- | df.between <- nofg - 1 | ||
- | df.between | ||
df.s1 <- na-1 | df.s1 <- na-1 | ||
Line 185: | Line 176: | ||
ss.within <- ss.s1+ss.s2+ss.s3 | ss.within <- ss.s1+ss.s2+ss.s3 | ||
ss.within | ss.within | ||
+ | |||
+ | |||
+ | # for uniqueN function data.table required | ||
+ | # install.packages(" | ||
+ | library(data.table) | ||
+ | uniqueN(sall, | ||
+ | nofg <- uniqueN(sall, | ||
+ | nofg | ||
+ | df.between <- nofg - 1 | ||
+ | df.between | ||
mean.grand <- mean(sabc) | mean.grand <- mean(sabc) | ||
Line 225: | Line 226: | ||
fvalue <- ms.between/ | fvalue <- ms.between/ | ||
fvalue | fvalue | ||
+ | |||
+ | # fvalue에서 판단했을 때 그 판단이 잘못일 확률 | ||
+ | 1 - pf(fvalue, df.between, df.within) | ||
+ | |||
f.res <- aov(sabc ~ group, data=sall) | f.res <- aov(sabc ~ group, data=sall) | ||
Line 241: | Line 246: | ||
# this is r.square value | # this is r.square value | ||
ss.between/ | ss.between/ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | > set.seed(1024) | ||
+ | > na <-50 | ||
+ | > nb <- 50 | ||
+ | > nc <- 50 | ||
+ | > | ||
+ | > s1 <- round(rnorm(na, | ||
+ | > s2 <- round(rnorm(nb, | ||
+ | > s3 <- round(rnorm(nc, | ||
+ | > s1 | ||
+ | [1] 10 11 8 10 12 7 11 16 14 13 8 9 14 12 11 15 9 11 10 9 11 13 15 14 11 11 12 13 10 13 10 12 | ||
+ | [33] 14 11 14 11 14 11 10 11 11 14 10 9 14 13 10 10 7 13 | ||
+ | > s2 | ||
+ | [1] 12 12 16 14 12 12 12 12 11 12 13 12 10 13 15 12 12 18 14 13 13 13 17 13 13 14 11 13 13 11 14 15 | ||
+ | [33] 11 12 10 14 13 12 14 15 13 10 10 17 12 14 14 16 13 12 | ||
+ | > s3 | ||
+ | [1] 13 12 12 16 14 14 9 12 11 14 15 13 7 17 16 12 12 12 9 11 12 16 17 13 18 14 14 12 15 11 13 12 | ||
+ | [33] 13 10 14 10 15 10 11 14 10 14 14 13 13 13 11 11 12 11 | ||
+ | > | ||
+ | > sabc <- c(s1,s2,s3) | ||
+ | > sabc | ||
+ | [1] 10 11 8 10 12 7 11 16 14 13 8 9 14 12 11 15 9 11 10 9 11 13 15 14 11 11 12 13 10 13 10 12 | ||
+ | [33] 14 11 14 11 14 11 10 11 11 14 10 9 14 13 10 10 7 13 12 12 16 14 12 12 12 12 11 12 13 12 10 13 | ||
+ | [65] 15 12 12 18 14 13 13 13 17 13 13 14 11 13 13 11 14 15 11 12 10 14 13 12 14 15 13 10 10 17 12 14 | ||
+ | [97] 14 16 13 12 13 12 12 16 14 14 9 12 11 14 15 13 7 17 16 12 12 12 9 11 12 16 17 13 18 14 14 12 | ||
+ | [129] 15 11 13 12 13 10 14 10 15 10 11 14 10 14 14 13 13 13 11 11 12 11 | ||
+ | > group <- c(rep(" | ||
+ | > group | ||
+ | [1] " | ||
+ | [20] " | ||
+ | [39] " | ||
+ | [58] " | ||
+ | [77] " | ||
+ | [96] " | ||
+ | [115] " | ||
+ | [134] " | ||
+ | > | ||
+ | > sall <- data.frame(sabc, | ||
+ | > sall | ||
+ | sabc group | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 8 g1 | ||
+ | 4 | ||
+ | 5 | ||
+ | 6 7 g1 | ||
+ | 7 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 13 g1 | ||
+ | 11 | ||
+ | 12 | ||
+ | 13 14 g1 | ||
+ | 14 12 g1 | ||
+ | 15 11 g1 | ||
+ | 16 15 g1 | ||
+ | 17 | ||
+ | 18 11 g1 | ||
+ | 19 10 g1 | ||
+ | 20 | ||
+ | 21 11 g1 | ||
+ | 22 13 g1 | ||
+ | 23 15 g1 | ||
+ | 24 14 g1 | ||
+ | 25 11 g1 | ||
+ | 26 11 g1 | ||
+ | 27 12 g1 | ||
+ | 28 13 g1 | ||
+ | 29 10 g1 | ||
+ | 30 13 g1 | ||
+ | 31 10 g1 | ||
+ | 32 12 g1 | ||
+ | 33 14 g1 | ||
+ | 34 11 g1 | ||
+ | 35 14 g1 | ||
+ | 36 11 g1 | ||
+ | 37 14 g1 | ||
+ | 38 11 g1 | ||
+ | 39 10 g1 | ||
+ | 40 11 g1 | ||
+ | 41 11 g1 | ||
+ | 42 14 g1 | ||
+ | 43 10 g1 | ||
+ | 44 | ||
+ | 45 14 g1 | ||
+ | 46 13 g1 | ||
+ | 47 10 g1 | ||
+ | 48 10 g1 | ||
+ | 49 | ||
+ | 50 13 g1 | ||
+ | 51 12 g2 | ||
+ | 52 12 g2 | ||
+ | 53 16 g2 | ||
+ | 54 14 g2 | ||
+ | 55 12 g2 | ||
+ | 56 12 g2 | ||
+ | 57 12 g2 | ||
+ | 58 12 g2 | ||
+ | 59 11 g2 | ||
+ | 60 12 g2 | ||
+ | 61 13 g2 | ||
+ | 62 12 g2 | ||
+ | 63 10 g2 | ||
+ | 64 13 g2 | ||
+ | 65 15 g2 | ||
+ | 66 12 g2 | ||
+ | 67 12 g2 | ||
+ | 68 18 g2 | ||
+ | 69 14 g2 | ||
+ | 70 13 g2 | ||
+ | 71 13 g2 | ||
+ | 72 13 g2 | ||
+ | 73 17 g2 | ||
+ | 74 13 g2 | ||
+ | 75 13 g2 | ||
+ | 76 14 g2 | ||
+ | 77 11 g2 | ||
+ | 78 13 g2 | ||
+ | 79 13 g2 | ||
+ | 80 11 g2 | ||
+ | 81 14 g2 | ||
+ | 82 15 g2 | ||
+ | 83 11 g2 | ||
+ | 84 12 g2 | ||
+ | 85 10 g2 | ||
+ | 86 14 g2 | ||
+ | 87 13 g2 | ||
+ | 88 12 g2 | ||
+ | 89 14 g2 | ||
+ | 90 15 g2 | ||
+ | 91 13 g2 | ||
+ | 92 10 g2 | ||
+ | 93 10 g2 | ||
+ | 94 17 g2 | ||
+ | 95 12 g2 | ||
+ | 96 14 g2 | ||
+ | 97 14 g2 | ||
+ | 98 16 g2 | ||
+ | 99 13 g2 | ||
+ | 100 | ||
+ | 101 | ||
+ | 102 | ||
+ | 103 | ||
+ | 104 | ||
+ | 105 | ||
+ | 106 | ||
+ | 107 9 g3 | ||
+ | 108 | ||
+ | 109 | ||
+ | 110 | ||
+ | 111 | ||
+ | 112 | ||
+ | 113 7 g3 | ||
+ | 114 | ||
+ | 115 | ||
+ | 116 | ||
+ | 117 | ||
+ | 118 | ||
+ | 119 9 g3 | ||
+ | 120 | ||
+ | 121 | ||
+ | 122 | ||
+ | 123 | ||
+ | 124 | ||
+ | 125 | ||
+ | 126 | ||
+ | 127 | ||
+ | 128 | ||
+ | 129 | ||
+ | 130 | ||
+ | 131 | ||
+ | 132 | ||
+ | 133 | ||
+ | 134 | ||
+ | 135 | ||
+ | 136 | ||
+ | 137 | ||
+ | 138 | ||
+ | 139 | ||
+ | 140 | ||
+ | 141 | ||
+ | 142 | ||
+ | 143 | ||
+ | 144 | ||
+ | 145 | ||
+ | 146 | ||
+ | 147 | ||
+ | 148 | ||
+ | 149 | ||
+ | 150 | ||
+ | > attach(sall) | ||
+ | The following objects are masked _by_ .GlobalEnv: | ||
+ | |||
+ | group, sabc | ||
+ | |||
+ | > aov.sall <- aov(sabc ~ group, data=sall) | ||
+ | > summary(aov.sall) | ||
+ | Df Sum Sq Mean Sq F value | ||
+ | group | ||
+ | Residuals | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | > | ||
+ | > df.total <- length(sabc) - 1 | ||
+ | > ss.total <- var(sabc)*df.total | ||
+ | > var.total <- var(sabc) | ||
+ | > df.total | ||
+ | [1] 149 | ||
+ | > ss.total | ||
+ | [1] 695.5733 | ||
+ | > var.total | ||
+ | [1] 4.668277 | ||
+ | > | ||
+ | > df.s1 <- na-1 | ||
+ | > df.s2 <- nb-1 | ||
+ | > df.s3 <- nc-1 | ||
+ | > | ||
+ | > df.within <- df.s1+df.s2+df.s3 | ||
+ | > df.within | ||
+ | [1] 147 | ||
+ | > | ||
+ | > ss.s1 <- var(s1)*df.s1 | ||
+ | > ss.s2 <- var(s2)*df.s2 | ||
+ | > ss.s3 <- var(s3)*df.s3 | ||
+ | > ss.s1 | ||
+ | [1] 222.32 | ||
+ | > ss.s2 | ||
+ | [1] 160.98 | ||
+ | > ss.s3 | ||
+ | [1] 243.62 | ||
+ | > ss.within <- ss.s1+ss.s2+ss.s3 | ||
+ | > ss.within | ||
+ | [1] 626.92 | ||
+ | > | ||
+ | > | ||
+ | > # for uniqueN function data.table required | ||
+ | > # install.packages(" | ||
+ | > library(data.table) | ||
+ | data.table 1.14.8 using 8 threads (see ? | ||
+ | > uniqueN(sall, | ||
+ | [1] 3 | ||
+ | > nofg <- uniqueN(sall, | ||
+ | > nofg | ||
+ | [1] 3 | ||
+ | > df.between <- nofg - 1 | ||
+ | > df.between | ||
+ | [1] 2 | ||
+ | > | ||
+ | > mean.grand <- mean(sabc) | ||
+ | > mean.s1 <- mean(s1) | ||
+ | > mean.s2 <- mean(s2) | ||
+ | > mean.s3 <- mean(s3) | ||
+ | > mean.grand | ||
+ | [1] 12.38667 | ||
+ | > mean.s1 | ||
+ | [1] 11.44 | ||
+ | > mean.s2 | ||
+ | [1] 12.98 | ||
+ | > mean.s3 | ||
+ | [1] 12.74 | ||
+ | > | ||
+ | > error.g1 <- na * (mean.grand - mean.s1)^2 | ||
+ | > error.g2 <- nb * (mean.grand - mean.s2)^2 | ||
+ | > error.g3 <- nc * (mean.grand - mean.s3)^2 | ||
+ | > | ||
+ | > error.g1 | ||
+ | [1] 44.80889 | ||
+ | > error.g2 | ||
+ | [1] 17.60222 | ||
+ | > error.g3 | ||
+ | [1] 6.242222 | ||
+ | > | ||
+ | > ss.between <- error.g1 + error.g2 + error.g3 | ||
+ | > ss.between | ||
+ | [1] 68.65333 | ||
+ | > | ||
+ | > # sumup | ||
+ | > ss.total | ||
+ | [1] 695.5733 | ||
+ | > ss.between | ||
+ | [1] 68.65333 | ||
+ | > ss.within | ||
+ | [1] 626.92 | ||
+ | > ss.between + ss.within | ||
+ | [1] 695.5733 | ||
+ | > ss.total | ||
+ | [1] 695.5733 | ||
+ | > | ||
+ | > df.total | ||
+ | [1] 149 | ||
+ | > df.between | ||
+ | [1] 2 | ||
+ | > df.within | ||
+ | [1] 147 | ||
+ | > df.between + df.within | ||
+ | [1] 149 | ||
+ | > | ||
+ | > ms.between <- ss.between / df.between | ||
+ | > ms.within <- ss.within / df.within | ||
+ | > ms.between | ||
+ | [1] 34.32667 | ||
+ | > ms.within | ||
+ | [1] 4.264762 | ||
+ | > | ||
+ | > fvalue <- ms.between/ | ||
+ | > fvalue | ||
+ | [1] 8.048906 | ||
+ | > | ||
+ | > # fvalue에서 판단했을 때 그 판단이 잘못일 확률 | ||
+ | > 1 - pf(fvalue, df.between, df.within) | ||
+ | [1] 0.0004818216 | ||
+ | > | ||
+ | > | ||
+ | > f.res <- aov(sabc ~ group, data=sall) | ||
+ | > summary(f.res) | ||
+ | Df Sum Sq Mean Sq F value | ||
+ | group | ||
+ | Residuals | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | > | ||
+ | > # for regression | ||
+ | > r.res <- lm(sabc ~ group, data=sall) | ||
+ | > summary(r.res) | ||
+ | |||
+ | Call: | ||
+ | lm(formula = sabc ~ group, data = sall) | ||
+ | |||
+ | Residuals: | ||
+ | | ||
+ | | ||
+ | |||
+ | Coefficients: | ||
+ | Estimate Std. Error t value Pr(> | ||
+ | (Intercept) | ||
+ | groupg2 | ||
+ | groupg3 | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | |||
+ | Residual standard error: 2.065 on 147 degrees of freedom | ||
+ | Multiple R-squared: | ||
+ | F-statistic: | ||
+ | |||
+ | > anova(r.res) | ||
+ | Analysis of Variance Table | ||
+ | |||
+ | Response: sabc | ||
+ | Df Sum Sq Mean Sq F value Pr(> | ||
+ | group | ||
+ | Residuals 147 626.92 | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | > summary(r.res)$r.square | ||
+ | [1] 0.09870035 | ||
+ | > | ||
+ | > ss.total | ||
+ | [1] 695.5733 | ||
+ | > ss.between | ||
+ | [1] 68.65333 | ||
+ | > ss.within | ||
+ | [1] 626.92 | ||
+ | > | ||
+ | > # this is r.square value | ||
+ | > ss.between/ | ||
+ | [1] 0.09870035 | ||
+ | > | ||
</ | </ | ||
====== ANOVA e.g. 2 ====== | ====== ANOVA e.g. 2 ====== |
c/ma/anova_note.1726702292.txt.gz · Last modified: 2024/09/19 08:31 by hkimscil