Sas에서 로그 변환을 수행하는 방법
많은 통계 테스트에서는 특정 변수의 값이 정규 분포를 따른다고 가정합니다.
그러나 값이 정규 분포를 따르지 않는 경우가 많습니다 . 이 문제를 해결하는 한 가지 방법은 각 값의 로그를 취하여 변수를 변환하는 것입니다.
이 변환을 수행하면 변수는 일반적으로 정규 분포에 가까워집니다.
다음 예에서는 SAS의 변수에 대해 로그 변환을 수행하는 방법을 보여줍니다.
예: SAS의 로그 변환
SAS에 다음과 같은 데이터 세트가 있다고 가정해 보겠습니다.
/*create dataset*/ data my_data; input x; datalines ; 1 1 1 2 2 2 2 2 2 3 3 3 6 7 8 ; run ; /*view dataset*/ proc print data =my_data;
PROC UNIVARIATE를 사용하여 변수 x에 대한 정규성 테스트를 수행하여 정규 분포인지 확인하고 값 분포를 시각화하는 히스토그램을 만들 수도 있습니다.
/*create histogram and perform normality tests*/
proc univariate data =my_data normal ;
histogram x;
run ;
정규성 테스트 라는 제목의 마지막 표에서 Shapiro-Wilk 테스트의 p-값이 0.05보다 작은 것을 볼 수 있습니다. 이는 변수 x가 정규 분포를 따르지 않는다는 강력한 증거를 제공합니다.
또한 히스토그램은 값의 분포가 정규 분포를 따르지 않는 것으로 나타납니다.
보다 정규 분포된 데이터 세트를 생성할 수 있는지 확인하기 위해 원본 데이터 세트에 대한 로그 변환을 시도할 수 있습니다.
다음 코드를 사용하여 SAS에서 원래 x 값 각각의 로그를 취하는 새 데이터 세트를 생성할 수 있습니다.
/*use log transformation to create new dataset*/
data log_data;
set my_data;
x = log (x);
run ;
/*view log transformed data*/
proc print data =log_data;
그런 다음 PROC UNIVARIATE를 다시 사용하여 변환된 변수에 대한 정규성 테스트를 수행하고 히스토그램도 생성할 수 있습니다.
/*create histogram and perform normality tests*/
proc univariate data =log_data normal ;
histogram x;
run ;
정규성 테스트 라는 제목의 마지막 표에서 Shapiro-Wilk 테스트의 p-값이 이제 0.05보다 크다는 것을 알 수 있습니다.
히스토그램은 또한 값의 분포가 변환 전보다 약간 더 정규화되었음을 보여줍니다.
위에 제시된 Shapiro-Wilk 테스트 결과와 히스토그램을 바탕으로 로그 변환이 원래 변수보다 훨씬 정규 분포 변수를 생성했다는 결론을 내릴 수 있습니다.
추가 리소스
다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.