anova_note:output01
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| anova_note:output01 [2025/12/05 15:03] – created hkimscil | anova_note:output01 [2025/12/09 22:54] (current) – hkimscil | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| < | < | ||
| + | > | ||
| > rm(list=ls()) | > rm(list=ls()) | ||
| - | > # set.seed(101) | + | > rnorm2 <- function(n, |
| - | > rnorm2 <- function(n, | + | + mean+sd*scale(rnorm(n)) |
| + | + } | ||
| > ss <- function(x) { | > ss <- function(x) { | ||
| - | + | + | + |
| + } | + } | ||
| - | > | + | > set.seed(10) |
| - | > n.o <- 30 | + | > n <- 30 |
| - | > n.p <- 30 | + | > n.o <- n.p <- n |
| > o <- rnorm(n.o, 100, 10) | > o <- rnorm(n.o, 100, 10) | ||
| - | > p <- rnorm(n.p, | + | > p <- rnorm(n.p, |
| - | > t.test(o,p, var.equal=T) | + | > |
| + | > t.out <- t.test(o,p, var.equal=T) | ||
| + | > t.out | ||
| Two Sample t-test | Two Sample t-test | ||
| data: o and p | data: o and p | ||
| - | t = -3.3581, df = 58, p-value = 0.001391 | + | t = -2.6941, df = 58, p-value = 0.009216 |
| alternative hypothesis: true difference in means is not equal to 0 | alternative hypothesis: true difference in means is not equal to 0 | ||
| 95 percent confidence interval: | 95 percent confidence interval: | ||
| - | -14.78163 -3.74076 | + | -11.012446 |
| sample estimates: | sample estimates: | ||
| mean of x mean of y | mean of x mean of y | ||
| - | 97.31987 106.58106 | + | 96.55324 102.87133 |
| + | > | ||
| + | > # old way | ||
| + | > m.o <- mean(o) | ||
| + | > m.p <- mean(p) | ||
| + | > df.o <- n.o - 1 | ||
| + | > df.p <- n.p - 1 | ||
| + | > diff <- m.o - m.p | ||
| + | > pv <- (ss(o)+ss(p))/ | ||
| + | > se <- sqrt((pv/ | ||
| + | > t.cal <- diff/se | ||
| + | > t.cal | ||
| + | [1] -2.694097 | ||
| + | > pt(t.cal, df.o+df.p) * 2 | ||
| + | [1] 0.009215657 | ||
| + | > t.out$statistic | ||
| + | t | ||
| + | -2.694097 | ||
| + | > t.out$p.value | ||
| + | [1] 0.009215657 | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | > # | ||
| > comb <- list(o = o, p = p) | > comb <- list(o = o, p = p) | ||
| > op <- stack(comb) | > op <- stack(comb) | ||
| > head(op) | > head(op) | ||
| | | ||
| - | 1 83.05641 o | + | 1 100.18746 o |
| - | 2 108.25078 o | + | 2 98.15747 o |
| - | 3 | + | 3 |
| - | 4 | + | 4 |
| - | 5 82.61865 o | + | 5 102.94545 o |
| - | 6 85.64129 o | + | 6 103.89794 o |
| > colnames(op)[1] <- " | > colnames(op)[1] <- " | ||
| > colnames(op)[2] <- " | > colnames(op)[2] <- " | ||
| Line 39: | Line 67: | ||
| > head(op) | > head(op) | ||
| | | ||
| - | 1 83.05641 o | + | 1 100.18746 o |
| - | 2 108.25078 o | + | 2 98.15747 o |
| - | 3 | + | 3 |
| - | 4 | + | 4 |
| - | 5 82.61865 o | + | 5 102.94545 o |
| - | 6 85.64129 o | + | 6 103.89794 o |
| - | > boxplot(op$values~op$group) | + | > boxplot(op$values~ss.o <- ss(o) |
| + | ss.p <- ss(p) | ||
| + | df.o <- length(o)-1 | ||
| + | df.p <- length(p)-1 | ||
| + | |||
| + | |||
| + | op$group) | ||
| > | > | ||
| > | > | ||
| - | </ | ||
| - | |||
| - | {{: | ||
| - | |||
| - | < | ||
| > plot(op$values~op$group) | > plot(op$values~op$group) | ||
| > boxplot(op$values~op$group, | > boxplot(op$values~op$group, | ||
| Line 61: | Line 90: | ||
| + c(" | + c(" | ||
| > | > | ||
| + | > | ||
| </ | </ | ||
| + | {{.: | ||
| + | {{.: | ||
| < | < | ||
| Line 72: | Line 103: | ||
| > max.x <- max(op$values) | > max.x <- max(op$values) | ||
| > br <- seq(floor(min.x), | > br <- seq(floor(min.x), | ||
| + | > | ||
| + | > hist(o, breaks=br, | ||
| + | + col=rgb(1, | ||
| + | > abline(v=m.o, | ||
| + | > hist(p, add=T, breaks=br, | ||
| + | + col=rgb(.5, | ||
| + | > abline(v=m.p, | ||
| + | > abline(v=m.tot, | ||
| > | > | ||
| </ | </ | ||
| + | {{.: | ||
| - | {{: | + | < |
| + | </ | ||
| < | < | ||
| > hist(o, breaks=br, | > hist(o, breaks=br, | ||
| + col=rgb(1, | + col=rgb(1, | ||
| - | > abline(v=m.o, | ||
| > hist(p, add=T, breaks=br, | > hist(p, add=T, breaks=br, | ||
| + col=rgb(.5, | + col=rgb(.5, | ||
| - | > abline(v=m.p, | + | > abline(v=m.tot, |
| - | > abline(v=m.tot, | + | |
| > | > | ||
| > ss.tot <- ss(op$values) | > ss.tot <- ss(op$values) | ||
| > df.tot <- length(op$values)-1 | > df.tot <- length(op$values)-1 | ||
| > ss.tot/ | > ss.tot/ | ||
| - | [1] 133.9582 | + | [1] 91.24725 |
| > var(op$values) | > var(op$values) | ||
| - | [1] 133.9582 | + | [1] 91.24725 |
| > ss.tot | > ss.tot | ||
| - | [1] 7903.533 | + | [1] 5383.588 |
| - | > | + | |
| - | > ss.o <- ss(o) | + | |
| - | > ss.p <- ss(p) | + | |
| - | > df.o <- length(o)-1 | + | |
| - | > df.p <- length(p)-1 | + | |
| > | > | ||
| + | </ | ||
| + | {{.: | ||
| + | |||
| + | < | ||
| > m.tot | > m.tot | ||
| - | [1] 101.9505 | + | [1] 99.71228 |
| > m.o | > m.o | ||
| - | [1] 97.31987 | + | [1] 96.55324 |
| > m.p | > m.p | ||
| - | [1] 106.5811 | + | [1] 102.8713 |
| > ss.o | > ss.o | ||
| - | [1] 3647.085 | + | [1] 2179.19 |
| > ss.p | > ss.p | ||
| - | [1] 2969.903 | + | [1] 2605.623 |
| > | > | ||
| - | > ss.bet <- length(o)*(m.tot-m.o)^2+length(p)*(m.tot-m.p)^2 | + | > hist(o, breaks=br, |
| - | > ss.tot | + | + col=rgb(1, |
| - | [1] 7903.533 | + | > abline(v=m.o, |
| - | > ss.bet | + | > abline(v=m.tot, |
| - | [1] 1286.546 | + | > |
| + | > hist(p, breaks=br, | ||
| + | + col=rgb(.5, | ||
| + | > abline(v=m.p, | ||
| + | > abline(v=m.tot, | ||
| + | > | ||
| + | > ss.bet <- n.o*(m.tot-m.o)^2 + # m.tot 에서 o그룹공통 까지의 거리를 제곱해서 모두 더한 값 | ||
| + | # 아래 그림에서 빨간색 선에서 검은색 선까지의 거리를 제곱해서 모두 더한 값 | ||
| + | + n.p*(m.tot-m.p)^2 | ||
| + | # 아래 그림에서 빨간색 선에서 파란색 선까지의 거리를 제곱해서 모두 더한 값 | ||
| + | # 이것은 그룹 (IV, 독립변인) 때문에 생긴 그룹 간 차이이다 | ||
| + | > ss.bet # 따라서 이것을 SS between group이라고 부른다 | ||
| + | [1] 598.7747 | ||
| + | > | ||
| + | </ | ||
| + | {{.: | ||
| + | {{.: | ||
| + | |||
| + | < | ||
| + | > hist(o, breaks=br, | ||
| + | + col=rgb(1, | ||
| + | > abline(v=m.o, | ||
| + | > ss.o <- ss(o) # o집단의 평균인 검은색 선에서 개인 점수까지의 거리는 (오차는) 독립변인과 상관없이 랜덤하게 나타나는 것 | ||
| + | > ss.o # o집단의 것을 ss.o라고 부른다 | ||
| + | [1] 2179.19 | ||
| + | > | ||
| + | > hist(p, breaks=br, | ||
| + | + col=rgb(.5, | ||
| + | > abline(v=m.p, | ||
| + | > ss.p <- ss(p) # p집단도 마찬가지이다. 이 집단 내의 sum of square값은 p 집단의 공통특징인 평균에서 개인점수가 랜덤하게 | ||
| + | > ss.p # 나타나는 것이고, 이것을 sum of square p라고 부른다 | ||
| + | [1] 2605.623 | ||
| + | > | ||
| + | > # 이 둘은 각 그룹의 평균을 중심으로 random 하게 나타나는 평균에서의 거리이다 (에러). | ||
| + | > # 따라서 우리는 이것을 sum of square within group이라고 부른다 | ||
| > ss.wit <- ss.o+ss.p | > ss.wit <- ss.o+ss.p | ||
| > ss.wit | > ss.wit | ||
| - | [1] 6616.987 | + | [1] 4784.813 |
| + | > | ||
| + | </ | ||
| + | {{.: | ||
| + | {{.: | ||
| + | |||
| + | |||
| + | < | ||
| + | > ss.bet | ||
| + | [1] 598.7747 | ||
| + | > ss.wit | ||
| + | [1] 4784.813 | ||
| > ss.bet+ss.wit | > ss.bet+ss.wit | ||
| - | [1] 7903.533 | + | [1] 5383.588 |
| - | > ss.tot | + | |
| - | [1] 7903.533 | + | |
| > | > | ||
| + | > ss.tot | ||
| + | [1] 5383.588 | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | < | ||
| > df.tot <- length(op$values)-1 | > df.tot <- length(op$values)-1 | ||
| > df.bet <- nlevels(op$group) - 1 | > df.bet <- nlevels(op$group) - 1 | ||
| - | > df.wit <- (length(o)-1)+(length(p)-1) | + | > df.wit <- (n.o-1)+(n.p-1) |
| > df.tot | > df.tot | ||
| [1] 59 | [1] 59 | ||
| Line 134: | Line 221: | ||
| [1] 58 | [1] 58 | ||
| > | > | ||
| + | </ | ||
| + | |||
| + | < | ||
| > ms.tot <- ss.tot / df.tot | > ms.tot <- ss.tot / df.tot | ||
| > ms.bet <- ss.bet / df.bet | > ms.bet <- ss.bet / df.bet | ||
| Line 140: | Line 230: | ||
| > f.cal <- ms.bet / ms.wit | > f.cal <- ms.bet / ms.wit | ||
| > f.cal | > f.cal | ||
| - | [1] 11.27699 | + | [1] 7.258158 |
| > p.val <- pf(f.cal, df1=df.bet, df2=df.wit, lower.tail = F) | > p.val <- pf(f.cal, df1=df.bet, df2=df.wit, lower.tail = F) | ||
| > p.val | > p.val | ||
| - | [1] 0.001390984 | + | [1] 0.009215657 |
| > summary(aov(op$values~op$group)) | > summary(aov(op$values~op$group)) | ||
| Df Sum Sq Mean Sq F value Pr(> | Df Sum Sq Mean Sq F value Pr(> | ||
| - | op$group | + | op$group |
| - | Residuals | + | Residuals |
| --- | --- | ||
| Signif. codes: | Signif. codes: | ||
| Line 155: | Line 245: | ||
| data: o and p | data: o and p | ||
| - | t = -3.3581, df = 58, p-value = 0.001391 | + | t = -2.6941, df = 58, p-value = 0.009216 |
| alternative hypothesis: true difference in means is not equal to 0 | alternative hypothesis: true difference in means is not equal to 0 | ||
| 95 percent confidence interval: | 95 percent confidence interval: | ||
| - | -14.78163 -3.74076 | + | -11.012446 |
| sample estimates: | sample estimates: | ||
| mean of x mean of y | mean of x mean of y | ||
| - | 97.31987 106.58106 | + | 96.55324 102.87133 |
| > | > | ||
| Line 169: | Line 259: | ||
| > t.cal <- diff/se | > t.cal <- diff/se | ||
| > t.cal | > t.cal | ||
| - | [1] -3.358122 | + | [1] -2.694097 |
| > p.t.cal <- pt(abs(t.cal), | > p.t.cal <- pt(abs(t.cal), | ||
| > p.t.cal | > p.t.cal | ||
| - | [1] 0.001390984 | + | [1] 0.009215657 |
| > t.cal^2 | > t.cal^2 | ||
| - | [1] 11.27699 | + | [1] 7.258158 |
| > f.cal | > f.cal | ||
| - | [1] 11.27699 | + | [1] 7.258158 |
| > | > | ||
| > df.bet | > df.bet | ||
| Line 183: | Line 273: | ||
| [1] 58 | [1] 58 | ||
| > f.cal | > f.cal | ||
| - | [1] 11.27699 | + | [1] 7.258158 |
| - | > | + | |
| > | > | ||
| + | |||
| </ | </ | ||
anova_note/output01.1764946997.txt.gz · Last modified: by hkimscil
