끄적이는 통계분석/SAS를 이용한 통계분석

SAS를 이용한 대응비교 검정(Paired t-test, Wilcoxon's sign rank test)

요맘때10 2019. 1. 19. 10:45
반응형

 

저번엔 군 간 차이를 비교하는 방법에 대해 알아봤는데, 이번엔 짝지은 데이터의 검정에 대해 알아볼 것이다.

많은 임상시험 분석 시 의약품 투여 후 일정기간 동안의 변화량을 분석하여 유효성, 안전성을 판단한다.

 

 

1. Paired t-test- 집단 내 변화량 평균을 비교하는 방법.

- 귀무가설은 d1-d2=0, 대립가설은 d1-d2≠0

 

 오늘도 역시 SAS를 이용하여 분석할 것이고, Sample data는 간단히 data를 만들어 보았다. 예시 자료를 이용하여 Visit1~Visit2 기간동안의 수축기혈압 차이가 있는지 살펴보고자 한다.

 

- 아래 코드는 예제 data SAS Code.

data ex1;
input id $4. visit $4. sbp 3.;
datalines;
S01 V01 144
S02 V01 123
S03 V01 121
S04 V01 119
S05 V01 124
S06 V01 120
S07 V01 126
S08 V01 117
S09 V01 119
S10 V01 129
S01 V02 124
S02 V02 145
S03 V02 111
S04 V02 129
S05 V02 120
S06 V02 123
S07 V02 135
S08 V02 130
S09 V02 125
S10 V02 121
;
run;

 

- paired t-test분석이 가능한 상태로 데이터 형태를 변형하여야 한다.

proc sql;
create table a as
select id, visit, sbp as sbp1
from ex1
where visit="V01";

create table b as
select id, visit, sbp as sbp2
from ex1
where visit="V02";

/*분석 data*/
create table c as
select a.id, a.visit as visit1, sbp1, b.visit as visit2, sbp2, sbp1-sbp2 as diff
from a left outer join b on a.id=b.id;
quit;

 

- Paired t-test의 분석은 c data를 이용한다.

 

1) 정규성 검정

- 집단이 정규성을 띄는가를 확인할 수 있다.

- 정규성을 만족하면 모수적 방법인 Paired t-test를 이용, 아니라면 이의 비모수적 방법인 Wilcoxon sign-rank test를 이용하여 분석한다.

 

- 아래 코드는 정규성 검정의 SAS Code.

proc univariate data=c normal;
 var diff;
run;

 

반응형

- 정규성 검정도 여러가지 방법이 있지만 Shapiro-Wilk 결과를 보는 것이 일반적이다.

- 상황에 따라서 다른 방법의 결과를 보는 것이 타당하지만 심화로 들어가므로 여기서는 언급하지 않겠다.

- Shapiro-Wilk p값=0.9652로 자료는 정규성을 띄고 있다고 볼 수 있다.

- 정규성을 띄므로 paired t-test를 시행한다.

 

- 아래 코드는 paired t-test의 SAS code.

proc ttest data=c;
 paired sbp2*sbp1;
run;

 

 

 

2) 변화량 기초통계량 확인

- Difference=Visit2의 SBP-Visit1의 SBP

- 변화량의 평균은 2.1, 표준편차는 약 12.54로 계산되었다.

 

3) Paired t-test 결과 확인

- p값은 0.6092로 귀무가설을 기각하지 못한다.

- α=0.05 하에서 Visit1~Visit2의 수축기혈압 차이가 있다고 볼 수 없다는 결론을 얻을 수 있다.

 

2. Wilcoxon's sign rank test

- 정규성 검정을 통과하지 못하여 모수적 검정방법인 paired t-test방법을 사용할 수 없을 때, 이에 대응되는 비모수적 검정방법이다.

 

- 아래 코드는 Wilcoxon's sign rank test의 SAS Code.

proc univariate data=c;
 var diff;
run;

 

 

- 다른 테이블보다 제시한 테이블을 봐야한다.

- 부호 순위 항목을 보면 되는데 p값은 0.5762로 paired t-test와 같이 귀무가설을 기각하지 못한다.

- 역시 α=0.05 하에서 Visit1~Visit2의 수축기혈압 차이가 있다고 볼 수 없다는 결론을 얻을 수 있다.

반응형