일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- categorical variable
- 우분투
- 낙랑군
- repeated measures ANOVA
- 한서지리지
- ANOVA
- t test
- 창평
- 지리지
- Histogram
- 태그를 입력해 주세요.
- 선형회귀분석
- 유주
- 히스토그램
- 기자조선
- spss
- R
- 한서
- 기자
- 독사방여기요
- 풍백
- 통계
- post hoc test
- 단군
- 후한서
- 통계학
- linear regression
- 신라
- 패수
- 고구려
- Today
- Total
獨斷論
Independent samples t test 두번째 (통계 R 초급 - 3) 본문
지난시간에는 Independent samples t test를 R에서 어떻게 수행하는지 알아보았는데
이번에는 이에 대한 power analysis를 어떻게 수행하는지 알아보자.
R 터미널에서 help(power.t.test)라고 치면 이에 대한 도움말을 볼수있으니 참고하도록 하자.
대개 아래와 같은데...
power.t.test(n = NULL, delta = NULL, sd = 1, sig.level = 0.05,
power = NULL,
type = c("two.sample", "one.sample", "paired"),
alternative = c("two.sided", "one.sided"),
strict = FALSE)
n은 샘플의 observation 갯수이고
delta는 비교하고자 하는 두 그룹사이의 평균의 차이이며
sd는 표준편차이고
sig.level은 (1-신뢰도)이다.
그런데 n, delta, power, sd, sig.level 중에 하나는 값을 넣어주지 말아야 하는 것을 잊지 말자.
이제 각 argument값을 구하면
n은 샘플의 크기이므로 10이며
delta는 두 샘플의 평균의 차이이므로 다음과 같이 구한다.
> delta=mean(nonsmokers)-mean(smokers)
sd는 independent sample이므로 pooled standard deviation을 구해야 한다.
아무리 찾아봐도 R에서는 pooled standard deviation을 구하는 명령어가 없는 것 같아서 직접구했다. 아래와 같이 한다.
> pooledVar = ((length(smokers)-1)*var(smokers) + (length(nonsmokers)-1)*var(nonsmokers))/(length(smokers)+length(nonsmokers)-2) # 물론 이것도 한줄로 입력
> pooledSD = sqrt(pooledVar)
pooled Variance를 구하는 공식은 아래와 같다.
n1, n2, ..., nk들은 모두 각 그룹의 샘플의 크기이고
s1제곱, s2제곱과 같은 것들은 각 샘플의 분산이며
k는 그룹의 갯수이다.
위 공식과 위 pooledVar를 구하는 R의 코딩을 비교해보면 쉽게 이해할수 있다.
이제 power analysis를 하면 아래와 같다.
> power.t.test(n = 10, delta=mean(nonsmokers)-mean(smokers), sd=pooledSD, sig.level=.05, type="two.sample", alternative="two.sided") # 물론 이것도 한줄로 쳐야한다.
Two-sample t test power calculation
n = 10
delta = 2.6
sd = 2.575526
sig.level = 0.05
power = 0.569879
alternative = two.sidedNOTE: n is number in *each* group
Wilsoxin rank sum test (Wilsoxin-Mann-Whitney test)
샘플이 정규분포를 따르지 아니할때 그리고 샘플의 크기가 작아서 central limit theorem 적용하기 불가하다면 nonparametric test를 써야만 한다. 이때 사용되는 것이 Wilcoxin rank sum test이다. Mann-Whitness U test라고 하기도 한다.
쓰는 방법은 아래와 같다.
> wilcox.test(nonsmokers,smokers)
Wilcoxon rank sum test with continuity correction
data: nonsmokers and smokers
W = 76.5, p-value = 0.04715
alternative hypothesis: true location shift is not equal to 0Warning message:
In wilcox.test.default(nonsmokers, smokers) :
cannot compute exact p-value with ties
Regression formula를 사용하려면 다음과 같이 사용한다.
> wilcox.test(scores ~ groups, data=smoke.data)
Wilcoxon rank sum test with continuity correction
data: scores by groups
W = 76.5, p-value = 0.04715
alternative hypothesis: true location shift is not equal to 0Warning message:
In wilcox.test.default(x = c(18, 22, 21, 17, 20, 17, 23, 20, 22, :
cannot compute exact p-value with ties
여기에 나오는 Warning은 무시해도 좋다.