anova_note:code01
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| anova_note:code01 [2025/12/07 10:55] – hkimscil | anova_note:code01 [2025/12/09 23:16] (current) – hkimscil | ||
|---|---|---|---|
| Line 19: | Line 19: | ||
| df.p <- n.p - 1 | df.p <- n.p - 1 | ||
| diff <- m.o - m.p | diff <- m.o - m.p | ||
| + | m.o | ||
| + | m.p | ||
| + | diff | ||
| pv <- (ss(o)+ss(p))/ | pv <- (ss(o)+ss(p))/ | ||
| se <- sqrt((pv/ | se <- sqrt((pv/ | ||
| Line 24: | Line 27: | ||
| t.cal | t.cal | ||
| pt(t.cal, df.o+df.p) * 2 | pt(t.cal, df.o+df.p) * 2 | ||
| - | t.out$statistic | ||
| - | t.out$p.value | ||
| - | t.out <- t.test(o,p, var.equal=T) | + | t.out <- t.test(o, p, var.equal=T) |
| t.out | t.out | ||
| - | </ | + | t.out$statistic |
| + | t.out$p.value | ||
| - | < | ||
| # | # | ||
| comb <- list(o = o, p = p) | comb <- list(o = o, p = p) | ||
| + | o | ||
| + | p | ||
| + | comb | ||
| op <- stack(comb) | op <- stack(comb) | ||
| - | head(op) | + | op |
| colnames(op)[1] <- " | colnames(op)[1] <- " | ||
| colnames(op)[2] <- " | colnames(op)[2] <- " | ||
| op$group <- factor(op$group) | op$group <- factor(op$group) | ||
| head(op) | head(op) | ||
| + | tail(op) | ||
| boxplot(op$values~op$group) | boxplot(op$values~op$group) | ||
| - | plot(op$values~op$group) | + | # plot(op$values~op$group) |
| boxplot(op$values~op$group, | boxplot(op$values~op$group, | ||
| yaxt=" | yaxt=" | ||
| Line 54: | Line 58: | ||
| m.o <- mean(o) | m.o <- mean(o) | ||
| m.p <- mean(p) | m.p <- mean(p) | ||
| + | m.tot | ||
| + | m.o | ||
| + | m.p | ||
| min.x <- min(op$values) | min.x <- min(op$values) | ||
| Line 66: | Line 73: | ||
| abline(v=m.p, | abline(v=m.p, | ||
| abline(v=m.tot, | abline(v=m.tot, | ||
| - | </ | ||
| - | < | ||
| - | hist(o, breaks=br, | ||
| - | | ||
| - | abline(v=m.o, | ||
| - | abline(v=m.tot, | ||
| - | |||
| - | hist(p, breaks=br, | ||
| - | | ||
| - | abline(v=m.p, | ||
| - | abline(v=m.tot, | ||
| - | </ | ||
| - | |||
| - | < | ||
| hist(o, breaks=br, | hist(o, breaks=br, | ||
| | | ||
| Line 92: | Line 85: | ||
| var(op$values) | var(op$values) | ||
| ss.tot | ss.tot | ||
| - | </ | ||
| - | |||
| - | < | ||
| m.tot | m.tot | ||
| m.o | m.o | ||
| m.p | m.p | ||
| + | ss.o <- ss(o) | ||
| + | ss.p <- ss(p) | ||
| ss.o | ss.o | ||
| ss.p | ss.p | ||
| hist(o, breaks=br, | hist(o, breaks=br, | ||
| - | | + | |
| + | main = paste0(" | ||
| + | " | ||
| + | "" | ||
| abline(v=m.o, | abline(v=m.o, | ||
| - | hist(p, add=T, breaks=br, | + | abline(v=m.tot, col=' |
| - | | + | |
| + | hist(p, breaks=br, | ||
| + | | ||
| + | main = paste0(" | ||
| + | " | ||
| + | "" | ||
| abline(v=m.p, | abline(v=m.p, | ||
| abline(v=m.tot, | abline(v=m.tot, | ||
| - | ss.bet <- n.o*(m.tot-m.o)^2 + n.p*(m.tot-m.p)^2 | + | n.o*(m.tot-m.o)^2 |
| - | ss.bet | + | # 위 그림에서 빨간색 선에서 검은색 선까지의 거리를 |
| - | </ | + | # 제곱해서 모두 더한 값 |
| + | n.p*(m.tot-m.p)^2 | ||
| + | # 위 그림에서 빨간색 선에서 파란색 선까지의 | ||
| + | # 거리를 제곱해서 모두 더한 값 | ||
| + | > ss.bet <- n.o*(m.tot-m.o)^2 + # 이것은 그룹 (IV, 독립변인) 때문에 | ||
| + | | ||
| + | > ss.bet | ||
| + | |||
| + | |||
| + | # ss within group | ||
| - | < | ||
| hist(o, breaks=br, | hist(o, breaks=br, | ||
| | | ||
| abline(v=m.o, | abline(v=m.o, | ||
| - | ss.o <- ss(o) | + | ss.o <- ss(o) # o집단의 평균인 검은색 선에서 개인 점수까지의 |
| - | ss.o | + | # 거리는 (오차는) 독립변인과 상관없이 랜덤하게 |
| + | # 나타나는 것 | ||
| + | ss.o # o집단의 것을 | ||
| hist(p, breaks=br, | hist(p, breaks=br, | ||
| | | ||
| abline(v=m.p, | abline(v=m.p, | ||
| - | ss.p <- ss(p) | + | ss.p <- ss(p) # p집단도 마찬가지이다. 이 집단 내의 sum of square값은 |
| - | ss.p | + | # p 집단의 공통특징인 평균에서 개인점수가 랜덤하게 |
| + | ss.p # 나타나는 것이고, 이것을 sum of square p라고 부른다 | ||
| - | ss.wit <- ss.o+ss.p | + | ss.wit <- ss.o + ss.p # 위 각 집단 내부의 ss값을 합한 값을 ss within group |
| + | # 이라고 부른다 | ||
| + | |||
| + | # 이 둘은 각 그룹의 평균을 중심으로 | ||
| + | # random 하게 나타나는 평균에서의 거리이다 (에러). | ||
| + | # 이것을 sum of square within group 이라고 부른다 | ||
| + | # 이것을 우리는 random difference라고 불러도 되겠다 | ||
| ss.wit | ss.wit | ||
| - | </ | ||
| - | < | + | # 반면에 ss between group은 IV의 효과 때문에 나타나는 |
| + | # 것이다. 우리는 이것을 group difference라고 부른다. | ||
| ss.bet | ss.bet | ||
| - | ss.wit | + | ss.bet + ss.wit |
| - | ss.bet+ss.wit | + | |
| ss.tot | ss.tot | ||
| - | </ | ||
| - | < | + | # degrees of freedom |
| 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 <- (n.o-1)+(n.p-1) | + | df.wit <- (n.o-1) + (n.p-1) |
| df.tot | df.tot | ||
| df.bet | df.bet | ||
| df.wit | df.wit | ||
| - | </ | ||
| - | < | + | # variance of total, between group, and within group |
| 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 157: | Line 170: | ||
| p.val | p.val | ||
| summary(aov(op$values~op$group)) | summary(aov(op$values~op$group)) | ||
| - | t.test(o,p, var.equal = T) | ||
| - | diff <- m.o - m.p | + | # t.cal 값을 확인해보면 |
| - | ssp <- (ss.o + ss.p) / (df.o + df.p) | + | t.test(o,p, var.equal = T) # 혹은 |
| - | se <- sqrt(ssp/n.o+ssp/n.p) | + | t.cal <- diff/ |
| - | t.cal <- diff/se | + | |
| - | t.cal | + | |
| p.t.cal <- pt(abs(t.cal), | p.t.cal <- pt(abs(t.cal), | ||
| p.t.cal | p.t.cal | ||
| + | |||
| + | # 하나는 sd 를 unit으로 계산한 값이고 (t.cal) | ||
| + | # 다른 하나는 variance를 unit으로 계산한 값이지만 | ||
| + | # 원리는 같다. | ||
| t.cal^2 | t.cal^2 | ||
| f.cal | f.cal | ||
| - | |||
| - | df.bet | ||
| - | df.wit | ||
| - | f.cal | ||
| - | |||
| - | |||
| </ | </ | ||
anova_note/code01.txt · Last modified: by hkimscil
