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
,

통계학을 공부할때 가끔 필요한 것이 샘플링이다.
샘플링은 샘플수에 따른 비용을 고려하여 여러가지 방법이 있는데 이런 복잡한 샘플링 방법을 명령어 몇 줄이면 SAS에서 가능하다. 여기서는 간단히 복원과 비복원 심플랜덤샘플링을 하는 법만 설명해둔다. 이것을 알면 혹시 북스트래핑할 때 아주 유용하게 이것을 이용할 수 있다. 프로그램밍이 시간이 많이 들어가니 기억해 두자.

1. 비복원  단순 랜덤 새플링 (Simple ramdom sampling without replacement )

method=srs 이라고 하면 method 옵션을 srs라고 준 것으로 비복원 심플랜덤샘플링을 하라고 하는 명령이다. 아래 명령어는 데이타 셋 Customers로 부터 100개의 샘플을 비복원으로 뽑아서 SampleSRS 에 저장하라는 말이 된다.

proc surveyselect data=Customers method=srs n=100 out=SampleSRS;
run;

2. 복원 단순 랜덤 샘플링  (Simple ramdom sampling witht replacement )

위의 명령어에서  method옵션을 urs ( unspecified random sampling)이라고 주면 간단히 복원랜덤추출법이 된다. 설명은 위와 같다.

proc surveyselect data=Customers method=urs n=100 out=SampleSRS;
run;

3. 층화추출 샘플링(Stratified Random Sampling)

층화추출을 층(stratum)간 분산은 크고(heterogeneous), 층(stratum)내 분산은 작을때(homogeneous)할때 사용하는 샘플링방법입니다. 이런 층화추출 샘플링을 사용하기 위해서는 반드시SAS에서는 starata에 대해서 sorting를 먼저하고 명령어를 사용해야 합니다.  아래 예제 프로그램은 state 와 type 변수에 따른 층화추출방법입니다.

   proc sort data=Customers;
      by State Type;
   run;

   proc surveyselect data=Customers method=srs n=15
         out=SampleStrata;
      strata State Type;
   run;

그리고  SAS에서는  좀더 고급의 샘플링 방법도 처리가 가능합니다.

• Proportional Allocation - 각각의 stratum(층)의 전체 모집단의 비율에 따라 각 stratum에 샘플수를 할당하는 방법

• Optimal Allocation- stratum sizes, stratum variances, stratum costs 을 고려한 샘플링

• Neyman Allocation - stratum sizes과 stratum variances 를 고려한 샘플링

따라서 옵션에 위에 필요한 변수들을 할당할 것을 SAS에서는 요구합니다.

자세한 것은 아래 링크를 참조하세요.
http://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_surveyselect_sect011.htm

Posted by wishart
,

어떤 갬블러가 다음과 같은 게임 전략을 세웠다고 합시다. 우리 주변에서도 흔히 볼 수 있는 광경일 수도 있을 것 같긴 합니다.

어떤 도박에서 내가 1달러를 걸고 이기면 1달러를 받고 2달러를 걸고 이기면 2달러를 받는 것입니다.
물론 내가 걸었던 돈과 함께 말이죠. 이때 이길 확률은 공정해서 1/2 이라고 합시다.

한심한 갬블러의 전략은 아주 간단합니다.  처음에 1 달러를 베팅을 하고 그러고 나서 돈을 읽으면 그 다음판에 이 돈에 두배인 2 달러를 다시 베팅을 합니다. 그리고 또 잃으면 다시 다음판에 이것에 두배인 4달러를 베팅을 합니다. 이렇게 하면 언젠가는 돈을 다시 찾아 올 수 있다고 계속 돈을 걸고 도박을 할때 평균적으로 얼마까지 잃으면 마지막에 결국 돈을 회수하게 될까요?

과연 이 전략을 통해서 돈을 회수는 할 수 있을까요? 그리고 현명한 전략이라 할 수 있을까요?

간단히 정리하면 이 갬블러는 언젠가 이겨도 결국 1달러밖에 벌 수 없습니다. 아래는 이 사람이 4번째 베팅에서 이겨서 8 달러를 받았을때 결국 추가로 번돈은 1 달러입니다.

베팅횟수 1 2 3 4 $gain
베팅돈 1 2 4 8  
잃은 돈  -1 -2 -4 8 1

그렇다면 이 전략을 통해서 얼마가 있으면  결국 이 한심한 갬블러가 1달러를 벌 수 있을까요? 이것을 통계적으로 어떻게 계산할 수 있을까요?

K번을 게임에서 지고 K+1번째 이 갬블러가 이긴다고 가정합시다.

그리고 이 친구가 게임에서 이기기전 바로 베팅한 돈은 X=2^K 가 됩니다.

그럼 한번 이기기전까지  게임에서 K번 지고 K+1번째 이길 확률은 P(X=2^k) = 1/ 2^(K+1) 이 되겠죠.

따라서

 E(X) =sum of n*P(X=n), n=0, 1, 2,...

          = sum of 2^K* 1/2^(K+1), K=1, 2, 3, 4, ...

          = infinite number

즉, 이 전략은 한심하다고 볼 수 있으며 또한 통계적으로 평균이 존재 안할수도 있다는 것을 배울 수 있습니다. 재미있는 예라서 적어봤습니다.

참고> 다음지식에도 전에 올렸다가 블로그로 옮겨봤습니다.

Posted by wishart
,
통계학을 배울때 반드시 경험하는  두변수의 독립성과 상관계수와의 관계가 있는데 아주 좋은 예가 있어서 소개를 한다. 
 

1. 두변수가 독립이면 반드시 상관계수는 0 이다.
2. 그렇지만 상관계수가 0이라고 해서 두 변수가 독립은 아니다.
    즉, 두 변수가 독립이 아니더라도 상관계수는 0이 될 수 있다.

이것은 반드시 기억을 해둬야 한다.
그리고 이런 것에 대한 좋은 예가 있어서 소개를 한다.
물론 쉽게는 서로 0을 기준으로 대칭(symmetric)이면서 경향을 보이는 변수는 상관계수는 0이지만 독립이 아니다.
가령 y= x^2 이 좋은 예일 것이다.

아래 이산형도 같은 아이디어에서 출발하여 만들었다.



위의 예에서 보듯이 상관계수는 0 이지만 독립은 아니다. 위에 설명과 다르게 설명한다면 다음과 같다.
두변수가 독립이라면 P(x=1,y=1) = P(x=1)* P(y=1)이 성립해야 하는데
P(x=1,y=1)= 1/3 이지만 
 P(x=1)* P(y=1)=(1/3)*(1/3 + 1/3)=2/9 이기 때문이다.

Posted by wishart
,
비모수 통계학(nonparametric statistics)을 배우다 보면 번역을 한다면 순열을 이용한 평균비교(Permutation test for Means ) 라는 테스트가 있다. 이것은 사실 맨위트니 Rank Sum (순위합) 검정과 결국은 같은 테스트인데 이것을 SAS를 통해서 구현을 해보았다.
초기 데이타는 Mathematical Statistics and Data Analysis p464에 문제 29번을 대상으로 풀었다.

아래와 같이 두가지 방법에 따른 온도를 측정후에 전체 데이타에 순위를 아래와 같이 줬다.이때 집단 A, B의  각각 순위합을 비교하는 것이 맨위트니 검정법(Mann-Whitney test)이다.
퍼뮤테이이션 검정법은 아래  B집단의 데이타가 전체 21개중에 8개이다. 이것을 21개중 8개를 무작위로 뽑아 A, B 그룹의 평균 순위합의 차이를 계산한다. 즉 전체 뽑을 수 있는 가능한 수 21C8 개가 되는데 이때 가능한 수만큼 뽑아서 뽑힌 8개의 평균순위합과 나머지 13개의 평균 순위합의 차이를 그래프로 그린다.
그렇게 하면 처음에 아래 표에서 얻은 두 집단간의 순위합 평균이 어디에 떨어지는지 알 수 있다. 즉 이것을 바탕으로 P_value를 계산할 수 있다.  이것이 바로 퍼뮤테이션 테스트인데 여기서는 1000개만뽑았다. 왜냐면 실제 21C8은 근사적으로 200,000 정도에 육박하는데 1000개 정도만으로 충분히 가능하기 때문이다.

A 7.5 19 11.5 19 15.5 15.5 19 4.5 21 15.5 11.5 9 11.5
B 11.5 1 7.5 4.5 4.5 15.5 2 4.5          

Diff= Mean of group A - Mean of group B = 13.8 - 6.37 =7.43
아래 그래프에서 7.43은 전체 1천개중에서 997번째 큰 값으로 이보다 큰 값이 겨우 3개정도 존재한다. 따라서  
따라서 p_value = 3/1000 =0.003 으로 귀무가설을 기각한다.

아래 히스토그램은 1000개를 뽑아서 그룹간의 평균차를 계산하여 그린 히스토그램이다.
이것을 보면 어디에 위치하는지 알 수 있다.




SAS 프로그램

data kkk1;/* 초기 데이타 입력 */
input method $ value @@;
cards;

A 7.5 A 19 A 11.5 A 19 A 15.5 A 15.5 A 19 A 4.5 A 21 A 15.5 A 11.5 A 9 A 11.5 B 11.5 B 1 B 7.5 B 4.5 B 4.5 B 15.5 B 2 B 4.5 ;run;

%macro bootst;/*매크로 bootst를 생성하는 과정이다*/

%do k=1 %to 1000;/*k변수에 대해서 1부터 1000까지 반복하라는 명령어이다 */

data sample;

set kkk1;

rand= ranuni(&k)*21;/* 0 에서 1 까지 uniform 난수를 발생시킨다음 21를 곱하면 0에서 21까지의 난수가 된다 */

run;

proc rank data=sample out=ppp ;/* 생성된 난수에 순위를 준다 */

var rand;

ranks rank;run;/* 순위는 데이타셋 ppp에  rank라는 변수명으로 하라는 의미이다 */

data ppp;

set ppp;

if rank<= 8 then group='A';else group='B';run;

proc sql ;

create table aaa as

select a.group, avg(a.value) as barX from ppp a group by a.group;

quit;

/* 트랜스포즈 명령어는 아주 유용하다. 데이타값이 실제로 group이라는 변수에 A, B가 들어 있는데 이 두그룹간의 차이를 구하려면 이들이 변수명으로 바꿔야 하는데 이때 이것을 쓰면 아주 유용하다. 여기서 그룹명을 변수로 바꾸고 이때 값을 barX로 하라는 것이 이 문장이다*/

proc transpose data= aaa out=mmm;
var barX;ID group;run;

data ddd;

set ddd mmm; /* 여기서 초기 데이타 ddd는 미리 만들었다. 물론 프로그램에서는 표현을 하지 않았고. 그런다음 위에서 생성된 mmm데이타셋을 계속 머지해가는 것이다. 결국 1000번을 돌면 1001개의 데이타 라인이 생기게 된다.ddd에 말이다. */

run;

%end ;/*Do문을 여기서 멈추라는 명령어이다 */

%mend bootst ;/* 매크로를 닫아주는 명령어*/

%bootst ;/* 매크로를 실행하라는 명령어인데 결국 1000개번의 과정을 반복할 것이다. */

data ddd;

set ddd;

diff=A-B;

run;

proc univariate data=ddd;

var diff;

histogram diff /kernel;run;/* 히스토그램을 그리기 위해서 이 명령어를 사용하였다*/


참고로 만약 t검정 혹은 비모수 검정(윌콕슨 부호순위검정)을 하고 싶다면 SAS에서 다음과 같은 명령어를 사용하면 된다.

PROC NPAR1WAY data=kkk1;class method;var value;run;

proc ttest data=kkk1 ;class method;var value;run;

Posted by wishart
,

통계학에서 피셔의 업적으로 이야기하자면 진화론의 다윈과 같은 존재이다. 이는 범주형 자료분석(categorical analysis) 지평을 여는데 공헌을 사람인데 우리가 범주형 자료분석 책을 열면 항상 제일 처음에 나오는 예가 바로 피셔의 정확도 검정(Fisher's Exact Probability Test) 이다.

그러나 문제는 이것을 제대로 이해를 못하고 넘어가는 경우가 종종있다. 그래서 부분을 최대한 아는 범위에서 정리를 하고자 한다.

어떤 감별사가 (tea) 먼저 넣고 우유(milk) 넣은 차와 우유를 먼저 넣고 차를  다음에 넣은 차를 구분할 있다고 한다. 그리고 감별사는 테스트에서 다음과 같은 결과를 얻었다.

what pour first?

 

tea first

milk first

합계

감별사

tea

5

0

5

milk

1

4

5

합계

6

4

10

 이때 감별사가 정말 어떤 것이 먼저 들어간 차인지를 알아낼 있는 감별력이 있는지 없는지 어떻게 통계적으로 말할 있을까? 피셔는 이것을 초기하 분포라고 생각해서 해결할  것을 제안하였다.

위의 문제는우리가 흔히 접하는 확률문제와 똑같다고 것이다. 주머니속에 빨간구슬 6(위의 문제에서 tea 먼저 넣은 경우) 파란 구슬 4(위의 문제에서 milk 먼저 넣은 경우) 들어 있을때 5개를 무작위로 반복없이 뽑을때 빨간 구슬이 5 파란구슬이 0 나올 확률이 얼마인가? 라는 문제 말이다.

, 피셔는 감별사가 차를 먼저 넣은 경우가 몇건인지(5) 우유를 먼저 넣은 경우의 차가  건인지(5) 이런 marginal .  그리고 감별사가 그럼 위와 같이 나올 확률값을 계산할 있다. 이것은 초기하분포(hypergeometric distribution)으로 전체 10 ( = 6+4) 중에 5 건을 뽑는데  차를 먼저 넣은 것으로 감별을 경우가 5 그렇지 않은 경우(우유를 먼저 넣은 경우) 0 확률값을 계산할 있다.

6C5 * 4C0

=

0.0338

10C5

여기서 각셀값이 전체 5 넘어갈 없기 때문에 값은 결국 p-value값이 된다.  유의 수준 5%에서 ”Ha:  감별사의 감별력있다라는 대립가설을 채택한다.

셀의 빈도에 따른 확률값을 계산해보면 다음과 같다.

4

3

 

2

3

p=  0.0238

 

 

 

3

2

 

3

2

p= 0.4762

 

 

 

2

3

 

4

1

p= 0.2381

 

 

 

1

4

 

5

6

p= 0.0238

이것을 일반화 하다면 다음과 같이 있다.

B1

B2

Totals

A1

a

b

a+b

A2

c

d

c+d

Totals

 a+c 

 b+d 

n



A
B 변수 사이에 아무런 관련이 없는 독립이라고 귀무가설하에 a, b, c, d 셀의 빈도수이고 a+b, c+d 주어진 값이라고 하자. 우리는 이것을hypergeometric 분포로 이렇게 나올 확률값을 다음과 같이 계산할수 있다


{(a+c)에서 a개를 뽑을 확률 }* {(b+d)에서 b개를 뽑을 확률}   (a+c)! *(b+d)!
= a! c!*c! d!
n개에서 (a+b)개를 뽑을 확률 n!
  ( a+ b)! *(c+ d)!

피셔의 정확검정은 통계적으로 범주형 자료분석의 지평을 열었다는데 상당한 의미가 있다. 따라서 제대로 이해하는 것은 아주 중요할 듯 하다.

Posted by wishart
,

의학통계에서 가장 많이 사용하는 통계분석방법론은 법주형자료(categorical data)일 것이다.

이 부분을 공부하면서 가장 처음 만나게 되는 것이 오즈(odds), 오즈비(odds ratio), 상대위험도(relative risk(chance))와 같은 용어이다.  그런데 이런 용어들은 자주 나오지만 왜 이런 개념이 나오게 되었고 왜 사용하는지 정확히 알고 있는 사람은 별로 없다.

이것을 설명하기 위해서 다음과 같은 예를 들어보자. 가령 당신은 오늘의 운을 테스트 하기 위해서 Bassassinator를 사용한 경우와 어떤 미끼도 사용하지 않을 경우에 대해서 각각 100번씩 시도를 하여 낚은 물고기를 횟수를 다음과 같이 기록하였다. 즉 여기서는 당신이 몇번 던졌는지 정확히 알 수 있고 이것은 통계적으로  모집단의 수와 일치한다.

  # of times caught # of times not caught Total # of casts
Bassassinator 50 50 100
No bait 2 98 100

1. 오즈(odds)

  당신이 물고기를 잡을 확률(P) / 물고기를 한 마리도 잡지 못할 확률 (1-P) 으로 물고기를 잡을 확률이 물고기 잡지 못할 확률에 몇 배가 되는 가의 값이 된다. 아래 결과에서 보듯이 Bassassinator을 사용했을때 물고기를 잡을 확률은 잡지 못할 확률에 1배이므로 같다고 할수 있다. 그렇지만 No bait를 한 경우는  물고기를 잡을 확률이 훨씬 작아진다.

   Bassaddinator 오즈 (odds) = a/b=50/50 = 1

   No bait의 오즈 (odds)= c/d=2/98 = 0.0204

2. 오즈비(odds ratio)

오즈비는 위에서 구한 오즈의 비율이다. 아래에서 보듯이 당신이 Bassassinator를 사용한 경우 물고기를 잡을 확률비는 no bait를 사용한 경우의 물고기를 잡을 확률비 대비 50배가 높다고 할 수 있다.

   Bassassinator vs. no bait 의 오즈비 =1.0/0.02 = 50.

3. 상대위험도(relative risk(chance))

 당신이 Bassassinator를 사용하고 물고기를 잡을 확률 = a/(a+b)= 50/100 = 0.50

 당신이  no bait의 경우  물고기를 잡을 확률 = c/(c+d)= 2/100 = 0.02

상대 위험도 ( relative risk ) =

 Bassassinator를 사용하고 물고기를 잡을 확률 /no bait의 경우  물고기를 잡을 확률  =  0.5/0.02 = 25

위에서 보듯 누구에게나 직관적이고 쉬운 개념은 상대위험도이다. 위의 경우 해석을 한다면 당신이 Bassassinator을 사용한 경우에 물고기를 잡을 확률이 25배가 높다고 할 수 있다. 너무나 간단하게 해석이 된다. 그렇다면 왜 오즈비를 사용하는 것일까?

여기서 이런 의문이 생길 수 밖에 없다.  이 답은 다음과 같다.

거의 모든 연구는 실제로 처리(treatment)그룹과 대조(control)그룹의 모집단수를 알 수  없다. 왜냐하면 연구자가 할 수 있는 것은 샘플수를 조정할 수 있을 뿐이다. 가령 위의 예를 다음과 같이 바꿔보자.

아래의 표는 물고기를 잡은 100명의 낚시꾼을 조사한 결과 이들중 40명이 Bassassinator를 사용하였다. 그리고 100명의 물고기를 한마리도 잡지 못한 낚시꾼을 조사한 결과 단지 이들중 20명이 Bassassinator를 사용한 것으로 조사되었다. 즉 전체 물고기를 잡은 사람수를 구할 수 있는 방법은 없다.  즉, 연구자는 각각의 모집단의 수를 알 수 없다.

  Bassassinator use No Bassassinator Total # 
Caught fish 40 60 100
Caught nothing 20 80 100

그래서 이때 모집단을 알 수 없기 때문에 대신 오즈비를 사용하게 된다.

오즈 (Bassassinator를 사용하고 물고기를 잡을 확률/ 잡지 못할 확률) =  40/60 = 0.67

오즈 (No Bassassinator 경우  물고기를 잡을 확률/ 잡지 못할 확률) =  20/80 = 0.25

 따라서,

성공적(물고기를 낚은)인 낚시꾼이 Bassassinator 를 사용하는 비율과 실패한(물고기를 낚지 못한 ) 낚시꾼의

오즈비(Odds ratio) =  0.67/0.25 = 2.7

이것은 물고기를 잡은 낚시꾼들은 물고기를 낚지 못한 낚시꾼들에 대비해서 Bassassinator를 2.7배 더 사용하는 경향이 있다라고 해석을 해야한다.

 흔히 범하는 실수는 Bassassinator를 사용하는 낚시꾼들은 물고기를 낚을 확률이 2배가 높다라고 해석하는 경우가 있는데 이것은 잘 못된 해석이다.


Posted by wishart
,

카이제곱 검정은 카테고리 변수간 차이 혹은 관계를 분석하기 위해서 사용하는 아주 유용한 통계적인 검정법이다. 이것은 직관적으로 카테고리 변수라는 말에서 있듯이 지역과 정치적 선호도, 성별과 상중하 성적레벨, 혹은 음식종류와 비만등과 같은 카테고리 변수를 연구를 하고자 카이제곱 검정은 매우 유용하다.

카이제곱 검정은 크게 다음과 같은 두가지의 다른 상황에서 사용을 있는 상당히 유용한 검정법이다.

1.    적합도 검정 (goodness-of-fit test): 관측된 데이타가 예측한 분포를 따르는지 검정하는 방법이다.  예를 들자면 카지노에 룰렛이 공정하게 만들어졌는가 테트스를 있다. 만약 룰렛이 만들어 졌다면 수백번 돌려서 각각의 숫자에 같은 확률로 떨어져야 하는데  실제 우리가 돌려 테스를 한다고 할때 반드시 같은 확률로 떨어지진 않는다. 그렇다면 어떻게 이것이 제대로 만들어졌는지 테스트 있을까? 바로 이것을 검정하는 것이 적합도 카이스퀘어 검정법이다.

예제> 아래의 표는 주사위를 60 던져서 각각 나온 관측값과 실제 만들어졌다면 각각 1/6 나와야 하므로 기대값은 이때 각각의 셀에 10 된다.

그렇다면 주사위는 제대로 만들어진 것인가?

주사위 눈의 수

관측횟수(Oi)

기대횟수(Ei)

1

16

10

2

5

10

3

9

10

4

7

10

5

6

10

6

17

10

Total

60

60

 

이것을 테스트 하는 방법은

  

                                  = 13.6

으로  자유도 5 ( 전체카테고리 수에서 1 ) 갖는 카이제곱 분포를 따른다.

이것의 p-value 1.8%이다. , 주사위는 공정하게 만들어졌다고 없다는 결론을 얻는다.

2.    독립성검정 (Testing Independence) : 두개의 확률변수(random variables) 서로 독립인지를 검정하는 방법이다. 예를 들면 흡연과 폐암, 교육수준과 수입,  나이와 정당선호도와 같은 인과관계 혹은 관련 변수들이 서로 독립인지테스트 하는 방법이다. 여기서 독립이라는 의미는 인과관계 혹은 연관이 없다는 말이 있다.

예제> 일반적으로 학교에서 남자들이 많이 문제를 일으킨다는 인식이 있는데 정말 그런지 독립성 테스를 해보자.

 

Got in Trouble

No Trouble

Total

Boys

46 (40.97)

71 (76.02)

117

Girls

37 (42.03)

83(77.97)

120

Total

83

154

237

 

자유도 3 갖는 카이스퀘어 통계량

 

 

이것은 p-valuep< 20% 이므로 남학생이 여자보다 학교에서 문제를 많이 일으킨다고 없다.

여기서 주의할 것은 카이제곱검정은 독립성만 테스트 하는 것이지 남학생이 여자보다 문제를 일으킨다는 것을 테스트하는 것은 아니다. 관련이 없는지 있는지만을 테스트한다고 생각하면 된다. 남학생이 여자보다 문제일으키는지에 대한 테스트는 odds ratio 이용해야한다. 독립성 테스트에서 독립이 아니라는 결론을 얻고 후에 말이다.

 


Posted by wishart
,