t-test_summing_up
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| t-test_summing_up [2025/09/18 08:04] – [7] hkimscil | t-test_summing_up [2025/09/18 08:45] (current) – [t-test summing up] hkimscil | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== t-test summing up ====== | ====== t-test summing up ====== | ||
| < | < | ||
| - | |||
| rm(list=ls()) | rm(list=ls()) | ||
| Line 210: | Line 209: | ||
| dat <- stack(comb) | dat <- stack(comb) | ||
| head(dat) | head(dat) | ||
| + | tail(dat) | ||
| m.tot <- mean(s.all) | m.tot <- mean(s.all) | ||
| Line 216: | Line 216: | ||
| ss.tot <- ss(s.all) | ss.tot <- ss(s.all) | ||
| + | bet.s1 <- (m.tot - m.s1)^2 * length(s1) | ||
| + | bet.s2 <- (m.tot - m.s2)^2 * length(s2) | ||
| + | ss.bet <- bet.s1 + bet.s2 | ||
| ss.s1 <- ss(s1) | ss.s1 <- ss(s1) | ||
| ss.s2 <- ss(s2) | ss.s2 <- ss(s2) | ||
| + | ss.wit <- ss.s1+ss.s2 | ||
| - | df.tot <- length(s.all)-1 | + | ss.tot | 
| - | df.s1 <- length(s1)-1 | + | |
| - | df.s2 <- length(s2)-1 | + | |
| - | + | ||
| - | ms.tot <- var(s.all) | + | |
| - | ms.tot | + | |
| - | ss.tot/df.tot | + | |
| - | + | ||
| - | var(s1) | + | |
| - | ss.s1 / df.s1 | + | |
| - | + | ||
| - | var(s2) | + | |
| - | ss.s2 / df.s2 | + | |
| - | + | ||
| - | ss.b.s1 <- length(s1) * ((m.tot - m.s1)^2) | + | |
| - | ss.b.s2 <- length(s2) * ((m.tot - m.s1)^2) | + | |
| - | ss.bet <- ss.b.s1+ss.b.s2 | + | |
| ss.bet | ss.bet | ||
| - | |||
| - | ss.wit <- ss.s1 + ss.s2 | ||
| ss.wit | ss.wit | ||
| + | ss.bet+ss.wit | ||
| - | ss.bet + ss.wit | + | df.tot <- length(s.all) - 1 | 
| - | ss.tot | + | df.bet <- nlevels(dat$ind) - 1 | 
| + | df.s1 <- length(s1)-1 | ||
| + | df.s2 <- length(s2)-1 | ||
| + | df.wit <- df.s1 + df.s2 | ||
| - | library(dplyr) | + | df.tot | 
| - | # df.bet <- length(unique(dat)) - 1 | + | |
| - | df.bet <- nlevels(dat$ind) - 1 | + | |
| - | df.wit <- df.s1+df.s2 | + | |
| df.bet | df.bet | ||
| df.wit | df.wit | ||
| df.bet+df.wit | df.bet+df.wit | ||
| - | df.tot | + | |
| + | ss.tot/ | ||
| + | ms.tot <- ss.tot/df.tot | ||
| ms.bet <- ss.bet / df.bet | ms.bet <- ss.bet / df.bet | ||
| ms.wit <- ss.wit / df.wit | ms.wit <- ss.wit / df.wit | ||
| - | ms.bet | ||
| - | ms.wit | ||
| f.cal <- ms.bet / ms.wit | f.cal <- ms.bet / ms.wit | ||
| f.cal | f.cal | ||
| pf(f.cal, df.bet, df.wit, lower.tail = F) | pf(f.cal, df.bet, df.wit, lower.tail = F) | ||
| - | |||
| f.test <- aov(dat$values~ dat$ind, data = dat) | f.test <- aov(dat$values~ dat$ind, data = dat) | ||
| Line 273: | Line 259: | ||
| t.cal.ts | t.cal.ts | ||
| - | # this is anova after all. | + | # the above is anova after all. | 
| m1 <- lm(dat$values~dat$ind, | m1 <- lm(dat$values~dat$ind, | ||
| Line 287: | Line 273: | ||
| sum.m1$fstatistic[1] | sum.m1$fstatistic[1] | ||
| ms.bet/ | ms.bet/ | ||
| - | |||
| </ | </ | ||
| ====== t-test summing up output ====== | ====== t-test summing up output ====== | ||
| Line 316: | Line 301: | ||
| </ | </ | ||
| - | ==== 2 ==== | + | ===== 2 ===== | 
| <WRAP group> | <WRAP group> | ||
| Line 357: | Line 342: | ||
| </ | </ | ||
| - | ==== 3 ==== | + | ===== 3 ===== | 
| <WRAP group> | <WRAP group> | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 396: | Line 381: | ||
| </ | </ | ||
| - | ==== 4 ==== | + | ===== 4 ===== | 
| <WRAP group> | <WRAP group> | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 439: | Line 424: | ||
| </ | </ | ||
| - | ==== 5 ==== | + | ===== 5 ===== | 
| <WRAP group> | <WRAP group> | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 505: | Line 490: | ||
| </ | </ | ||
| - | ==== 6 ==== | + | ===== 6 ===== | 
| <WRAP group> | <WRAP group> | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 587: | Line 572: | ||
| </ | </ | ||
| - | ==== 7 ==== | + | ===== 7 ===== | 
| <WRAP group> | <WRAP group> | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 639: | Line 624: | ||
| - | ==== 8 ==== | + | ===== 8 t-test and anova ===== | 
| <WRAP group> | <WRAP group> | ||
| <WRAP column half> | <WRAP column half> | ||
| < | < | ||
| - | |||
| > # 2 샘플 히스토그램을 이용해서 | > # 2 샘플 히스토그램을 이용해서 | ||
| > # anova 설명하기 | > # anova 설명하기 | ||
| > s.all <- c(s1,s2) | > s.all <- c(s1,s2) | ||
| > mean(s.all) # 두 집단을 합친 | > mean(s.all) # 두 집단을 합친 | ||
| - | [1] 105.2578 | + | [1] 104.7682 | 
| > # 종속변인의 평균 (아래 히스토 | > # 종속변인의 평균 (아래 히스토 | ||
| > # 그램에서 검정색). | > # 그램에서 검정색). | ||
| Line 659: | Line 643: | ||
| +        col=c(" | +        col=c(" | ||
| > | > | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP column half> | ||
| + | ..................................... | ||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== 9 ===== | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP column half> | ||
| + | < | ||
| > comb <- data.frame(s1, | > comb <- data.frame(s1, | ||
| > dat <- stack(comb) | > dat <- stack(comb) | ||
| > head(dat) | > head(dat) | ||
|  |  | ||
| - | 1 91.92427 s1 | + | 1 106.26706 s1 | 
| - | 2 95.79303 s1 | + | 2 101.89180 s1 | 
| - | 3 | + | 3 | 
| - | 4 100.25380 s1 | + | 4 93.82977 s1 | 
| - | 5 | + | 5 | 
| - | 6 93.33263 s1 | + | 6 100.47300 s1 | 
| + | > tail(dat) | ||
| + |  | ||
| + | 195 111.33398 | ||
| + | 196 115.99752 | ||
| + | 197 109.85412 | ||
| + | 198 126.80207 | ||
| + | 199  99.13395 | ||
| + | 200 130.01417 | ||
| > | > | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP column half> | ||
| + | ..................................... | ||
| + | </ | ||
| + | </ | ||
| + | ===== 10 ===== | ||
| + | <WRAP group> | ||
| + | <WRAP column half> | ||
| + | < | ||
| > m.tot <- mean(s.all) | > m.tot <- mean(s.all) | ||
| > m.s1 <- mean(s1) | > m.s1 <- mean(s1) | ||
| Line 675: | Line 690: | ||
| > | > | ||
| > ss.tot <- ss(s.all) | > ss.tot <- ss(s.all) | ||
| + | > bet.s1 <- (m.tot - m.s1)^2 * length(s1) | ||
| + | > bet.s2 <- (m.tot - m.s2)^2 * length(s2) | ||
| + | > ss.bet <- bet.s1 + bet.s2 | ||
| > ss.s1 <- ss(s1) | > ss.s1 <- ss(s1) | ||
| > ss.s2 <- ss(s2) | > ss.s2 <- ss(s2) | ||
| + | > ss.wit <- ss.s1+ss.s2 | ||
| > | > | ||
| - | > df.tot <- length(s.all)-1 | + | > ss.tot | 
| - | > df.s1 <- length(s1)-1 | + | [1] 25203.89 | 
| - | > df.s2 <- length(s2)-1 | + | |
| - | > | + | |
| - | > ms.tot <- var(s.all) | + | |
| - | > ms.tot | + | |
| - | [1] 102.7294 | + | |
| - | > ss.tot/df.tot | + | |
| - | [1] 102.7294 | + | |
| - | > | + | |
| - | > var(s1) | + | |
| - | [1] 79.10726 | + | |
| - | > ss.s1 / df.s1 | + | |
| - | [1] 79.10726 | + | |
| - | > | + | |
| - | > var(s2) | + | |
| - | [1] 78.88246 | + | |
| - | > ss.s2 / df.s2 | + | |
| - | [1] 78.88246 | + | |
| - | > | + | |
| - | > ss.b.s1 <- length(s1) * ((m.tot - m.s1)^2) | + | |
| - | > ss.b.s2 <- length(s2) * ((m.tot - m.s1)^2) | + | |
| - | > ss.bet <- ss.b.s1+ss.b.s2 | + | |
| > ss.bet | > ss.bet | ||
| - | [1] 4802.167 | + | [1] 4219.463 | 
| - | > | + | |
| - | > ss.wit <- ss.s1 + ss.s2 | + | |
| > ss.wit | > ss.wit | ||
| - | [1] 15640.98 | + | [1] 20984.43 | 
| + | > ss.bet+ss.wit | ||
| + | [1] 25203.89 | ||
| > | > | ||
| - | > ss.bet + ss.wit | + | > df.tot <- length(s.all) - 1 | 
| - | [1] 20443.15 | + | |
| - | > ss.tot | + | |
| - | [1] 20443.15 | + | |
| - | > | + | |
| - | > library(dplyr) | + | |
| - | > # df.bet | + | |
| > df.bet <- nlevels(dat$ind) - 1 | > df.bet <- nlevels(dat$ind) - 1 | ||
| - | > df.wit <- df.s1+df.s2 | + | > df.s1 <- length(s1)-1 | 
| + | > df.s2 <- length(s2)-1 | ||
| + | > df.wit <- df.s1 + df.s2 | ||
| + | > | ||
| + | > df.tot | ||
| + | [1] 199 | ||
| > df.bet | > df.bet | ||
| [1] 1 | [1] 1 | ||
| Line 722: | Line 719: | ||
| [1] 198 | [1] 198 | ||
| > df.bet+df.wit | > df.bet+df.wit | ||
| - | [1] 199 | ||
| - | > df.tot | ||
| [1] 199 | [1] 199 | ||
| + | > | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP column half> | ||
| + | ............................. | ||
| + | {{: | ||
| + | * ss.between 은 두개의 집단과 그 집단의 평균으로 이루어진 분산에서의 ss값을 말한다. | ||
| + | * 그림에서 녹색선 위에 s1의 원소들이 모여있고 | ||
| + | * 붉은색 선위에 s2원소들이 모여 있다고치면 | ||
| + | * 이 분산은 그룹간 분산이 (between group variance) 된다. | ||
| + | * 이를 구하기 위해서 ss.bet의 공식을 사용한다. | ||
| + | * ss.within의 경우에는 간단히 s1과 s2 집단의 ss값을 구하는 것으로 | ||
| + | * 스크립트 초반에 언급된 ss값을 이용해서 구한후 더한다. | ||
| + | |||
| + | * df.between은 그룹의 숫자에서 1을 뺀 숫자 | ||
| + | * df.within은 각 그룹내의 구성원에서 1을 뺀 후, 모두 더한 숫자이다 | ||
| + | * df.total은 전체 구성원에서 1을 빼거나, df.bet + df.wit | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== 11 ===== | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP column half> | ||
| + | < | ||
| + | > ss.tot/ | ||
| + | [1] 126.6527 | ||
| + | > ms.tot <- ss.tot/ | ||
| > | > | ||
| > ms.bet <- ss.bet / df.bet | > ms.bet <- ss.bet / df.bet | ||
| > ms.wit <- ss.wit / df.wit | > ms.wit <- ss.wit / df.wit | ||
| - | > ms.bet | ||
| - | [1] 4802.167 | ||
| - | > ms.wit | ||
| - | [1] 78.99486 | ||
| > | > | ||
| > f.cal <- ms.bet / ms.wit | > f.cal <- ms.bet / ms.wit | ||
| > f.cal | > f.cal | ||
| - | [1] 60.79088 | + | [1] 39.81302 | 
| > pf(f.cal, df.bet, df.wit, lower.tail = F) | > pf(f.cal, df.bet, df.wit, lower.tail = F) | ||
| - | [1] 3.537633e-13 | + | [1] 1.792613e-09 | 
| - | > | + | |
| > | > | ||
| > f.test <- aov(dat$values~ dat$ind, data = dat) | > f.test <- aov(dat$values~ dat$ind, data = dat) | ||
| Line 744: | Line 762: | ||
| > sum.f.test | > sum.f.test | ||
| Df Sum Sq Mean Sq F value | Df Sum Sq Mean Sq F value | ||
| - | dat$ind | + | dat$ind | 
| - | Residuals | + | Residuals | 
| --- | --- | ||
| Signif. codes: | Signif. codes: | ||
| Line 751: | Line 769: | ||
| > | > | ||
| > sum.f.test[[1]][1, | > sum.f.test[[1]][1, | ||
| - | [1] 60.79088 | + | [1] 39.81302 | 
| > sum.f.test[[1]][1, | > sum.f.test[[1]][1, | ||
| - | [1] 3.537633e-13 | + | [1] 1.792613e-09 | 
| > sqrt(f.cal) | > sqrt(f.cal) | ||
| - | [1] 7.79685 | + | [1] 6.309756 | 
| > t.cal.ts | > t.cal.ts | ||
| - | [1] -7.79685 | + | [1] -6.309756 | 
| > | > | ||
| - | > # this is anova after all. | + | > # the above is anova after all. | 
| > | > | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP column half> | ||
| + | ............................. | ||
| + | * 위에서 구한 ss 값들을 가지고 분산값을 구할 수 있다 (ms = mean square = variance) | ||
| + | * ms.between은 ss.bet/ | ||
| + | * ms.within은 ss.wit/ | ||
| + | * 이 둘의 비율을 F값이라고 하고, 이는 기본적으로 | ||
| + | * group difference 를 random difference 로 나눈 값을 말하고 이는 | ||
| + | * t-test의 difference/ | ||
| + | |||
| + | * 따라서, 분산을 이용해서 구한 F값은 표준편차를 이용해서 구한 t값의 제곱값을 갖게 된다. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== 12 ===== | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP column half> | ||
| + | < | ||
| > m1 <- lm(dat$values~dat$ind, | > m1 <- lm(dat$values~dat$ind, | ||
| > sum.m1 <- summary(m1) | > sum.m1 <- summary(m1) | ||
| Line 769: | Line 807: | ||
| Residuals: | Residuals: | ||
| - | Min | + | Min       1Q | 
| - | -33.566 -5.983 0.021 6.084 21.973 | + | -31.4177 -5.7058 0.4976 6.2952 29.2586 | 
| Coefficients: | Coefficients: | ||
| Estimate Std. Error t value Pr(> | Estimate Std. Error t value Pr(> | ||
| - | (Intercept) 100.3577 0.8888 112.915 < 2e-16 *** | + | (Intercept) | 
| - | dat$inds2 | + | dat$inds2 | 
| --- | --- | ||
| Signif. codes: | Signif. codes: | ||
| - | Residual standard error: | + | Residual standard error: | 
| - | Multiple R-squared: | + | Multiple R-squared: | 
| - | F-statistic: | + | F-statistic: | 
| > | > | ||
| > sum.m1$r.square | > sum.m1$r.square | ||
| - | [1] 0.2349035 | + | [1] 0.1674131 | 
| > ss.bet # 독립변인인 s1, s2의 그룹 | > ss.bet # 독립변인인 s1, s2의 그룹 | ||
| - | [1] 4802.167 | + | [1] 4219.463 | 
| > # 구분으로 설명된 ss.tot 중의 일부 | > # 구분으로 설명된 ss.tot 중의 일부 | ||
| > ss.tot # y 전체의 uncertainty | > ss.tot # y 전체의 uncertainty | ||
| - | [1] 20443.15 | + | [1] 25203.89 | 
| > ss.bet/ | > ss.bet/ | ||
| - | [1] 0.2349035 | + | [1] 0.1674131 | 
| > | > | ||
| > sum.m1$fstatistic[1] | > sum.m1$fstatistic[1] | ||
|  |  | ||
| - | 60.79088 | + | 39.81302 | 
| > ms.bet/ | > ms.bet/ | ||
| - | [1] 60.79088 | + | [1] 39.81302 | 
| > | > | ||
| > | > | ||
| Line 805: | Line 843: | ||
| <WRAP column half> | <WRAP column half> | ||
| ................................ | ................................ | ||
| + | * ss.tot 은 s1그룹과 s2그룹의 값을 한줄에 배열하여 구하는 종속변인의 (dat$values) ss값을 말한다. 즉, 독립변이 없을 때의 종속변인의 uncertainty를 말한다. | ||
| + | * ss.bet은 독립변인이 고려됨으로써 설명된 종속부분의 일부를 말한다. | ||
| + | * ss.tot = ss.bet + ss.wit | ||
| + | * total uncertainty (a) = treatment effect (b) + random effect | ||
| + | * b/a를 R square값이라고 부른다. | ||
| </ | </ | ||
| </ | </ | ||
t-test_summing_up.1758150276.txt.gz · Last modified:  by hkimscil
                
                