본문 바로가기
의학통계/통계분석

다중회귀모형 - Multiple Linear Regression

by boogler 2022. 6. 22.
반응형

다중회귀모형 - Multiple Linear Regression

 

다중회귀모형 (Multiple Linear Regression) 은 하나의 변수가 아닌 여러 변수(Multiple predictors)에 의해 Y(=response, outcome) 변수는 영향을 받고, 이 여러 변수를 Confounding이라고 합니다. Confounding 변수를 Simple Linear Regression에 적용하여 실제 여러 predictors와 outcome 간의 잠재적인 인과관계(causal relationship)를 분석하는 방법입니다.

 

여러 predictors가 함께 모형에 있는 경우 서로 선형적 상관관계가 있는 다중공선성(Multicollinearity)을 어떻게 Check 하는지도 함께 알아보겠습니다.


< Multiple Linear Regression 예제 >

 

Ex. BMI가 LDL에 어떤 영향을 주는지 age, smoke(흡연 여부), drink(음주 여부)의 Confounding변수를 통제한 후 그 관계를 알아보겠습니다.

 

< SAS Code >

 

- Y=LDL, 관심 변수 X=bmi

- smoke (0/1), drink(0/1) 은 사전에 0,1로 미리 코딩해 두어야 합니다.

 

proc reg data=test.test_data;
model LDL=age bmi smoke drink/clb;
run;

 

▶ 만약 smoke, drink의 범주형 변수가 3개 이상이거나 문자로 되어 있는 경우 아래 2가지 방법이 가능합니다.

     1) 새로운 변수 생성 

          ex) smoke 가 1,2,3으로 이루어졌다면 아래와 같이 새로운 변수(가변수) s1, s2, s3를 만들어

                이 중 s1을 reference로 한다면, model LDL = age bmi s2 s3/clb; 와 같이 작성합니다.

                if smoke=1 then s1=1;else s1=0;
                if smoke=2 then s2=1;else s2=0;
                if smoke=3 then s3=1;else s3=0;

 

     2) proc glm은 class 문을 지원하므로 이런 경우는 glm을 사용하는 것이 훨씬 편리합니다.

           ex) proc glm data= test.test_data;

                 class smoke drink;

                 model LDL=age bmi smoke drink/solution;

                 run;

 

< SAS Output >

 

Multiple linear Regression Output

Age, smoke, drink를 보정한 후 결과를 보면 LDL은 BMI가 1 unit 증가할 때 1.04 만큼 유의하게(p-value <.001) 증가한다고 할 수 있습니다. 덧붙여서 나이는 1살 증가할때 LDL은 0.5 만큼 유의하게, 담배를 피우는 사람이(vs. 안 피는 사람) 유의하지는 않지만 2.93 만큼 LDL을 증가하게 하며, 음주자 또한 유의하지 않지만 0.42 만큼 LDL이 증가합니다.

 

< 다중공선성 (Multicollinearity) Check>

 

다중회귀모형에서 X변수들은 서로 독립이어야 합니다. 그러나, 의학이나 사회현상에서 완전한 독립적인 변수는 존재하기 힘들어 실제로는 심한 다중공선성이 없으면 Confounding 변수로 함께 사용합니다.

 

* 먼저 두 X 변수의 Correlation 0.8 이상이면 의심해 봅니다.
* 분산팽창지수(Variation Index Factor, VIF)가 10 이상이면 문제가 있습니다.
* 상태지수(Condition Index)가 15 이상 이면 다중공선성을 의심하고,30 이상 이면 강한 다중공선성이 존재합니다. ( 때로는 100이상을 사용하기도 합니다. 정확하게 정해진 기준은 없습니다.)
* Proportion of Variation 이 0.5 이상이면서 상대적으로 큰 설명변수가 존재하면 그 변수가 다중공선성 문제를 만들 수 있는 잠재 변수입니다.

 

< SAS Code >

 

proc reg data=test.test_data;
model LDL=age bmi waist tchl hdl hba1c tg/vif collin;
run;

 

< SAS Output >

다중공선성 Output

- VIF는 10 이상이 없습니다.

- Condition Index 30 이상이 빨간색 box 표시 부분(5,6행)인데, 5행의 Proportion of Variance가 0.5 이상은 없습니다. 6행에서 BMI, Waist의 Proportion of Variance 가 0.56094, 0.95458로 0.5 이상입니다.

- 따라서 BMI와 waist 는 둘중 하나만 사용해야 합니다.

 

댓글