Sas에서 vif(variance inflation factor)를 계산하는 방법


회귀 분석에서 다중 공선성은 두 개 이상의 예측 변수가 서로 높은 상관 관계를 갖고 있어 회귀 모델에서 고유하거나 독립적인 정보를 제공하지 않는 경우에 발생합니다.

변수 간의 상관 정도가 충분히 높으면 회귀 모델을 피팅하고 해석할 때 문제가 발생할 수 있습니다.

다중 공선성을 탐지하는 한 가지 방법은 회귀 모델 에서 설명 변수 간의 상관 관계 및 상관 강도를 측정하는 분산 팽창 계수(VIF) 라는 측정항목을 사용하는 것입니다.

이 튜토리얼에서는 SAS에서 VIF를 계산하는 방법을 설명합니다.

예: SAS에서 VIF 계산

이 예에서는 농구 선수 10명의 속성을 설명하는 데이터세트를 만듭니다.

 /*create dataset*/
data my_data;
    input rating points assists rebounds;
    datalines ;
90 25 5 11
85 20 7 8
82 14 7 10
88 16 8 6
94 27 5 6
90 20 7 9
76 12 6 6
75 15 9 10
87 14 9 10
86 19 5 7
;
run ;

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

점수를 응답 변수로 사용하고 포인트 , 어시스트리바운드를 예측 변수로 사용하여 다중 선형 회귀 모델을 적합시키고 싶다고 가정해 보겠습니다.

PROC REG를 사용하면 이 회귀 모델에 VIF 옵션을 적용하여 모델의 각 예측 변수에 대한 VIF 값을 계산할 수 있습니다.

 /*fit regression model and calculate VIF values*/
proc reg data =my_data;
    model rating = points assists rebounds / lively ;
run ; 

SAS의 VIF

매개변수 추정 테이블에서 각 예측 변수에 대한 VIF 값을 볼 수 있습니다.

  • 포인트: 1.76398
  • 어시스트: 1.96591
  • 리바운드: 1.17503

참고: 이 값은 관련이 없으므로 템플릿의 “가로채기”에 대한 VIF를 무시하십시오.

VIF 값은 1부터 시작하며 상한이 없습니다. VIF를 해석하는 일반적인 규칙은 다음과 같습니다.

  • 1 은 주어진 예측 변수와 모델의 다른 예측 변수 사이에 상관 관계가 없음을 나타냅니다.
  • 15 사이의 값은 주어진 예측 변수와 모델의 다른 예측 변수 사이의 중간 정도의 상관 관계를 나타내지만 특별한 주의가 필요할 만큼 심각하지는 않은 경우가 많습니다.
  • 5 보다 큰 값은 주어진 예측 변수와 모델의 다른 예측 변수 사이에 잠재적으로 심각한 상관 관계가 있음을 나타냅니다. 이 경우 회귀 결과의 계수 추정치와 p-값은 신뢰할 수 없을 가능성이 높습니다.

회귀 모델에서 예측 변수의 각 VIF 값은 1에 가깝기 때문에 이 예에서는 다중 공선성이 문제가 되지 않습니다.

다중공선성을 다루는 방법

회귀 모형에서 다중 공선성이 문제라고 판단되면 이를 해결하는 몇 가지 일반적인 방법이 있습니다.

1. 상관관계가 높은 변수 중 하나 이상을 제거합니다.

이는 대부분의 경우 가장 빠른 솔루션이며 제거하는 변수가 어쨌든 중복되고 모델에 고유하거나 독립적인 정보를 거의 추가하지 않기 때문에 종종 허용되는 솔루션입니다.

2. 예측 변수를 어떤 방식으로 더하거나 빼는 등 어떤 방식으로든 선형적으로 결합합니다.

이렇게 하면 두 변수의 정보를 모두 포함하는 새 변수를 생성할 수 있으며 더 이상 다중 공선성 문제가 발생하지 않습니다.

3. 주성분 분석이나 부분 최소 제곱(PLS) 회귀와 같이 상관 관계가 높은 변수를 설명하도록 설계된 분석을 수행합니다.

이러한 기술은 상관관계가 높은 예측 변수를 처리하도록 특별히 설계되었습니다.

추가 리소스

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

SAS에서 다중 선형 회귀를 수행하는 방법
SAS에서 잔차 그림을 만드는 방법
SAS에서 요리 거리를 계산하는 방법

의견을 추가하다

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