본문 바로가기

[학습] 데이터분석방법론: R

Introductory statistics with R: chapter 11


Multiple regression에 대해 다룹니다.

 

Multiple regression이란, 회귀분석을 여러 변수에 대해서 시행하는 것을 말하며 아래와 같은 식으로 기술됩니다.

* Plotting multivariate data

다변수 데이터를 분석할 때, 일단 기본적인 관계를 파악하기 위해 시각화를 해봅니다.

pairs() 함수를 이용해 모든 변수 간의 "pairwise scatterplot"을 얻을 수 있습니다. 여러 변수들 각각의 쌍에 대해서 histogram이나 barchart 등을 만들어도 됩니다. 하지만 여러 쌍을 만들기엔 불편함이 있으니 pairs()를 사용!

mex는 inter-line distance를 줄이며, gap은 subplot 사이의 간격을 의미한다. cex.labels는 중간에 대각선으로 들어가는 variable label의 font size를 조절한 것이다.
그냥 plot(cystfibr)만 입력해도 유사한 plot이 나온다. plot은 argument 형태에 따라 적합한 plot을 자동으로 시행하도록 만들어졌기 때문.

pairwise scatterplot의 장점은, 여러 변수 간의 관계가 한눈에 파악된다는 점입니다. 언뜻 봐도 선형 관계를 보이는 몇몇 변수들을 파악할 수 있습니다. (age-height, age-weight 등등)

 

* Model specification and output

다변수도 마찬가지지만, 선형회귀분석의 기본은 설명변수들로 linear model을 만드는 것이다.

summary를 시행하면 아래와 같은 결과를 얻을 수 있는데, 해석이 중요함.

F statistics에서 보이는 p-value는 전체 linear model이 의미가 있는지를 의미한다. 이 경우 p-value < 0.05로, 전체 식 자체는 유의미하다고 볼 수 있다. 

하지만 개별 요소에 대한 p-value는 전부 0.05 이상인데, 이는 큰 의미가 없다. 왜냐하면 이 t-test가 보여주는 것은, 하나의 변수를 제외한 나머지 변수는 전부 남겨둔 채로 분석을 진행하기 때문이다. (t test only say something about what happens if you remove one variable and leave in all the others). 

또한, R-squared와 adj. R-squared의 차이가 심한 것을 볼 수 있다. 이는 degree of freedom에 비해 설명 변수가 너무 많기 때문이다. 이런 경우, 적절한 변수 선택 과정을 거쳐 관계성이 낮은 변수들은 제외하는 것이 도움이 된다.

  ** 참고: R adj는 아래와 같이 계산된다. n은 sample size, p는 설명변수의 갯수이다. 즉, 설명변수의 개수가 증가하는 것은 adjusted R square는 감소해 보정해주나, 보정하지 않은 R sqaure는 유의하지 않은 설명변수라도 추가되는 경우엔 증가하는 경향성이 있다. 따라서 그 차이가 증가하는 것! 

 

ANOVA table은 또 다른 정보를 준다. 다변수 회귀분석모델에서 ANOVA를 시행하면, 변수를 차례로 하나씩 제거해 가며 분석을 시행하기 때문에, summary에서 시행한 t-test보다 의미있는 결과가 나왔다. 

 

* Model search

steps() function을 이용하면 forward, backward, both를 모두 간편히 시행이 가능하나, 교과서에서는 단계적으로 backward 방식을 시연하였다.

먼저, 설명변수로 모든 변수를 선택한 뒤 summary를 시행한다. 유의성은 sex가 가장 떨어지지만, 본 교재에서는 범주별로 임상상황을 생각해서인지 lung과 관련된 parameter를 먼저 제거하였다. (4개의 parameter가 전부 유의성이 떨어져서 인가?)

각 요소들의 유의성 변화를 잘 보며 lung parameter들을 모두 제거하였다. 제거 과정에서 p-value가 유의수준 이하로 감소한 경우가 없었으므로 별 무리 없이 제거할 수 있었다.

이후 환자의 신체 크기/발달상태를 나타내는 지표들 중 유의성이 낮은 것부터 정리를 한다. 단, weight와 bmp(body mass percentage)는 유의성이 높으므로 제거하지 않도록 주의한다. 교과서에서는 역시 sex를 먼저 제거하고, 이후 age, height, bmp를 차례로 제거했다. 그리고 최종적으로 weight만 유일한 변수로 선택되었다.

하지만 이 결과는 original article과 다르며, 일반적인 방법으로 model search를 진행한 것과도 다르다. p-value에 기반해서 제거한 backward elimination에서는 아래와 같이 weight, bmp, fev1이 모두 변수로 선택되었다. (그리고 원래 data의 original reference에서도 weight, fev1, bmp가 변수로 선택되었다)

step() function을 이용해도 동일한 결과를 얻을 수 있다.

개별 변수에 대해서 각각 확인해보면 age, weight, height 모두 유의한 결과가 나온다. 저자는 weight가 유일하게 선택된 것은 우연적인 현상이라고 한다. 그런데 생각해보면 age, height는 중간에 유의성이 매우 떨어져서 제거된 변수들이다. 즉, model search 과정에 따라 매우 유의한 변수들이 제거되는 경우가 있을 수 있을 수 있음을 주의해야 한다.

결론적으로, 각 변수들이 가지는 임상적인 의미를 생각하면서 model search를 해야한다는 이야기인 듯.

 

전진선택법(forward selection)

: p-value가 낮은, 즉 유의성이 높은 변수부터 순차적으로 추가함. 대체로 적은 수의 변수가 선택됨.

후진제거법(backward elimination)

: 모든 변수를 넣은 뒤 p-value가 높은, 유의성이 낮은 변수부터 제거함. 대체로 많은 수의 변수가 선택됨.

단계선택법(stepwise selection)

: 독립변수가 하나도 없는 모형에서 출발, 유의확률이 낮은 변수부터 추가하며 마다 모든 독립변수의 유의확률을 재평가하여 유의성이 떨어지는 변수가 있으면 제거하고, 다시 모형 변수 재포함할 변수가 있는지 검토함.

 

다중공선성: 다변수분석에서 독립변수 간의 선형적 종속관계가 존재하는 경우, 이를 다중공선성이라고 한다. 이런 경우 더 임상적인 의미가 크고 관련성이 높은 변수 한 개만을 이용해야 한다.

 

공차한계(tolerance): 1-R-squared, 분산팽창요인(Variance inflation factor, VIF) = 1/tolerance

: 다중공선성이 있는 것으로 의심되는 두 변수를 각 종속, 독립으로 두고 단일회귀분석을 시행해 구한다. R-squared값은 이 때 도출된 R-squared 값을 의미한다. 보통 R-squared > 0.9, tolerance < 0.1, VIF > 10 을 "다중공선성"의 cufoff value로 생각한다. 더불어, 이미 종속관계가 알려져 있는 독립변수라면 애초에 다변수 분석 시 하나만을 선택해 사용함.

 

step()

다변수 선형회귀에서 변수 선택법은 1) 전진선택(forward selection) 2) 후전소거(backward elimination) 3) 단계적 선택(stepwise selection) 이 있다. steps() 함수는 이를 자동적으로 실행해주는데, 아래와 같이 사용할 수 있다.

 

step(lm(종속변수 ~ 설명변수, 데이터세트), scope = list(lower = ~1, upper = ~설명변수), direction = "변수선택방법")

lower=~1은 상수항부터 시작한다는 얘기고, uppser=~설명변수 에는 모든 설명변수를 넣어 최대값을 설정한다.

 

* Step()의 한계

Stepwise selection은 "모든 모형을 비교하지 않는다"는 단점이 있다. 그래서 leap 패키지에 있는 all subset regression을 이용하면 도움이 된다.

install.packages('leaps')

library('leaps')

이후 regsubsets(설명식, data=데이터) 를 이용한다. plot을 통해 시각화해 확인할 수 있으며, 최선의 모형을 고르는 기준으로는 R2, adjusted R2, 또는 Mallows Cp statistic 중 선택할 수 있다. Mallows Cp statistic는 단계적 회귀모형에서 종료의 기준으로 사용되는 통계량으로, 모형의 예측인자의 수(절편 포함)에 근접한 경우 좋은 모형으로 알려져 있다.

(참고: rstudio-pubs-static.s3.amazonaws.com/190997_40fa09db8e344b19b14a687ea5de914b.html)