7강 로지스틱 회귀분석
Logistic regression analysis vs. general linear regression analysis - 회귀분석- x와 y의 관계(선형함수)를 통해서, x변수를 가지고 y변수를 예측 ex> E(Y)= α+ βX ? X변수와 Y변수가 모두 연속형 변수일 때 사용. - 하지만, 실제 임상연구에서는 Y변수가 binary, dichotomous인 경우가 많음 (ex> 치료 성공/실패) ? 이럴 때 로지스틱 회귀분석을 사용 -outcome변수(종속변수, y변수)가 binary, dichotomous 일 때 로지스틱회귀분석을 사용 (x변수는 연속형이건, 범주형이건, ordinal이건 상관 없음)
logit transformation - x값에 따라서 outcome이 0,1 두가지 값을 갖게 되는 경우 아래의 그래프에서 점으로 찍힌 형태가 나오게 됨
이러한 그래프를 선형으로 바꾸어 주는 함수식을 link function 이라고 하며, logit transformation을 통해 이분화 변수인 outcome을 확률의 개념으로 바꾸어서 x변수를 가지고 y변수를 예측하게 됨.
이 logit transformation을 통해 1) 일반선형회귀모델의 특성을 모두 가지게 되면서, 2) 종속변수가sigmoid curver를 따르는 연속적인 변수가 됨.
l 결국 종속변인이 이분(dichotomous) 명목척도로 표현되는 회귀분석으로 혼돈요인 (confounder)의 영향을 배제한 후 - 예측인자(predictor)나 진단인자(diagnostic factor)의 선택, 기여도 순위 결정 - 사건발생 가능성(probability), 교차비(odds ratio, OR)의 산출 하는 것이 로지스틱 회귀분석 (이때, 종속변인은 dichotomous, 독립변인은 연속 또는 이산변인 등 상관이 없으며 정규분포의 가정을 전제로 하지 않는다.) - X변수는 categorical variable이던, continuous variable이건 상관 없음
Logistic regression in STATA .logit y변수 X1변수 X2변수 ? Beta coefficient 값을 보여줌
β coefficient= -2.047181, p=0.007
.logit y변수 X1변수 X2변수, or ? OR값을 보여줌
OR=0.129, p-=0.007 (STATA에서는 reference가 가장 작은 숫자로 코딩된 값이 됨)
만일 continuous variable이 아닌 categorical variable로 넣고 싶으면 변수명 앞에 i.을 찍으면됨 ex> .logit y변수 x1 i.x2
다중공선성 multicollinearity - 여러 변수를 함께 넣어서 그 영향을 볼 수 있다는 것이 로지스틱 회귀 분석의 큰 장점 (즉, 다른 변수의 영향을 control하고도 특정 변수가 독립적으로 유의한지를 볼 수 있다 = 각각의 독립변수들이 결과변수에 미치는 영향을 다른 변수의 영향을 보정한 상태에서 알아낼 수 있게 해준다) ? 하지만, 여러 변수들이 한꺼번에 모델에 들어가다보니, 변수들간의 교호작용 (Interaction★)의 문제가 발생 ? 이를 사전에 파악하여 모델에 들어갈 변수를 선정하는 것이 매우 중요
- ★multicollinearity: 두 변수가 서로 선형적인 관계에 있으며 강한 관련성을 보일 때, 분산이 비정상적으로 커지게 되는 현상 ? 서로 선형적인 관계에 있는 두 변수가 모델에 함께 들어가게 되면, 하나씩 들어갈 때 significant했던 변수가 의미 없어지기도 하고, 의미 없던 변수가 살기도 한다. 즉, 두개의 독립변수 사이에 상관관계가 매우 클 때는 (한 변수를 알면 자동적으로 다른 변수를 예측할 수 있을 때에는), 다변수 분석이라도 두개의 독립변수가 결과에 미치는 영향을 따로 분리해서 산출할 수는 없다.
- 모델에 변수를 투입하기 전에 Correlation coefficient, (보통 r 값이 0.9보다 클 경우 분석에 문제가 발생하며 0.8 이상이면 문제가 발생할 가능성이 있다) 나 chi square test, variance inflation factor (분산팽창계수), tolerance(상태지수) 등을 통해서 변수들간의 상호관계, 상관성을 미리 알아두어야 한다. (그러기 위해 수많은 노가다가 필요하며, 이 노가다를 소홀히 하면 결국 제대로 된 모델이 안 나온다… )
- 다중공선성이 있는 변수들은 어떻게 처리해야 하나? 1) 그 변수를 모형에서 제외한다. 2) and/ or 조합을 이용하여 변수들을 합치거나 scale을 만들어 변수들을 합친다.
모델적합성 -Likelihood: Model에 대한 가정 하에 우리가 가진 데이터가 모델을 설명하는 확률 -LRT (likelihood ratio test), wald test, score test 등을 통해서 모형 적합성을 검정 -★Best fitting, most parsimonious, biologically reasonable을 최대한 살리는 것이 중요 - Pseudo R2값 : 1에 가까울수록 모델 설명력이 높음 - Hosmer and lemeshow test- “lfit 명령어” lfit 을 입력했을 때 p>0.05여야 적합하다는 판단을 내리게 됨
Stepwise logistic regression -종속변수와 설명변수 간 관계에 대해 어떤 사전지식도 없는 경우에 중요한 변수들을 추리는데 유용하게 쓰일 수 있는 방법 (explorative stage에 유용) -중요도에 따라서 (p-value, β coefficient값에 따라서) 모델에 포함이 되는지 결정하는 알고리즘
1) Forward selection β 값을 큰 순서대로 나열. -하나도 없는 것에서 시작해서 β값이 큰 순서대로 모델에 집어 넣음 -더 이상 모델 설명력이 좋아지지 않는 순간 설명변수를 넣는 일을 중단 ? 최종 모델 2) Backward selection -모든 설명 변수를 다 넣고, 중요하지 않은 설명변수부터 하나씩 빼나감
.stepwise, pr(0.05) : logit (변수명들)
options description
이외의 로지스틱 회귀분석 1) Conditional logistic regression Paired data에서 이용 STATA 명령어 .clogit
2) Ordinal logistic regression STATA 명령어 .ologit y변수 x1변수 x2변수 y변수가 binomial이 아닌 2개 이상의 ordinal variable 일때 여러 값을 가질 때에도 logistic을 돌릴 수 있다!
3) Multinomial logistic regression Outcome y변수가 2개 이상의 값을 가질 때 STATA 명령어 .mlogit y변수 x1변수 x2변수, basecategory(1) STATA에서는 가장 빈도수가 많은 값을 reference 그룹으로 취함
References 박소희 선생님 강의록 송경일, 최종수저 SPSS15를 이용한 임상자료의 분석, 안재억, 유근영저, 의학 보건학 통계분석, SPSS아카데미 |
출처: Bhumsuk`s Cancer Research 원문보기 글쓴이: 김범석