3. Linear regression
이번 포스팅은 지도학습에서 가장 기본적인 방법론인 선형회귀(linear regressgion)이다. 선형회귀는 질적변수(연속형) Y를 예측하는데 유용한 방법이다. 지금은 선형회귀보다 더 다양하고 예측력이 좋은 모형들이 많이 나왔으며 , 그 중 몇몇 방법론들은 선형회귀를 확장시킨 방법론들이기 때문에 기본적으로 선형회귀를 이해하고 넘어간다면 추후 새로운 접근법을 마주할 때 훨씬 수월할 것이다. (이는 마치 수학을 배울 때 기초가 가장 중요하다는 말과 같다.)
독립변수와 종속변수와의 관계, 예를 들어 TV, 라디오, 뉴스 광고의 지출(budgets)와 특정 상품의 판매량(sales)의 관계를 밝히고자 할 때 다음의 질문이 중요하다.
1. 광고 지출과 판매량간의 관계가 있는가 ?
2. 그 관계가 얼마나 강한가?
3. TV, 라디오, 뉴스 광고 중 어떤 매체와 판매량이 관계가 있는가?
4. 그 관계가 선형인가?
5. 각 매체의 효과를 어떻게 파악할 수 있는가?
6. 미래 판매량을 예측할 수 있는가?
7. 매체간 상호작용이 있는가?
이러한 질문들에 선형회귀가 어떻게 답을 해줄 수 있는지 알아볼 것이다.
3.1 단순 선형 회귀
단순선형회귀는 독립변수(X)가 1개인 경우로 가장 간단한 회귀모형이다. 식은 다음과 같다.
$Y = \beta_0 + \beta_1X + \epsilon$
이를 영어로 regressing Y on(to) X 라고 한다. 예를 들어, X가 TV 광고 지출이고 Y가 판매량이라고 하면 다음과 같다.
$sales = \beta_0 + \beta_1 \times TV + \epsilon$
여기서, $\beta_0$(절편, intercept)와 $\beta_1$(기울기, slope)은 알지 못하는 상수이며, 우리가 추정해야하는 모델의 회귀계수(coefficients) 또는 모수(parameter)이다. 추정한 계수 또는 예측값은 $\hat{}$(모자)를 사용하여 표현한다.
$\hat{Y} = \hat{\beta}_0+ \hat{\beta}_1X + \epsilon$
3.1.1 회귀계수 추정
실제로, $\beta_0$와 $\beta_1$의 참값은 알지 못한다. 따라서, 선형식이 최대한 우리의 데이터에 잘맞도록 회귀계수를 추정해야한다. 데이터에 "잘 맞도록" 추정하는 많은 방법 중 가장 흔히 사용되는 방법은 Least Squares이다. (다른 방법들은 6장에서 다룸.)
먼저 잔차의 개념을 알아야 하기 때문에 선형 회귀가 적합된 결과를 보자. 검은선은 추정한 함수(X가 TV 광고 지출, Y가 판매량), 빨간점은 데이터(n=200)이다. X=x 인 한 점에서 y의 값은 여러개(아래, 위) 일 수 있다. 그 여러개의 값에 대한 평균이 $\beta_0+\beta_1$(함수) 이며, 각 데이터는 평균에 $\epsilon$(음수, 양수)을 더한 값이다. $\epsilon$을 잔차(residual)라고 한다. 데이터를 대입해서 생각해보면, i번째 데이터에 대해 예측을 했을 때 예측값(or평균)은 $\hat{y}_i=\hat{\beta}_0+\hat{\beta}_1x_i$ 일 것이며, i번째 데이터와 i번째 예측값의 차(=i번째 잔차)는 $y_i-\hat{y_i}=\epsilon_i$ 이다.
Least Squares는 잔차들의 제곱합을 최소화는 $\beta_0$와 $\beta_1$을 찾는 방법이다. 잔차들의 제곱합 $RSS$(Residual sum of squares)은 다음과 같이 정의할 수 있으며, $SSE$(Sum of Square error)이라고도 불린다.
$RSS = \epsilon_1^2 + \epsilon_2^2 + \dots +\epsilon_n^2, (i=1,2,...,n)$
그럼 RSS(or SSE)를 최소화하는 계수를 어떻게 구할까? 고등수학에서 배웠던 1차미분=0, 2차미분>0 인 지점을 찾으면 된다. (증명하는 과정은 생략) 각 모수(parmeter)에 미분하고 간단하게 정리된 추정량은 다음과 같다.
$\hat{\beta}_1 = \frac{\sum_{i=1}^{n} (x_i-\bar{x})(y_i-\bar{y})}{(x_i-\bar{x})^2}$
$\hat{\beta}_0 = \bar{y}-\hat{\beta}_1 \bar{x}$
$\bar{x}$와 $\bar{y}$는 x와 y의 표본평균이다. 위의 식은 단순 선형 회귀에 대한 최소 제곱 회귀계수 추정량(least squares coefficient esimates)이다.
회귀계수 추정량을 해석해보자. 위의 예제에서 $\hat{\beta}_0 = 0.703, \hat{\beta}_1 = 0.0475$ 이다. $\hat{\beta}_1$은 TV 광고에 $1(한 단위)를 지출했을 때 평균 판매량은 0.475 증가한다는 것을 의미한다. $\hat{\beta}_0$는 광고에 대한 지출을 하지 않았을 경우 평균 판매량을 의미한다. 이는 추정된 선형 회귀에 의거한 해석일 뿐이며 참값과는 오차가 있다.
3.1.2 회귀계수 추정에 대한 정확도 평가
X와 Y와의 실제 관계가 다음과 같다고 가정해보자.
$Y=2+3X +\epsilon$
$\epsilon$은 $N(0,\sigma^2)$를 따르며 X에 대해 독립적이다. 위의 식에서 무작위로 10개의 data를 10번 뽑으면(크기 100) random noise $\epsilon$에 의해 아주 조금씩 다른 1개의 set (크기 100)이 뽑힐 것이다.
Left : 빨간선은 우리가 추정하고자 하는 true f(x) = ($Y=2+3X +\epsilon$) 이며, 파란선은 Least Square 방법으로 추정한 회귀식이다. Right : 빨간선과 파란선은 왼쪽과 같은 식이며, 하늘색 선은 데이터에서 랜덤하게 뽑은 10개의 set 마다 LS방법을 사용하여 추정한 회귀식이다. 각 set 마다 추정한 회귀식이 다르지만, 이들을 모아 평균을 낸다면 true f(x)(빨간선)와 가까워지는 것을 볼 수 있다. 즉, 추정한 회귀식의 기대값은 true f 라는 것이다.
이는 $\hat{\beta}_0, \hat{\beta}_1$에도 적용된다. 다시말하면, 추정한 회귀계수의 기댓값은 true 값과 같다는 것이다. 이때, 추정된 회귀계수 $\hat{\beta}_0$는 불편성(unbiased)을 만족한다고 한다. 불편성은 추정치의 기댓값이 모수와 같을 때 가지는 성질로 선형관계를 가지는 추정량 중 불편성을 가지는 가장 좋은 추정량 [BLUE(Best Linear Unbiased Estimator)] 이 되기 위한 1가지 조건이다.
$E(\hat{\beta}^{LSE})=\beta$ : unbiased
+ 추가적으로 $\hat{\beta}^{LSE}$는 BLUE 인데, 어떠한 회귀계수 추정량과 비교하더라도의 분산보다 작다는 장점이 있다.
$Var(\hat{\beta}^{LSE})=Var(\tilde{\beta})$ , $\tilde{\beta}$ : any linear unbiased estimator
3.2 다중회귀분석(Multiple Linear Regression)
위에서 다루었던 단순 회귀 분석은 예측변수(X)가 1개인 경우에 반응변수(Y)를 예측하는데 유용한 방법이였다. 실제로는 예측변수가 1개 이상인 경우가 대부분이며, 이런 경우 다중 회귀 분석을 사용하면 된다. 단순 회귀에서는 TV 광고 지출과 판매량의 관계를 분석했다면 다중 회귀 분석에서는 TV 뿐만 아니라 라디오, 뉴스 광고 지출도 고려하는 것이다. 다중 회귀는 일반적으로 다음과 같은 형태를 가지며 우리는 p=3인 경우를 다룰 것이다.
$Y=\beta_0 + \beta_1 X_1 +\beta_2 X_2 + \dots + \beta_p X_p + \epsilon$
여기서, $\beta_j$는 j번째 예측변수를 나타내며, $\beta_j$는 $X_j$가 한 단위 증가 했을 때 Y의 평균 변화량이다. 다중 회귀를 해석할 때 중요해야할 점은 다른 변수들이 고정되었다는 전제하에 $X_j$가 증가한다는 점이다.
3.2.1 회귀 계수 추정
단순 선형 회귀와 마찬가지로 회귀계수 $\hat{\beta}_0, \hat{\beta}_1, \dots, \hat{\beta}_p$는 Least Squares 방법으로 추정할 수 있다. 즉, RSS(Residual sum of squares)를 최소로 만들어주는 모수값을 찾으면 된다.
$RSS = \sum_{i=1}^{n} (y_i -\hat{y}_i)^2$
$=\sum_{i=1}^{n} (y_i -\beta_0 - \hat{\beta}_1 X_{i1} - \hat{\beta}_2 X_{i2} + \dots + \hat{\beta}_p X_{ip})^2$ , i=데이터 수 , j=독립변수 수
단순 선형 회귀에서는 1개의 독립변수만 다루었기 때문에 2차원에서 볼 수 있지만, 다중 회귀에서는 여러개의 독립변수를 다르므로 p차원으로 확장이 된다. 하지만, 시각적으로 나타낼 수 있는 건 한계가 있다! 우리는 p=3인 경우를 다루고 있지만 위의 그림은 p=2인 경우 적합된 다중회귀를 시각화 한것이다.
다시 돌아와 LS방법을 통해 구해진 다중 회귀 추정량은 단순 회귀처럼 나타내기에 조금 복잡한 형태를 가지기 때문에 행렬 연산으로 나타내는 방법을 이용한다. (행렬 연산이 다른 것이 아니라 계산을 한번에 하기 편하다. $\beta_0 , \beta_1, \dots, \beta_3$에 대해 전부 미분하고 풀면 답은 같음). 행렬 연산을 통한 LS는 다음과 같다.
${X}'X\beta = {X}'Y$
$\beta = ({X'X})^{-1}{X}'Y$
추정된 회귀계수 추정량은 다음과 같다.
$판매량(sales) = 2.939 + 0.046 \times TV + 0.189 \times 라디오 - 0.001 \times 뉴스$
해석을 해보면, $\beta_0$ : TV, 라디오, 뉴스 광고의 예산지출이 없을 때 평균 판매량, $\beta_1$ : 라디오와 뉴스의 지출이 고정되어 있고, TV 지출이 한 단위 증가했을 때 평균 판매 증가량 과 같이 해석하면 된다.
3.3 예측변수가 범주형인 경우
지금까지는 예측변수가 연속형(수치형)인 경우를 보았다. 실제로 예측변수(X)가 범주형인 경우도 많으며(ex 성별: 남,여) 지금부터는 이런 상황에서 회귀를 적합하는 방법에 대해 알아보자.
- 범주가 2개
우선, 예측변수가 1개인 경우를 생각해보자. 성별변수(X)와 잔액변수(Y)가 있고, 남/여에 따른 신용카드 잔액 차이를 분석한다고 가정해본다. 성별은 2개의 levels를 표현해주기 위해 가변수(or 더미변수)를 생성하며 형태는 다음과 같다.
생성된 가변수를 이용하여 회귀식을 적합하면 형태는 다음과 같다. 위와 같이 생성되는 변수를 single dummy variable 라고 한다. (1의 값에 대해서만 회귀계수가 출력되기 때문)
$\beta_0$ = 509.8 은 남자들의 평균 신용카드 잔액으로 해석할 수 있다. $\beta_0$ + $\beta_1$ = 509.8+19.73 = 529.53 은 여자들의 평균 신용카드 잔액으로 해석할 수 있다. 즉, $\beta_1$ = 19.73은 여자와 남자간의 평균 신용카드 잔액 차이이다.
만약 가변수를 생성할 때, 남자가 1 여자가 0으로 둔다면 회귀계수의 해석이 달라질 것이다. 모형은 다음과 같다.
$y_i = 529.52 - 19.73 x_i +\epsilon$
$\beta_0$ = 529.53 은 여자들의 평균 신용카드 잔액으로 해석할 수 있다. $\beta_0$ + $\beta_1$ = 529.53-19.73 = 509.8 은 남자들의 평균 신용카드 잔액으로 해석할 수 있다. 즉, $\beta_1$ = 19.73은 여자와 남자간의 평균 신용카드 잔액 차이이다.
마지막으로 0/1 대신에 -1/1로 가변수를 생성해보자.
회귀계수는 각각 $\beta_0 = 519.665$(남자의 평균 잔액과 여자의 평균 잔액의 중간), $\beta_1 = 9.865$ (여자와 남자간의 평균 신용카드 잔액 차이/2) 이다. 이는 0/1로 가변수를 지정했을 때 1을 나타내는 level에 값이 몰려있다가 -1/1로 가변수를 생성한 결루 2개의 level이 모두 회귀계수를 가져야 하기 때문에 519.665(남자의 평균 잔액과 여자의 평균 잔액의 중간값)에 $\pm$9.865(잔액 차이/2)를 해주는 것이다.
범주형 예측변수의 가변수 생성 방법에 따라 회귀계수의 해석은 달라지지만 결과는 동일하다는 것을 알 수 있다.
- 2개 이상의 범주
범주형 예측변수가 2개 이상의 수준을 가질 때 위와 같은 single dummy 변수로는 모든 levels를 표현할 수 없다. 따라서, 추가적인 dummy 변수를 생성해야한다. 예를 들어, 3가지 수준(Asian, Caucasianm Africa American)을 가진 인종변수가 있다. 이때, 각각의 수준은 다음과 같이 표현할 수 있다.
$x_{i1}$ | $x_4{i1}$ | |
Asian | 1 | 0 |
Caucasian(백인) | 0 | 1 |
African American | 0 | 0 |
범주가 2개일 때와 같은 점은 마지막 수준이 기준 범주(reference)가 된다는 것이다. 생성된 가변수로 회귀식을 적합한 결과는 다음과 같다.
$y_i = \beta_0 + \beta_1x_{i1} + \beta_2 x_{i2} + \epsilon$ = $\left\{\begin{matrix}
\beta_0+\beta_1+\epsilon_i\\ if ith person is Asian
\beta_0+\beta_2+\epsilon_i\\ if ith person is Caucasian
\beta_0+\epsilon_i if ith person is African American
\end{matrix}\right.$
회귀계수 추정량의 의미를 해석해보면, $\beta_0 $ : 아프리카 아시아인의 평균 잔액이고, $\beta_1$ : 아시아인과 아프리카 아시아인 사이의 평균 잔액 차이, $\beta_2$ : 백인과 아프리카 아시아인 사이의 평균 잔액 차이 이다. 즉, 아프리카 아시아인의 평균잔액 = 531$ , 아시아인의 평균잔액 = 531-18.69=512.31$, 아시아인의 평균잔액 = 531-12.5=518.8$ 이다.
범주가 2개 일때 또는 3개 일때를 생각해보면 더미변수는 항상 변수의 수준보다 한개 더 적게 생성된다. 앞서 말한 것 처럼 더미변수가 생성되지 않은 수준이 기준범주(reference, baseline)이 된다. 회귀계수 추정량의 p-value를 통해 추정량이 유의하지 않다고 할 수 있다. (인종간의 평균잔액 차이가 실제와 같다는 보장을 할 수 없다.)
기준범주를 바꾸는 것(가변수의 코딩방식을 바꾸는 것)은 회귀계수 추정량의 해석을 다르게 만들지만 결과는 동일하다. 하지만, p값도 기준범주를 어떤 수준으로 선택하느냐에 따라 달라진다. 따라서, 개별 회귀계수의 검정보다 F검정을 통해 $H_0 : \beta_1=\beta_2=0$ 인지 검정을 한다.
-선형모형의 확장(교호작용 모형)
예측변수들 간의 상관이 있는 경우 교호효과항을 추가하면 더 좋은 성능을 가지는 모델을 발견할 수 있게된다.
TV와 라디오 광고 지출(X)을 예측변수로두고 판매량(Y)을 적합하는 예시를 이전에 다루었으며, 추정 결과 회귀계수 추정량은 통계적으로 유의미한 결과를 거두었다.
$판매량 = \beta_0 + \beta_1 TV +\beta_2 라디오$
선형 모델(linear)은 광고 매체에 대한 한 단위 증가당 판매량의 효과가 다른 매체에 대한 지출과는 독립적이라고 가정한다. 즉, TV 지출 한단위 증가에 대한 판매량의 평균 효과는 라디오의 지출과 상관없이 항상 $\beta_1$이다. 그러나 이러한 단순한 모델은 옳지 못하다. 실제로 라디오 광고에 지출을 더 많이 하게 되면 TV 광고의 효과도 증가하게 된다. 따라서, 라디오 광고가 증가할수록 TV에 대한 기울기 $\beta_1$도 증가하게 된다. 이런 상황에서는, 100$의 예산이 있다고 가정할 때, TV 또는 라디오와 같이 한 매체에 예산을 몰아넣기보다는 반반씩 투자를 하는 것이 판매량(Y)을 더 증가시킬 것이다. 이는 senergy effect 라고도 알려져있으며, 통계적으로 '교호효과'라고 한다.
위의 모델식에서 교호효과를 반영하기 위해서는 세번째 항으로 넣는 것이다. $X_1$과 $X_2$의 곱으로 이루어져 있으며 교호효과 항이라고 한다.
$Y=\beta_0 + \beta_1 X_1 +\beta_2 X_2 + \beta_3 X_1X_2 + \epsilon$
$= \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_1 X_2 + \epsilon$
$= \beta_0 + \tilde{\beta}_1 X_1 + \beta_2 X_2 + \epsilon$
여기서 $\tilde{\beta}_1 = \beta_1 + \beta_3 X_2 $ 이며, $X_2$을 조정함에 따라 $X_1$이 Y에 미치는 영향을 바꿀수있다. 실제로 모델을 적합해보면 다음과 같다.
$Y= \beta_0 + \beta_1 TV + \beta_2 라디오 + \beta_3 (라디오 \times TV) + \epsilon$
$= \beta_0 + (\beta_1 + \beta_2 \times 라디오) \times TV + \beta_2 라디오 + \epsilon$
$\beta_3$는 라디오 광고가 한단위 증가 했을 때 TV의 광고 효과의 증가량으로 해석할 수 있다. 교호효과 항을 포함하는 것이 주효과(변수간의 곱한 형태가 아닌 자체로만 들어간 모형)만 포함한 모델보다 더 우수하는 것을 알 수 있으며, 교호효과항의 회귀계수 검정 결과 $H_a \neq 0$ 이라는 강한 근거를 얻을 수 있다. 교호효과 모형을 사용할 때 유의해야할 점이 있다. 교호효과 항을 추가하고자 한다면, 반드시 주효과도 포함되어야한다. 주효과의 p값이 클지라도 말이다.
즉, $X_1X_2$을 넣고 싶다면 $X_1$와 $X_2$도 모형에 반드시 포함시켜야 한다. 이는 교호효과가 Y에 영향을 미친다면 교호효과는 주효과와 관련이 있을 것이며, 주효과를 배제한다는 것은 교호작용의 의미를 바꾸기 때문이다.
교호효과 항은 변수의 특성과는 상관없이 만들어질 수 있다. income이 수치형, student가 범주형이라고 해보자. 먼저 교호효과 항이 없을 경우 모델은 다음과 같다.
student 변수에 따라 2개의 모형이 나오며, 절편은 다르지만 기울기가 같다. 이는 income이 한 단위 증가했을 때 잔액의 평균변화율이 student 변수와 관련이 없다는 것을 의미한다.(즉, income과 student 관련 X) 사실 student 인지 non-student인지에 따라 income의 한단위 변화가 잔액(Y)변수에 상당한 영향을 끼치는데 교호효과 항을 넣지 않게되면 위와 같은 오류를 범할 수 있다.
교호효과 항을 추가한 모델은 다음과 같다.
이는 student 변수에 따라 절편과 기울기가 모두 다르다는 것을 알 수 있다. 즉, income의 변화량이 student 변수에 따라 다르게 잔액(Y)에 영향을 미친다는 것이다.(즉, income과 student 관련 O)
오른쪽 그림을 해석해보면, non-student에 비해 student의 income이 증가했을 때 balance가 조금 증가한다는 것을 의미한다.
참고 : godongyoung.github.io/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/2018/01/20/ISL-linear-regression_ch3.html
(출처)
An Introduction to Statistical Learning with Applications in R (Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani)
'Statistics > ISLR' 카테고리의 다른 글
Ridge / Lasso regression (0) | 2021.05.21 |
---|---|
6. Linear Model Selection and Regularization (0) | 2020.10.25 |
Resampling Method(Hold-out, Cross-Validation, Bootstrap) (0) | 2020.10.05 |
Introduction to Statistical Learning with R (0) | 2020.08.31 |
Ridge regression (0) | 2020.04.08 |
댓글