Posts List

[Data Mining] 4. Regression - Multiple Regression Analysis


Multiple Regression


단순회귀를 잘 이해했다면 다중회귀를 이해하는데 큰 문제는 없다.. 위의 수식에서 확인하듯 두 개 이상의 독립변수가 존재하는 경우며, 단순회귀와 마찬가지로 오차항은 정규분포를 따르는 가정을 한다.

그러다 보니 추정이 필요한 파라미터는 절편1개와(β0) k개의 기울기(β1...βk), 그리고 오차항(ε)의 분산(σ2)가 되며, 추정된 파라미터를 검정하기 위해 단순회귀에서 수행한 t-검정을 k번 수행하게된다. 

※ 앞의 단순회귀 챕터를 학습했다면 t-검정을 여러번 하는 것을 우회하여 f-검정을 수행할 수 있다는 것을 예상 할 수 있다. [단순회귀 챕터로 바로가기]

※ 오로지 예측이 목적이라면 사실 검정은 필요없다. 회귀의 목적이 '어떤 변수가 영향을 주느냐'를 파악하기 위한 분석 목적이라면 검정이 필요하다.

1. 모형의 추정

회귀계수의 추정

대부분의 추정, 검정의 원리가 단순회귀와 유사함으로 자세한 설명은 생략하기로 한다. 아래 설명이 너무 생략되어있다고 생각이 들면 단순회귀 챕터를 좀 더 복습하고 올 필요가 있다.

다중회귀모형은 단순회귀모형과 마찬가지로 독립변수의 파라미터를 추정하기 위해 최소자승법(least squares method)를 사용하며, 종속변수 관측값과 예측값 사이의 오차 제곱합을 최소화하는 파라미터를 찾는다. 마찬가지로 변수의 수만큼 방정식을 도출하기 위해 각 파라미터로 편미분하여 0으로 놓고 (2차 방정식의 미분값(=기울기)가 0이 되는 점이 최소점), k+1개의 연립방정식 문제를 풀면 모든 기울기와 절편을 구할 수 있다.


다만, 단순회귀의 경우는 위 연립방정식을 풀어서 파라미터 추정 공식을 도출할 수 있었지만 다중회귀는 파라미터가 많아 그 표현이 어렵기 때문에 모형과 회귀계수 추정량을 아래와 같이 행렬식으로 표현한다.

기존의 정의에 따라 모형을 관측순으로 나열하면 위와 같고, 이 모형을 단순하게 표현하기 위해 아래와 같이 벡터와 행렬 정의를 이용해 모형을 표현한다. (자세한 유도식은 생략한다.)

  • 다중회귀 모형 : y =+ ε
  • β를 추정할 정규 방정식 : (XTX)β = XTy
  • 회귀계수 벡터 추정량 : = (XTX)-1XTy

오차항(ε)의 분산(σ2) 추정

단순회귀와 마찬가지로 오차항의 분산(σ2)은 잔차(residual/error)제곱합 (SSE : residual/error sum of square)를 자유도로 나눈 잔차평균제곱(MSE : mean squared error)로 추정한다. 단순회귀와 내용은 같음으로 설명은 생략한다.
※ 자유도는 추정파라미터 갯수만큼 잃는데, 추정파라미터는 기울기+절편 임으로 n - (k+1)이 자유도가 된다.

2. 모형의 검정

각 회귀계수에 대해 검정이 필요한데 특히 k개의 기울기에 대해 검정이 필요하다. 결국 k번만큼 t-검정을 수행하여 각 검정통계량 Tj를 구하고, 유의수준(α)와 연계해 p-값이 유의수준 α보다 작으면 귀무가설을 기각시키는 방법으로 검정이 진행된다.

회귀계수의 분포와 t-검정

일단 검정을 하려면 βj에 대한 분포를 알아야 한다. 단순회귀처럼 각각의 분포를 알아볼 수도 있지만, 이번에는 행렬식을 이용해서 전체 추정량의 분포를 한번에 구해보자.

먼저 알아둬야 하는 것은 기울기들의 추정량 벡터인 가 다변량정규분포를 따른다는 것이다. 즉, 확률밀도함수를 2차원이 아니라 n차원으로 나타내야한다.

※ Y가 결정되기 전까지는 잔차로 인해서 정규분포를 가지기 때문에 β도 정규분포를 가진다.

일단 각 추정량은 평균은 각각 β1, 2, ... k일 것임으로 고민할 것이 없다.

다만 다변량정규분포의 분산의 경우, β1, 2, ... k 각각의 분산(ex. σ21, σ22)과 두 변수가 함께 가지는 공분산(covariance)1σ2)이 함께 작용한다. 만약 3개의 변수가 있다고 가정하면 아래와 같이 공분산 행렬(covariance matrix)를 정의할 수 있다.

        

위 행렬을 보면 대각(diagonal)방향으로는 각각의 분산이 위치하고 있고, 남은 위치에는 공분산(두 변수가 함께 작용한 분산)이 위치하고 있다. 만약 두 변수가 완전히 독립이라면 공분산의 위치에 0이 기입되어 있을 것이다. 

결론적으로 각 추정량의 분산은 공분산 행렬로 표시할 수 있는데, Σ를 그대로 표기하거나 σ2(XTX)-1로 표기할 수 도 있다. 

~ MVN(β, σ2(XTX)-1)  

※ MVN(multivariate normal distribution)

앞서 언급했듯 각 기울기의 추정량들은 모두 정규분포를 따르기 때문에 t-검정통계량을 사용할 수 있고, 검정통계량 T는 아래와 같다.

단순회귀때와 마찬가지로 p-값이 유의수준 α보다 작으면 귀무가설을 기각시키는 방향으로 회귀모형을 검정할 수 있다. 아래는 다중회귀모형을 추론 결과다.

위 결과를 야구선수 연봉 예제에 적용하면 아래와 같다.

  • RBI 기울기의 p-값은 유의수준 1%, DP의 기울기는 유의수준 5% 수준으로 유의하다.
  • 반면 SB는 유의하지 않으며 연봉에 영향을 주지 않는것으로 보인다.


모형의 적합도와 결정계수(R-square) vs. 수정결정계수(adjusted R-square)

결정계수

단순회귀문제의 검정과 마찬가지로 번거로운 t-검정 대신에 결정계수(R-square)를 동일하게 사용할 수 있다. 원리는 같기 때문에 자세한 설명은 생략하고 아래 수식만 remind 한다.

수정결정계수

그런데 결정계수가 높으면 무조건 좋을까? 통상 독립변수가 많을 수록 결정계수는 높아진다. 즉, 모델이 복잡할수록 결정계수는 조금씩은 무조건 올라가게 되어 있다. 하지만 독립변수가 많으면 학습 표본에 대해서 잘 적합할지는 몰라도 현실데이터에는 적합하지 않을 수 있다. (overfitting) 그래서 변수가 너무 많으면 penalty를 주는 방법이 바로 수정결정계수이다. 아래의 수식을 보면 분자에 있는 SSE(sum of square error)를 자유도로 나눠줌으로써 penalty를 주고 있다. 즉, 변수의 수(k)가 많을 수록 수정결정계수는 작아지게 된다.

위 그래프는 결정계수와 수정결정계수를 비교한 것이다. 독립변수의 수가 증가하면 결정계수는 계속해서 증가하는데 어느 시점부터 수정결정계수는 유지되거나 감소할 수 있다. 위 그래프를 예시로 들면 k = 7쯤인 구간이 적절한 변수의 수임을 예상할 수 있다. (결정계수와 수정결정계수의 차이가 크면 변수의 수가 과하게 많은 것을 의미함.)

※ regression의 목적은 크게 2개다. 

  • 첫째는 지금 가지고 있는 데이터를 진단 하는 것이다. 예를 들어 지금 데이터로 회귀분석을 했는데 결정계수와 수정결정계수간의 차이가 크다면 변수가 너무 많다는 것을 의미한다. 이 의미를 찾은 시점에서 회귀모형의 할일은 끝난 것.
  • 두번째는 예측 성능이 좋은 회귀모형을 만드는 것인데 이 경우에는 결정계수와 수정결정계수간의 차이를 줄이기 위해서 변수갯수를 수정하는 등 노력을 가해야 한다.

f-검정

단순회귀때도 언급했는데, f-검정은 변수가 여러개일때 효과적인 검정법이며, 기울기가 모두 0이라면 모형은 의미가 없다라는 것을 귀무가설로 가진다. f-검정을 유도하는 것은 생략하며, 기억이 안나면 단순회귀 챕터에 있는 f-검정을 참고하자. [단순회귀 챕터로 바로가기]

잠깐 remind 하자면 f-검정은 각 기울기를 검정하는 것이 아니라 예측값의 분산을 분석하는 것이며, 위와 같이 분산분석을 할 수 있다. (ANOVA : analysis of variance)

다중공선성 (multicollinearity)

독립변수가 1개인 단순회귀와 달리 다중회귀에서는 다중공선성을 진단할 필요가 있다.

다중공선성 독립변수들 사이에 강한 선형관계가 있는 경우를 말한다.


다중회귀는 여러개의 독립변수가 존재하는데, 만약 2개의 변수가 서로 다중공선성을 가진다면, 두 회귀계수의 분산을 증폭시킨다. 이 의미는 추정된 회귀계수가 통계적으로 유의하지 않을 수 있음을 의미하는데, 부가적으로 다중공선성이 존재하면 회귀계수의 해석이 매우 어렵게 된다. 

※ 애초에 다중공선성이 있다는 것은 독립변수가 서로 독립인 관계라는 가정자체를 깨는 현상이다. 가령 x1의 기울기가 10이라는 것은 x1이 1변할 때 y가 10 증가 할 것이라고 추정하는 것이다. 그런데 만약 x2와 다중공선성이 있다면 y뿐만이 아니라 x2도 함께 변동이 발생하기 때문에 y의 변화량이 x1에서 왔는지 x2에서 왔는지 추정하기가 어려워진다.

어쨋든, 우리는 모형의 검정 결과가 긍정적이더라도 그 결과가 다중공선성에서 왔는지를 꼭 체크해봐야 한다. 다중공선성의 진단방법에 대해 알아보자.

  • 정성적 방법 : 분석 전에 상관계수를 보고, 너무 높은 상관계수가 존재하면 의심해본다. 혹은 변수를 1개씩 제거하면서 예측을 했을 때 너무 큰 변동이 있으면 의심해야 한다. 그 외에도 통계량(ex. T-값)이나 domain knowledge를 지키지 못하는 회귀계수라면 의심해 보아야 한다.

  • 정량적 방법 : 분산팽창계수(VIF : variance inflation factor)를 위와 같이 변수별로 계산할 수 있는데, VIF가 높은 변수는 다중공선성이 있다고 판단한다. 수식에 있는 Rj2는 독립변수 Xj를 종속변수로 두고 Xj=1, 2 ... j-1, j+1 ... k 를 독립변수로 구성된 함수를 정의한 뒤, Xj의 결정계수를 구하는 것이다. (ex. X2 = α0 + α1X1 + α3X3 + α4X4 + ε) 즉, Xj 가 Xj를 제외한 다른 변수로 충분히 표현되는지를 확인하는 것이며, 이 함수의 결정계수가 높다면 Xj는 다른 변수로 충분히 표현됨으로 다중공선성이 높은 변수이다.
    ※ 참고로 VIF = 5면 주의, 10이면 매우 주의해야 할 변수로 판단한다.

다중 공선성을 해결할 수 있는 가장 쉬운 방법은 ①변수를 1개씩 추가시키거나 ②변수를 1개씩 제거시키면서 회귀계수의 표준오차가 줄어드는지를 확인하는 것이다. 비효율적이지만 굉장히 효과적인 방법이며, 추후에 변수선택법 챕터에서 더욱 자세히 다루도록 한다.

그 외에도 Ridge regression, LASSO regression과 같은 모델을 사용하면 다중공선성을 가지는 변수를 제거시킬 수도 있고, PCA(Principal component analysis) 혹은 PLS(Partial least squares) 알고리즘을 이용해 새로운 변수를 선언하는 방법이 있다. 마찬가지로 변수선택법 챕터에서 더욱 자세히 다루도록 한다.   

아래는 각 변수의 VIF를 계산하고, VIP와 p-값이 높은 변수를 삭제한 예제이다.


위 예제에서는 VIF가 10이상인 변수가 다수 존재하기 때문에 확실히 다중공선성도 존재한다고 할 수 있다. 다만 어떤 변수를 제거해야 할 지 판단해야하는데, Mo와 Pb중 p-값이 큰 Pb를 제거한 후(p-값이 작을수록 유의하다고 여기지기 때문) VIF를 다시 계산해보니 확실히 다중공선성이 사라진 모습을 확인할 수 있다.

반응치의 예측 (단순회귀와 같아서 생략)

변수 변환

지금까지 모든 독립변수는 연속적인 값을 가졌는데, 만약 독립변수가 범주형(categorical)이더라도 회귀모형에서 사용이 가능하다. 다만, 범주형 독립변수를 사용하기 위해서는 지시변수(indicator variable)로 변환한 후에 사용할 수 있다. 

먼저 번주형 변수의 종류를 보면 크게 3가지로 나눌 수 있다.

  • 이분형(binary)변수 : 2개의 범주를 가지는 변수 (ex. 남자/여자, 흡연여부 등)
  • 서열형(ordinary)변수 : 3개 이상의 범주를 가지되 순서가 있는 변수(ex. 1/2/3등급)
  • 명목형(nominal)변수 : 3개 이상의 범주를 가지되 순서가 없는 변수(ex. 사과/바나나/배)

그리고 이 변수들을 지시변수(indicator variable)로 나누는 것도 어렵지 않다. 딱히 설명할 방법이 없어서 예제로 설명을 대신한다.

예1) 남자 / 여자 → 0 / 1

예2) 불량등급 1 / 2 / 3 → 1 / 2 / 3

예3) 사과/바나나/배 → 1 / 2 / 3

예제-이분형 변수) 아파트 가격(Y)에 미치는 독립변수(x1 = 평수, x2 = 강남/강북)


예제-명목형 변수) 아파트 가격(Y)에 미치는 독립변수(x1 = 평수, x2 = 동/서/남/북)


그리고 지금까지는 각 독립변수와 종속변수가 선형관계가 있다는 가정을 하고 최소자승법을 적용했는데, 만약 비선형이라면 다소 복잡해진다. 하지만 아래의 특별한 비선형함수에 대해서는 적절하게 선형함수로 변환할 수 있으니, 기억해두도록 하자. 증명은 생략한다.






댓글 쓰기

0 댓글