서로 다른 모집단의 평균 비교 검정력(1-beta), 신뢰구간이 주어졌을때 표본크기(샘플사이즈) 결정

시간이 지나면서 아주 헛갈리는 통계학의 주제중의 하나가 서로 다른 모집단에서 표본추출을 해서 평균값을 비교하는 경우이다.

예를 들면 두집단의 평균값  차이의95% 신뢰구간의 상한값과 하한값의 차이(width )값이  2 이하로 떨어지게 하고 싶을때 얼마나 많은 샘플(표본)  뽑으면  될까?  또는 가설검정의 검정력을 50% 두고 두집단의 평균값 차이가 2 되게 만들고 싶을때 얼마나 많은 표본을 수집해야 하는가?

이런 예는 현실에서도 상당히 많이 적용될 있는 것들인데 시간이 지나서 계산하려 하면 쉽게 이해가 되질 않는 것이 사실이다. 그래서 간단한 예와 함께 정리를 해보았다.

모집단에서 독립적으로 각각 n개의 샘플을 추출한다고 하자. 이들 각각의 분포의 표준편차는 10으로 알려져 있다. 이때 다음에 대해서 생각을 해보자.

(1)    모집의 평균차이 95% 신뢰구간의 상한값과 하한값의 차이(width) 2 갖게 만들고 싶을때 우리는 얼마나 많은 샘플을 추출해야 하는가?

<정답>

 

 

(2)  '  H0: 두집단의 평균차는 없다  vs H1: X모집단이 평균이 Y 모집단의 평균보다 크다' 에 대한 가설검정에서 평균차이는 2이고 type1 error 10%라고 할때  검정력이 50% 되기 위해서는 얼마나 많은 샘플을 뽑아야 하는가?

<정답>


그럼 도움이 되길...
Posted by wishart
,

스포츠에서 붉은색 유니폼을 입으 승리할 확률이 높아진다 말은 사실일까?

아래 전문은 2006 6 10일자 동아일보에 게제된 뉴스이다.

러셀 교수는 과학학술지네이처’ 5월호에붉은색 유니폼을 입으면 승리할 확률이 훨씬 높아진다 발표해 논란에 쐐기를 박았다.

실력 비슷하면 붉은색 유니폼 승률 60%


연구팀은 2004 아테네 올림픽 경기 권투, 태권도, 레슬링 그레코로만형과 자유형 4 격투기 종목을 분석했다. 경기자들은 파란색과 붉은색 유니폼 하나를 입는다. 연구 결과 붉은색 유니폼을 입은 선수의 승률이 55% 절반을 넘었다. 붉은색의 승률이 가장 높은 종목은 태권도였다. 러셀 박사는경기자의 실력이 서로 비슷하면 붉은색 유니폼의 승률은 60% 올라간다 말했다.

연구팀은 유럽축구대회인 유로2004 참가한 각국 대표팀의 승률도 함께 조사했다. 이들은 두어 가지 다른 색의 유니폼을 번갈아 입는데 붉은색 유니폼을 입었을 승률이 높아지는 것은 물론 골도 많이 넣었다.
....

그리고 이후로도 언론에서는 연구를 거듭  언급하면서  붉은 유니폼을 입으면 이길 확률이 높아진다는 것을 기정사실화 하였다.  그렇지만 연구는 통계적으로 못된 것으로 드러났는데 분석을 해보고자 한다. 아래 표는 Hill and Barton(2005) 의해서 수집된 데이타이다. 각각의 문제를 따라 가면서 분석을 해보자.

종목

Blue 유니폼

Red 유니폼

합계

권투(B)

120

148

268

레슬링 그레코로만형(GW)

24

27

51

레슬링 자유형(FW)

23

25

48

태권도(TaeKwon)

35

45

80

합계

202

245

447

%

45.19%

54.81%

100%

 

1.       먼저 귀무가설(null hypothesis) ‘각각의 종목에서 빨간색 유니폼을 입은 팀과 파란색 유니폼을 입은 팀의 승률은 50% 같다’ vs  대립가설 각각의 종목에서 두팀의 승률은 같지만 50% 아니다 테스트해보자.

우도함수(Likelihood ratio)  

여기서 우리는 붉은색 유니폼 팀이 이긴 횟수, 파란색 유니폼을 이긴 횟수, N 전체 승리한 횟수,     추정될 있다.

따라서 이때 피어슨 카이 검정 통계량(Pearson's Chi-square statistics) 다음과 같이 계산된다.

이때 자유도 1 카이검정통계량의 p_value 0.04로이다. 결과에 따르면 통계적으로  각각의 종목에서 두팀의 승률은 같지만 50% 아니라는 것을 있다. , 연국팀이 전체적으로 붉은 유니폼을 입은 팀이 승리할 확률이 55% 높다고 이야기하는 것은 가설을 테스트한 것이라고 있다.

따러서 가설에 의한 검정결과로 붉은색 유니폼을 입은 팀이 스포츠에서 이길 확률이 높다는 것은 논리적으로 맞는 말이 아니다.

이것을 제대로 테스트를 하려면 다음( 2) 같은 가설을 세워야 한다.

2.      먼저 귀무가설(null hypothesis) ‘각각의 종목에서 빨간색 유니폼을 입은 팀과 파란색 유니폼을 입은 팀의 승률은 50% 같다’ vs  대립가설 (alternative hypothesis)‘각각의 종목에서 두팀의 승률은 다르고 확률이 50% 아니다 테스트해보자

자유도 3에서 카이제곱 통계량은 0.3015 갖고 p value 0.9597 통계적으로 유의하지 않다.

따라서 붉은 유니폼을 입은 팀이 승리할 확률이 높다는 것은 사실이 아니라고 있다. 연구팀은 단순 전체 승률을 비교한 것으로 (1) 번의 테스트를 고려한 것이고 셀제로 이렇게 테스트를 해야한다.

이게 바로 통계의 미학이 아닐까 생각한다.

재미있는 이야기라서 정리해서 올려둔다.


Posted by wishart
,
T test 는 가장 기본이면서 쉬운 검정법이지만 시간이 지나면 항상 가물 가물해지면서 사뭇 헛갈리는 경향이 있는 통계의 중요한 부분이다.

이게 시간이 지나면서 헛갈리는 이유는 복잡한 분산공식때문이기도 한데 웹상에 한 번 잘 정리가 된다면 앞으로 쉽게 기억하고 문제 해결을 할 수 있지 않을까 하는 생각에서 정리를 해보았다.
T 검정은 단일그룹검정, 쌍별비교검정, 서로다른 두 그룹에 대한 테스트 이렇게 3개로 나눠 볼 수있는데 ,먼저 단일그룹부터 하나 하나 살펴보도록 하겠다.

아래 데이타는 A 그룹과 B 그룹의 각각의 값을 나타낸다. 이것은 원래 paired 된 데이타인데 분석 방법을 설명하기 위해서 경우에 따라서 분리해서 분석할 것이다.

A 그룹 B 그룹 차이(dif)
97.2 97.2 0
105.8 97.8 8
99.5 96.2 3.3
100 101.8 -1.8
93.8 88 5.8
79.2 74 5.2
72 75 -3
72 67.5 4.5
69.5 65.8 3.7
20.5 21.2 -0.7
95.2 94.8 0.4
90.8 95.8 -5
96.2 98 -1.8
96.2 99 -2.8
91 100.2 -9.2


1. 단일그룹 T 검정법

여기서 "H0: 그룹 A의 평균은 85이다" 를 T검정을 해보자. 어떻게 SAS 명령어를 써야 할까? 이것은 간단하다.

proc ttest data=kkk H0=85;
    
var a;run;

단지 데이타셋 명에 옵션을 H0=85 라고 주면 된다. 그렇게 하면 아래와 같은 결과값을 얻는다.

DF t Value Pr > |t|

14 0.05 0.9628

즉 p value=0.9628로 H0를 기각할 수 없다.

2. 쌍별비교(paired T test)

A와 B 그룹이 각각 쌍을 이루고 있다고 하자. 가령 실험전후 몸무게나 키 같은 것이라고 생각해보자.
그렇다면 이때 T검정은 결국은 전후의 차이가 있는냐 없느냐가 될 것이다. 따라서 전후의 차이(A-B)의 합이 0이냐 혹은 아니냐의 검정이 된다.
이것은 서로를 위의 표에서 처럼 차이를 구한다음 이 차이가 0인지를 검정하는 단일그룹 T 검정법을 사용하는 것과 마찬가지인데 SAS에서는 이렇게 차이를 구하지 않고 서도 T 검정을 하는 옵션이 있다.
그 옵션은 다음과 같은 명령어를 사용하면 된다.

proc ttest data=kkk ;
    
paired a*b ;run;

                                          Variable:  diff

 

                    N        Mean     Std Dev     Std Err     Minimum     Maximum

                   15      0.4400      4.6308      1.1957     -9.2000      8.0000

 

                      Mean       95% CL Mean        Std Dev      95% CL Std Dev

                    0.4400     -2.1244   3.0044      4.6308      3.3903   7.3032

 

                                       DF    t Value    Pr > |t|

                                       14       0.37      0.7184

자유도 14를 갖고 T통계량 0.37를 갖으면 P-value=0.7184이다. 즉 H0를 기각할 수 없다.

아래처럼 명령어를 주면 두 변수의 차이 diff의 분포를 보여준다. 이것을 보면 대충 이게 유의할지 않할지 짐작할 수 있도록 해준다. univariate 는 diff가 0인지 정규근사를 통해서 검정을 해준다. 즉 아래 명령어는 T검정이 맞는지를 더블체크할 수 있는 대략의 감을 준다고 보면된다.

proc univariate data=kkk;
    
var diff ;
     
histogram diff /kernel;run;


* 단일그룹 T검정과 쌍별비교(paired T test)을 위해서 데이타 셋은 다음과 같이 입력되어야 한다.

data
kkk;
input A B diff @@;
cards;
97.2 97.2 0
105.8 97.8 8
99.5 96.2 3.3
100 101.8 -1.8
93.8 88 5.8
79.2 74 5.2
72 75 -3
72 67.5 4.5
69.5 65.8 3.7
20.5 21.2 -0.7
95.2 94.8 0.4
90.8 95.8 -5
96.2 98 -1.8
96.2 99 -2.8
91 100.2 -9.2
;
run;

3. 서로다른 두 그룹의 평균비교

A, B 그룹이 서로 다른 그룹에서 나온 데이타라고 가정해보자. 가령 제주도 사람의 평균키와 서울 사람의 평균키를 비교하는 예라고 하자. 이런 경우는 SAS에서 class라는 명령어를 준다. 그리고 데이타 입력방법도 달라진다. 맨아래 데이타입력하는 방법을 넣었다. 또한 결과 해석을 할때도 두 그룹의 분산이 같은지 다른지에 따라서 T 통계량 값이 다르게되므로 반드시 먼저 분산이 같은지 테스트 결과를 본 다음 T통계량을 봐야 한다.
proc ttest ;class method;var dosage;run;

   method        Method               Mean       95% CL Mean        Std Dev      95% CL Std Dev

   A                               85.2600     73.5220  96.9980     21.1961     15.5182  33.4284

   B                               84.8200     72.8839  96.7561     21.5538     15.7801  33.9925

   Diff (1-2)    Pooled             0.4400    -15.5484  16.4284     21.3757     16.9633  28.9096

   Diff (1-2)    Satterthwaite      0.4400    -15.5486  16.4286

 

                    Method           Variances        DF    t Value    Pr > |t|

                    Pooled         Equal          28    0.06      0.9554

                    Satterthwaite    Unequal      27.992       0.06      0.9554

 

                                       Equality of Variances

 

                         Method      Num DF    Den DF    F Value    Pr > F

                         Folded F        14        14       1.03    0.9510

위에서 Folded F의 P-value가 0.9510으로 두 집단의 분산은 같다고 볼 수 있다. 따라서 우리는 pooled 분산을 이용한 t 검정 결과를 보고 두집단의 평균비교를 해야한다.사실 아래 히스토그램을 보면 두 집단의 분산은 유사할 것이라는 것을 집작할 수 있고 두 평균도 같을 것이라는 것을 대략 알 수 있다.

그리고 이들 각각의 변수의 히스토그램을 보고 싶다면 다음과 같이 명령어를 쓰면 동시에 A그룹과 B 그룹의 히스토그램의 형태를 비교분석할 수 있는 그래프를 준다.

proc univariate data=kkk1;
     class method;var dosage ;
     histogram dosage /kernel;run;

 

 



서로다른 두 그룹의 평균비교를 할때는 아래와 같이 데이타를 입력해야한다.

data kkk1;
input method $ dosage @@;
cards;

A 97.2 B 97.2
A 105.8 B 97.8
A 99.5 B 96.2
A 100 B 101.8
A 93.8 B 88
A 79.2 B 74
A 72 B 75
A 72 B 67.5
A 69.5 B 65.8
A 20.5 B 21.2
A 95.2 B 94.8
A 90.8 B 95.8
A 96.2 B 98
A 96.2 B 99
A 91 B 100.2
;
run;

이상으로 설명을 마치려고 한다.
사실 각각의 값에대한 설명을 수식으로 설명해야 하나 복잡함을 피하고자 한다.
여기서 Standard error는 샘플평균의 표준편차를 의미한다. SAS에서 무조건 Standard error는 샘플평균의 표준편차라는 것을 기억해 두자.




Posted by wishart
,