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에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS에서 이상값을 식별하는 방법
SAS에서 요리 거리를 계산하는 방법
SAS에서 히스토그램을 만드는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다