📊

회귀 분석 (Regression)

회귀 분석

독립 변수들이 종속 변수들에 미치는 영향을 알아보기 위한 것

독립 변수의 종류

양적 입력
양적 입력의 변환
입력 변수의 다항식
두 변수 사이의 교호작용 (X3=X1×X2X_3 = X_1 \times X_2)
질적인 입력을 위한 Dummy Variable
입력을 위해 다른 변수로 바꿔주는 것 (RED → [1,0,0], YELLOW→ [0,1,0], GREEN → [0,0,1])

단순 회귀 분석

두 변수 XX, YY의 확률 분포에 대한 관계를 직선으로 나타내는 것.
yi=a+bxi+eiy_i = a+bx_i + e_i, i=1,2,...,ni=1,2,... ,n
eiN(0,σ2)e_i \sim N(0, \sigma^2) 이고 독립으로, 오차를 의미한다.
X,YX,Y의 분포를 가장 잘 설명하는 a,ba, b를 찾는 것이 단순 회귀 분석이다.

단순 회귀 분석의 적합 (최소 제곱 추정)

오차 제곱합이 가장 작아지는 직선을 찾는 것이다.
D=i=1nei2=i=1n(yiabxi)2D= \sum_{i=1}^n e_i^2 = \sum ^n_{i=1} (y_i -a -bx_i)^2DD가 최소가 되도록 하게 하면 된다.
따라서 DDa,ba, b로 편미분하면
Da=2i=1n(yiabxi)=0\cfrac{\partial D}{\partial a} = -2\sum ^n_{i=1} (y_i -a -bx_i) = 0
Db=2i=1nxi(yiabxi)=0\cfrac{\partial D}{\partial b} = -2\sum ^n_{i=1} x_i(y_i -a -bx_i) = 0
이고, 이를 풀어주면 a^=yˉb^xˉ\hat{a} = \bar{y} - \hat{b}\bar{x}가 성립한다.
따라서 y^=a^+b^x\hat{y} = \hat{a} + \hat{b}xx,yx, y의 관계를 잘 나타낸다고 할 수 있다.

단순 회귀 분석의 가정

X,YX,Y 간에는 직선 관계가 성립한다.
eiN(0,σ2)e_i \sim N(0, \sigma^2)
오차들의 분산은 σ2\sigma^2로 같다.
오차들은 서로 독립이다.

결정 계수 R2R^2

데이터들의 변동 중 회귀 분석에 의해 설명 가능한 부분을 결정 계수라고 한다. 결정 계수가 클수록 데이터를 잘 설명하는 것이므로 적합하다고 할 수 있다.
총 변동 : SST=(yiyˉ)2=yi2n(yˉ2)SST = \sum(y_i - \bar{y})^2 = \sum y_i^2 - n(\bar{y}^2)
(두번째에서 세번째로 넘어가는 것은 직접 계산해보자.)
회귀 변동 : SSR=(yi^yˉ)2=(a^+b^xiyˉ)2=b^2(xixˉ)2SSR = \sum(\hat{y_i} - \bar{y})^2 = \sum(\hat{a} + \hat{b}x_i - \bar{y})^2 = \hat{b}^2\sum(x_i - \bar{x})^2
잔차 변동 : SSE=(yiy^i)=SSTSSRSSE = \sum(y_i - \hat{y}_i) = SST-SSR
결정 계수 : R2=SSRSST=1SSESSTR^2 = \cfrac{SSR}{SST} = 1-\cfrac{SSE}{SST}
전체 변동 중에 회귀 분석이 전체 변동을 설명하는 비율로서, 1에 가까울 수록 전체 변동 중에 회귀 분석이 차지하는 비율이 커지는 것을 의미한다.
R2R^2이 얼마나 커야 회귀 분석이 잘 된것인지는 상황마다 다르나, 이론적인 상황에서는 0.99이상의 높은 값을 요구하는 경우도 있는 반면 Buzz Data등을 바탕으로 한 분석의 경우는 0.6만 되어도 높다고 하는 경우도 있다.

잔차 분석

xx축에 yi^\hat{y_i} yy축에 eie_i를 놓고 Scatter Plot을 그렸을 때 어떠한 경향도 없이 랜덤하게 잔차들이 분포하지 않으면 회귀 분석이 잘 되지 못한것이다.

다중 회귀 분석

2개 이상의 독립 변수와 종속 변수와의 관계를 선형으로 가정하는 회귀 모형
y=Xb+e\bold{y = Xb+e} 이고, y,x,b,e\bold{y, x, b, e}는 벡터와 행렬
행렬이 있다는 것 말고는 단순 회귀 분석과 같다.
D=eTe=(yXb)T(yXb)=yTy2bTXTy+bTXTXbD = e^Te = (\bold{y-Xb)}^T(\bold{y-Xb}) = \bold{y}^T\bold{y} - 2\bold{b}^T\bold{X}^T\bold{y} + \bold{b}^T\bold{X}^T\bold{Xb} 이고,이를 b\bold{b}로 미분하여 0으로 놓으면,
XTXb^=XTy\bold{X}^T\bold{X}\hat{\bold{b}}=\bold{X}^T \bold{y}, b^=(XTX)1XTy\hat{\bold{b}} = (\bold{X}^T\bold{X})^{-1}\bold{X}^T\bold{y} 가 성립한다.

곡선 회귀 분석

y=a+b1x1+b2x2+...+bkxk+ey= a+b_1x_1 + b_2x^2+...+ b_kx^k + e
곡선에 적합시키는 방법으로 다중 회귀 분석을 풀듯이 풀면 된다.

다중 공산성 문제

설명 변수들 간의 상관 계수가 높을 경우 회귀 계수의 값이 매우 커진다.
특정 설명 변수가 다른 변수들간의 선형 결합으로 나타나는 경우
회귀 계수의 변동성이 커져서 통계량과 모수가 서로 반대 부호를 가질 수 있다.

분산 팽창 계수

Xj=i=1mαiXi=ϵ,ijX_j=\sum_{i=1}^m \alpha_iX_i = \epsilon, i\neq j
어떤 독립 변수를 다른 독립 변수로 회귀 분석 해보고 나온 결정 계수가 크면 문제가 있는 것
VIFj=11Rj2{VIF}_j = \cfrac{1}{1-R_j^2} 가 크면 문제가 있다고 볼 수 있다. (10이상)

다중 공산성 문제의 해결

변수 선택

사용할 변수만 선택해서 회귀 분석을 진행한다.
Backward Elemination
모든 독립변수를 이용하고 유의하지 않은 독립 변수를 순차적으로 제외하는 방법
모든 독립 변수가 유의할 때까지 반복
Forward Selection
설명력이 높은 독립변수부터 순차적으로 모형에 추가
유의한 독립 변수가 없을 때까지 반복
Stepwise Selection
Forward Selection 처럼 변수를 선택하고 모형에 포함된 나머지 변수에 대하여 유의성 검정을 하여 유의하지 않은 변수를 제거

과적합과 과소적합

ML 알고리즘들은 Training Error을 최소화 하는 방향으로 Train을 진행합
But, 우리는 Training Error가 작은 모델이 아니라 Generalization Error가 작은 모델이 좋은 것이다.
모델의 성능을 평가할 때는 Test Error를 측정해야 한다.
과적합(Overfitting) : 모델의 학습이 지나치게 학습 데이터에 맞추어져 일반화 성능이 떨어지는 경우
과소적합(Underfitting) : 학습 데이터에 대해 제대로 학습되지 않아 모델의 성능이 떨어지는 경우

회귀 분석에서의 과적합

지나치게 많은 독립 변수의 사용
곡선 회귀에서 지나치게 높은 차원을 사용
→ 변수 선택과 정규화 등으로 해결할 수 있다.