r:anova
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
r:anova [2023/06/04 21:40] – hkimscil | r:anova [2024/04/17 08:30] (current) – [ANOVA in R: Output] hkimscil | ||
---|---|---|---|
Line 42: | Line 42: | ||
var(comb3$values) | var(comb3$values) | ||
+ | # within part 구하기 | ||
+ | # 간단한 방법 | ||
+ | tapply(comb3$values, | ||
+ | sse <- sum(tapply(comb3$values, | ||
+ | sse | ||
+ | |||
+ | # 이해한 개념대로 얼른 구하기 | ||
# A, B, C 평균 | # A, B, C 평균 | ||
m.a <- mean(A) | m.a <- mean(A) | ||
Line 59: | Line 66: | ||
ss.within <- ss.a + ss.b + ss.c | ss.within <- ss.a + ss.b + ss.c | ||
- | ss.within | + | ss.within |
+ | # between part 구하기 | ||
16*((m.a-mean.tot)^2) | 16*((m.a-mean.tot)^2) | ||
16*((m.b-mean.tot)^2) | 16*((m.b-mean.tot)^2) | ||
Line 274: | Line 283: | ||
[1] 56.7234 | [1] 56.7234 | ||
> | > | ||
+ | > # within part 구하기 | ||
+ | > # 간단한 방법 | ||
+ | > tapply(comb3$values, | ||
+ | a | ||
+ | 600 750 900 | ||
+ | > sse <- sum(tapply(comb3$values, | ||
+ | > sse | ||
+ | [1] 2250 | ||
+ | > | ||
+ | > # 이해한 개념대로 얼른 구하기 | ||
> # A, B, C 평균 | > # A, B, C 평균 | ||
> m.a <- mean(A) | > m.a <- mean(A) | ||
Line 291: | Line 310: | ||
> | > | ||
> ss.within <- ss.a + ss.b + ss.c | > ss.within <- ss.a + ss.b + ss.c | ||
- | > ss.within | + | > ss.within |
+ | [1] TRUE | ||
> | > | ||
+ | > | ||
+ | > # between part 구하기 | ||
> 16*((m.a-mean.tot)^2) | > 16*((m.a-mean.tot)^2) | ||
[1] 144 | [1] 144 | ||
Line 350: | Line 372: | ||
--- | --- | ||
Signif. codes: | Signif. codes: | ||
+ | > | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | < | ||
> # 위에서 | > # 위에서 | ||
> # ssd라는 function을 만들면 | > # ssd라는 function을 만들면 | ||
Line 356: | Line 383: | ||
+ | + | ||
> ss.a1 <- ssd(A) | > ss.a1 <- ssd(A) | ||
- | > ss.b2 <- ssd(B) | + | > ss.b1 <- ssd(B) |
> ss.c1 <- ssd(C) | > ss.c1 <- ssd(C) | ||
> | > | ||
Line 365: | Line 392: | ||
> ss.c == ss.c1 | > ss.c == ss.c1 | ||
[1] TRUE | [1] TRUE | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | < | ||
> # 그러나 정확히 어떤 그룹에서 차이가 나는지는 판단해주지 않음 | > # 그러나 정확히 어떤 그룹에서 차이가 나는지는 판단해주지 않음 | ||
> pairwise.t.test(comb3$values, | > pairwise.t.test(comb3$values, | ||
Line 414: | Line 445: | ||
c-b -5 -11.059034 | c-b -5 -11.059034 | ||
- | > | + | > |
- | > | + | |
- | > | + | |
</ | </ | ||
- | |||
====== Post hoc test ====== | ====== Post hoc test ====== | ||
[[:post hoc test]] | [[:post hoc test]] | ||
Line 441: | Line 469: | ||
# 혹은 fansy way from comb3 data.frame | # 혹은 fansy way from comb3 data.frame | ||
# 15 는 각 그룹의 df | # 15 는 각 그룹의 df | ||
+ | # 각 그룹에 따라서 values에 대한 variance를 구하여 | ||
+ | # df 값이 15를 곱해서 SS within_group 값을 모두 구하고 | ||
+ | # 이를 합산한다 | ||
sse.ch <- sum(tapply(comb3$values, | sse.ch <- sum(tapply(comb3$values, | ||
sse.ch | sse.ch | ||
+ | |||
+ | #### 사실 위의 값은 먼저 구한 ss.within 값 | ||
+ | ss.within | ||
mse.ch <- sse.ch/45 | mse.ch <- sse.ch/45 | ||
mse.ch | mse.ch | ||
+ | # http:// | ||
+ | # ms.error 를 그 그룹의 샘플 숫자로 나눈다 (length(A) = 16) | ||
se <- sqrt(mse/ | se <- sqrt(mse/ | ||
r/anova.1685882444.txt.gz · Last modified: 2023/06/04 21:40 by hkimscil