Sas에서 box-cox 변환을 수행하는 방법


박스콕스 변환(box-cox 변환)은 비정규 분포 데이터 세트를 보다 정규 분포된 세트로 변환하는 데 일반적으로 사용되는 방법입니다.

이 방법의 기본 아이디어는 다음 공식을 사용하여 변환된 데이터가 정규 분포에 최대한 가깝도록 λ 값을 찾는 것입니다.

  • y(λ) = (y λ – 1) / y ≠ 0인 경우 λ
  • y(λ) = log(y) y = 0인 경우

PROC TRANSREG 프로시저를 사용하여 SAS에서 λ에 사용할 최적의 값을 식별할 수 있습니다.

다음 예에서는 이 절차를 실제로 사용하는 방법을 보여줍니다.

예: SAS의 Box-Cox 변환

SAS에 다음과 같은 데이터 세트가 있다고 가정해 보겠습니다.

 /*create dataset*/
data my_data;
    input xy;
    datalines ;
7 1
7 1
8 1
3 2
2 2
4 2
4 2
6 2
6 2
7 3
5 3
3 3
3 6
5 7
8 8
;
run;

/*view dataset*/
proc print data =my_data;

x를 예측 변수로 사용하고 y를 응답 변수로 사용하여 PROC REG를 사용하여 이 데이터 세트에 간단한 선형 회귀 모델을 적용한다고 가정합니다.

 /*fit simple linear regression model*/
proc reg data =my_data;
    model y = x;
run ;

출력 진단 플롯에서 잔차 대 분위수 플롯 (가운데 행의 가장 왼쪽 플롯)을 표시하여 잔차가 모델에서 대략적으로 정규 분포되어 있는지 확인할 수 있습니다.

잔차가 그래프의 오른쪽 대각선을 따라 대략적으로 놓여 있으면 일반적으로 잔차가 정규 분포를 따른다고 가정합니다.

그래프를 보면 잔차가 직선 대각선을 많이 따르지 않는 것을 볼 수 있습니다.

이는 회귀 모델의 반응 변수가 정규 분포를 따르지 않을 가능성이 있음을 나타냅니다.

응답 변수는 정규 분포가 아니기 때문에 PROC TRANSREG를 사용하여 응답 변수를 보다 정규 분포가 되도록 변환하는 데 사용할 수 있는 λ 값을 식별할 수 있습니다.

 /*perform box-cox transformation*/
proc transreg data =my_data;
    model boxcox (y) = identity (x);
run ;

Box-Cox를 SAS로 전환

출력은 λ에 사용하기 위해 선택된 값이 – 0.5 임을 알려줍니다.

따라서 원래 응답 변수 y 를 변수 y = (y -0.5 – 1) / -0.5 로 대체하여 간단한 선형 회귀 모델을 적합할 수 있습니다.

다음 코드는 이를 수행하는 방법을 보여줍니다.

 /*create new dataset that uses box-cox transformation to create new y*/
data new_data;
   set my_data;
   new_y = (y**(-0.5) - 1) / -0.5;
run ;

/*fit simple linear regression model using new response variable*/
proc reg data =new_data;
    model new_y = x;
run ;

잔여 대 이 모델 출력의 분위수 도표를 보면 잔차가 직선 대각선을 따라 훨씬 더 가깝게 위치하는 것을 볼 수 있습니다.

이는 Box-Cox 변환 모델의 잔차가 훨씬 더 정규 분포를 띠고 있음을 나타내며, 이는 선형 회귀 분석의 주요 가정 중 하나를 충족합니다.

추가 리소스

다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS에서 정규성 테스트를 위해 Proc 일변량을 사용하는 방법
SAS에서 잔차 그림을 만드는 방법
SAS에서 Levene 테스트를 수행하는 방법

의견을 추가하다

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