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 07:48] – [ANOVA e.g.1] hkimscil | c:ma:anova_note [2024/09/23 10:54] (current) – [ANOVA e.g.1] hkimscil | ||
|---|---|---|---|
| Line 131: | Line 131: | ||
| ====== ANOVA e.g.1 ====== | ====== ANOVA e.g.1 ====== | ||
| <code r> | <code r> | ||
| - | # ANOVA | ||
| set.seed(1024) | set.seed(1024) | ||
| - | n <-80 | + | na <-50 |
| - | s1 <- round(rnorm(n, 5.6, 1),0) | + | nb <- 50 |
| - | s2 <- round(rnorm(n, 5.9, 1),0) | + | nc <- 50 |
| - | s3 <- round(rnorm(n, 6.5, 1),0) | + | |
| + | s1 <- round(rnorm(na, 11.6, 2),0) | ||
| + | s2 <- round(rnorm(nb, 12.9, 2),0) | ||
| + | s3 <- round(rnorm(nc, 13.4, 2),0) | ||
| s1 | s1 | ||
| s2 | s2 | ||
| s3 | s3 | ||
| - | sam <- c(s1, | + | sabc <- c(s1, |
| - | sam | + | sabc |
| - | group <- c(rep(" | + | group <- c(rep(" |
| group | group | ||
| - | sa <- data.frame(sam,group) | + | sall <- data.frame(sabc, group) |
| - | sa | + | sall |
| - | attach(sa) | + | attach(sall) |
| - | aov.sa <- aov(sam ~ group, data=sa) | + | aov.sall <- aov(sabc ~ group, data=sall) |
| - | summary(aov.sa) | + | summary(aov.sall) |
| - | df.tot <- (3*n)-1 | + | df.total <- length(sabc) - 1 |
| - | ss.tot <- var(sam)*df.tot | + | ss.total <- var(sabc)*df.total |
| - | var.tot <- var(sam) | + | var.total <- var(sabc) |
| - | df.tot | + | df.total |
| - | ss.tot | + | ss.total |
| - | var.tot | + | var.total |
| + | |||
| + | df.s1 <- na-1 | ||
| + | df.s2 <- nb-1 | ||
| + | df.s3 <- nc-1 | ||
| - | df.bet <- 3 - 1 | ||
| - | df.s1 <- n-1 | ||
| - | df.s2 <- n-1 | ||
| - | df.s3 <- n-1 | ||
| df.within <- df.s1+df.s2+df.s3 | df.within <- df.s1+df.s2+df.s3 | ||
| df.within | df.within | ||
| Line 175: | Line 177: | ||
| ss.within | ss.within | ||
| - | mean.grand <- mean(sam) | + | |
| + | # 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.s1 <- mean(s1) | mean.s1 <- mean(s1) | ||
| mean.s2 <- mean(s2) | mean.s2 <- mean(s2) | ||
| Line 184: | Line 196: | ||
| mean.s3 | mean.s3 | ||
| - | diff.g1 <- n * (mean.grand - mean.s1)^2 | + | error.g1 <- na * (mean.grand - mean.s1)^2 |
| - | diff.g2 <- n * (mean.grand - mean.s2)^2 | + | error.g2 <- nb * (mean.grand - mean.s2)^2 |
| - | diff.g3 <- n * (mean.grand - mean.s3)^2 | + | error.g3 <- nc * (mean.grand - mean.s3)^2 |
| - | diff.g1 | + | error.g1 |
| - | diff.g2 | + | error.g2 |
| - | diff.g3 | + | error.g3 |
| - | ss.bet < | + | ss.between |
| - | ss.bet | + | ss.between |
| # sumup | # sumup | ||
| - | ss.tot | + | ss.total |
| - | ss.bet | + | ss.between |
| ss.within | ss.within | ||
| - | ss.bet+ss.within | + | ss.between |
| + | ss.total | ||
| - | df.tot | + | df.total |
| - | df.bet | + | df.between |
| df.within | df.within | ||
| - | df.bet + df.within | + | df.between |
| - | ms.bet <- ss.bet / df.bet | + | ms.between |
| - | ms.wit <- ss.within / df.within | + | ms.within |
| - | ms.bet | + | ms.between |
| - | ms.wit | + | ms.within |
| - | + | ||
| - | fvalue <- ms.bet/ | + | |
| + | fvalue <- ms.between/ | ||
| fvalue | fvalue | ||
| - | f.res <- (aov(sa$sam~sa$group)) | + | # fvalue에서 판단했을 때 그 판단이 잘못일 확률 |
| + | 1 - pf(fvalue, df.between, df.within) | ||
| + | |||
| + | |||
| + | f.res <- aov(sabc ~ group, data=sall) | ||
| summary(f.res) | summary(f.res) | ||
| + | |||
| + | # for regression | ||
| + | r.res <- lm(sabc ~ group, data=sall) | ||
| + | summary(r.res) | ||
| + | anova(r.res) | ||
| + | summary(r.res)$r.square | ||
| + | |||
| + | ss.total | ||
| + | ss.between | ||
| + | ss.within | ||
| + | |||
| + | # this is r.square value | ||
| + | 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.1726699706.txt.gz · Last modified: by hkimscil
