4.1 Linear Regression

16 minute read

1. 선형 회귀

선형 회귀 모델은 입력값으로 들어가는 각 특성들의 가중합계로 목표값에 대해 예측합니다. 학습된 관계에 대한 선형성은 해석하기가 쉽습니다. 선형 회귀 모델은 문제를 정량적으로 해결해야하는 사람들과 통계학자 그리고 컴퓨터과학자들에게 오랫동안 사용됐습니다.

선형 모델은 몇개의 특성 x에 대해 목표값 y의 관계로 모델링할 수 있습니다. 학습한 관계식은 선형적이고 아래와 같이 간단하게 표현할 수 있습니다.

\[y=\beta_{0}+\beta_{1}x_{1}+\ldots+\beta_{p}x_{p}+\epsilon\]

하나의 관측치에 대해 예측한 결과값은 p개의 특성들의 가중치를 더한 값입니다. 베타(\(\beta_{j}\))로 표시된 값이 학습된 특성의 가중치 또는 계수입니다. 다항식의 가장 첫 번째에 있는 가중치(\(\beta_0\))는 절편이라고 부릅니다. 이 값은 하나의 특성과 곱한값이 아닙니다. 엡실론(\(\epsilon\))은 오차(error)를 말합니다. 에러란 예측값과 실제값의 차이를 뜻합니다. 이 에러들은 가우시안 분포를 따른다고 가정합니다. 즉, 음수와 정수 모든 방향으로 나타날 수 있고, 대게는 아주 작은 에러들이지만 몇몇개의 큰 에러도 있다는 것을 뜻합니다.

최적의 가중치를 추정하기위해 다양한 방법들이 사용됩니다. 최소제곱법은 실제값과 예측값의 차이를 제곱하여 최소로 하는 가중치를 찾기위해 일반적으로 사용되는 방법입니다.

\[\hat{\boldsymbol{\beta}}=\arg\!\min_{\beta_0,\ldots,\beta_p}\sum_{i=1}^n\left(y^{(i)}-\left(\beta_0+\sum_{j=1}^p\beta_jx^{(i)}_{j}\right)\right)^{2}\]

이 책에서는 어떻게 최적의 가중치를 찾는지 자세히 다루지는 않지만 만약 관심이 있다면 “The Elements of Statistical Learning” (Friedman, Hastie and Tibshirani 2009)1의 3.2절을 확인하거나 선형 회귀 모델에 관한 다른 온라인 강의들을 참고하면 됩니다.

선형 회귀 모델의 가장 큰 장점은 바로 선형성입니다. 이는 추정을 간편하게 해주고 가장 중요한 것은 선형 방정식이 모듈 수준(예: 가중치)에서 해석을 이해하기 쉽다는 것입니다. 이는 선형 모델을 사용하는 주 이유이기도 하고 이와 같은 모델들이 의학, 사회학, 심리학 그리고 다른 정략적으로 연구가 필요한 분야들에 다양하게 사용되고 있습니다. 예를 들어서 의학분야에서는 환자에 대한 임상적인 결과를 예측하는 것 뿐만 아니라 약에 대한 효과을 정량적으로 평가하고 해석에 있어서 성별, 나이 그리고 다른 특성들도 함께 고려하는 것이 중요합니다.

추정된 가중치는 신뢰구간과 함께합니다. 신뢰구간은 “진짜” 가중치를 특성 신뢰도로 포함하는 가중치 추청에 대한 범위입니다. 예를 들어 가중치 2에 대한 95% 신뢰 구간이란 1과 3 사이의 범위일 수 있다를 말합니다. 이 구간에 대한 해석은 다음과 같습니다. 선형 회귀 모델이 주어진 데이터에 적절한 상황이라고 가정했을 때, 반복적으로 새로운 표본에 대해 100번 추청한다고 했을 때 신뢰 구간은 100번 중 95번 진짜 가중치를 모함한다는 것입니다.

선형 모델이 “알맞는” 모델인지 아닌지는 데이터가 선형성(linearity), 정규성(normality), 등분산성(homoscedasticity), 독립성(independence), 고정된 특성값(fixed features), 그리고 다중공선성(multicollinearity)의 부재에 대한 가정을 만족하는 관계식인지에 따라 다릅니다.

선형성 (Linearity) 선형 회귀 모델은 특성간 선형결합으로 에측을 하는데 이는 모델의 최대 장점이자 최대 약점이 됩니다. 선형성은 모델을 해석가능하게 하고 이 선형 효과는 정량적으로 평가하고 서술하기 쉽습니다. 이 효과들은 덧셈식으로 되어있어 각 효과를 쉽게 분리할 수 있습니다. 목표변수에 대해 특성간 교호작용이나 비선형성이 있는지 확인하고자 한다면 교호작용 항을 추가하거나 회귀 분할을 사용할 수 있습니다.

정규성 (Normality) 이는 특성들이 주어졌을 때 목표값이 정규 분포를 따른다는 것을 가정합니다. 이 가정이 지켜지지 않는다면 추정된 특성들의 가중치의 신뢰구간은 타당하지 않게됩니다.

등분산성 (Homoscedasticity or constant variance) 오차항의 분산이 전체 특성 공간에 대해 상수값을 가진다고 가정합니다. 제곱미터 단위인 거주공간이 주어졌을 때 집값을 예측하고자 한다고 가정해봅시다. 이를 가정하는 선형 모델을 추정한다고 했을 때 집 크기와는 별개로 예측값에 대한 오차는 모두 같은 분산을 가집니다. 이 가정은 현실에서는 적용되지 않습니다. 집값 예측 예제를 다시 보자면 집값이 커질 수록 더 많은 방이 있기 대문에 가격 또한 더 비싸서 더 큰 집일 수록 예측값의 오차항의 분산 또한 더 커지는 것으로 생각할 수 있습니다. 선형 회귀 모델의 평균 오차(예측값과 실제값의 차이)가 50,000 유로라고 가정해봅시다. 그렇다면 등분산성을 가정한고 했을 때 50,000에 대한 평균 오차는 40,000유로인 집과 백만 유로인 집 모두 동일합니다. 이는 집값이 음수가 나올 수 있기 때문에 합라적이진 않습니다.

독립성 (Independence) 이는 각 특성이 서로 다른 특성과 독립이라는 것을 가정합니다. 환자별 체혈 검사를 여러번 하는 것과 같이 측정을 반복적으로 하게된다면 데이터는 독립적이지 않을 수 있습니다. 이러한 데이터에는 조금 특별한 선형 회귀 모델을 사용해야 합니다. Mixed effect models 또는 GEEs가 이에 해당됩니다. 만약 “일반적인” 선형 회귀 모델을 사용한다면 모델이 잘못된 결론을 낼 수 있습니다.

고정된 특성 (Fixed features) 이는 입력 특성이 “고정”되어있는 것으로 가정합니다. 고정됐다는 것은 통계적인 변수가 아닌 “상수로 주어진” 하나의 값으로 취급한다는 것을 의미합니다. 이는 측정 오차가 없다는 것을 말합니다. 비현실적인 가정이긴 합니다. 그러나 이러한 가정이 없다면 입력 특성에 대한 측청 오차를 고려해서 엄청 복잡한 측청 오차를 모델에 학습해야 합니다. 여러분은 그러길 원치 않을 것입니다.

다중공선성의 부재 (Absence of multicollinearity) 특성간 강한 상관관계이 있다는 것은 가중치에 대한 추정을 어렵게 만들기 때문에 별로 좋은 상황은 아닙니다. 두 특성이 강한 상관관계가 있다는 상황에서는 특성 효과가 추가되고 두 특성 중 어떤 특성이 이 효과에 기여했는지 알기 어렵기 때문에 가중치를 추정하는데 문제가 생깁니다.

2. 해석

선형 회귀 모델에서 가중치에 대한 해석은 특성의 유형에 따라 다릅니다.

  • 연속형 특성: 연속형 특성값이 한 단위 증가할 때마다 가중치값에 따라 추정된 결과값이 변화합니다. 집의 크기를 연속형 특성의 예로 들 수 있습니다.
  • 이진형 특성: 각 관측치별로 단 두 가지 값 중 하나를 취하는 것을 말합니다. “마당이 있는 집” 특성이 그 예시 입니다. 두 값 중 하나는 “정원 없음”과 같이 참고 범주(0으로 인코딩된 일부 프로그래밍 언어)로 계산됩니다. 참조 범주에서 다른 범주로 특성을 바꾸면 추정값은 특성의 가중치에 따라 바뀝니다.
  • 다중 범주형 변수: 수가 정해진 특성입니다. “바닥 유형” 특성이 그 예시입니다. “carpet”, “laminate” 그리고 “parquet”이 있습니다. 아주 많은 범주를 다룰 수 있는 방법은 원-핫-인코딩(one-hot-encoding)입니다. 각 범주가 이진형 값을 갖는 열이라는 의미입니다. L개의 범주형 특성에 대해서는 L-1개의 열만 필요합니다. L-th는 필요하지 않습니다. (예: 하나의 관측값에 대해 1부터 L-1까지 열들이 모두 0값을 갖을 때 이 범주형 변수는 범주 L을 나타낸 다는 것을 알 수 있습니다.) 각 범주에 대한 해석은 이진형 특성에 대한 해석과 동일합니다. R과 같은 몇몇 언어에서는 범주형 특성을 다양한 방법으로 변환해줄 수 있습니다(이 장에서 다루는 방법 바로가기).
  • 절편항 \(\beta_0\): 절편은 모든 관측치에 대해 항상 1을 갖는 “상수 값”을 갖는 특성 가중치입니다. 대부분 소프트웨어 패키지들에서는 자동으로 이 “1”-특성을 절편 추정을 위해 더해줍니다. 해석은 다음과 같습니다. 한 관측치에 대해 모든 연속형 특성이 0이고 범주형 특성은 모두 참조 범주일 때 절편값이 바로 에측값이 됩니다. 일반적으로 모든 특성이 0인 경우는 없기 때문에 절편에 대한 해석은 잘 다루지 않습니다. 해석은 모든 특성이 정규화되어 있을 때 (평균이 0, 분산이 1) 의미가 있습니다. 이 때 절편은 모든 특성이 평균을 갖을 때 예측값을 나타냅니다.

선형 회귀 모델에서 특성에 대한 해석은 아래 소개할 템플릿으로 자동화할 수 있습니다.

연속형 특성에 대한 해석

모든 특성값이 고정되어 있다는 가정하에 특성 \(x_{k}\)가 한 단위 증가하면 y에 대한 예측값은 \(\beta_k\)만큼 증가합니다.

범주형 특성에 대한 해석

모든 특성값이 고정되어 있다는 가정하에 참조 범주에서 다른 범주로 특성 \(x_{k}\)이 바뀌면 y에 대한 예측값은 \(\beta_{k}\)만큼 증가합니다.

선형 모델을 해석하는데 또 다른 중요한 측정법은 R-squeared 측정입니다. R-squared는 목표값의 총 분산이 모델에 의해 설명될 수 있는지 알려줍니다. R-squared가 클수록 모델은 데이터를 더 잘 설명한다고 할 수 있습니다. R-squared를 계산하는 공식은 다음과 같습니다.

\[R^2=1-SSE/SST\]

SSE는 오차제곱합을 말합니다.

\[SSE=\sum_{i=1}^n(y^{(i)}-\hat{y}^{(i)})^2\]

SST는 데이터의 분산 제곱합입니다.

\[SST=\sum_{i=1}^n(y^{(i)}-\bar{y})^2\]

SSE는 예측값과 실체값의 차이에 제곱을 함으로써 추정되고 이는 선형 모델이 학습 후 차이의 분산이 얼마나 나는지를 나타냅니다. SST는 목표값에 대한 전체 분산을 나타냅니다. R 제곱은 선형 모델로 얼마나 많은 분산에 대해 설명할 수 있는지는 나타냅니다. R 제곱은 0과 1 사이이고 0은 모델이 데이터를 전혀 설명하지 못한다는 뜻, 1은 모델이 데이터의 모든 분산에 대해 설명할 수 있다는 뜻입니다.

한 가지 주의할 점은 모델에 사용된 각 특성들이 목표값에 대해 어떤 정보도 갖지 못한다해도 특성의 수가 커질 수록 R 제곱값 또한 커진다는 것입니다. 그렇기 때문에 모델에 사용된 특성 수를 고려한 조정된 R 제곱값을 사용하는 것이 좋습니다.

계산식은 다음과 같습니다.

\[\bar{R}^2=1-(1-R^2)\frac{n-1}{n-p-1}\]

여기서 p는 특성의 수이고 n은 관측치의 수 입니다.

R 제곱값이 아주 낮은 경우 모델이 데이터를 잘 설명하지 못한다는 뜻이기 때문에 이 때 모델을 해석하는 것은 크게 의미가 없습니다. 어느 가중치에 대한 해석도 크게 의미가 없습니다.

특성 중요도

선형 회귀 모델에서 특성에 대한 중요도는 t 통계량의 절대값으로 측정될 수 있습니다. t 통계량은 해당 가중치의 표준 오차로 나누어 계산할 수 있습니다.

\[t_{\hat{\beta}_j}=\frac{\hat{\beta}_j}{SE(\hat{\beta}_j)}\]

이 수식이 의미하는게 무엇인지 확인해봅시다. 특성 중요도는 가중치가 커짐에 따라 함께 증가합니다. 추정된 가중치의 분산이 클 수록 (정확한 값에 대한 확신이 적을 수록) 특성 중요도 또한 작아집니다.

3. 예시

이 예시에서는 특정 날씨와 날짜 정보가 주어졌을 때 특정 일자에 렌트된 자전거 수를 선형 회귀 모델을 사용해서 예측합니다. 그리고 추정된 회귀 가중치를 확인하여 해석합니다. 특성들은 연속형과 범주형 모두 포함입니다. 각 특성에 대해 테이블에는 추정된 가중치와 추정 표준 오차(SE) 그리고 t-통계량의 절대값이 있습니다.

Name Weight SE ltl
(Intercept) 2399.4 238.3 10.1
seasonSUMMER 899.3 122.3 7.4
seasonFALL 138.2 161.7 0.9
seasonWINTER 425.6 110.8 3.8
holidayHOLIDAY -686.1 203.3 3.4
workingdayWORKING DAY 124.9 73.3 1.7
weathersitMISTY -379.4 87.6 4.3
weathersitRAIN/SNOW/STORM -1901.5 223.6 8.5
temp 110.7 7.0 15.7
hum -17.4 3.2 5.5
windspeed -42.5 6.9 6.2
days_since_2011 4.9 0.2 28.5

연속형 특성(“temperature”)의 해석: 섭씨 1도 증가는 모든 특성이 고정되었있다는 가정하에 110.7만큼 예측한 자전거 수가 증가시킵니다.

범주형 특성(“weathersit”)의 해석: 추청된 자전거 수는 다른 특성이 고정되어 있다는 가정하에 좋은날과 비교해서 비, 눈 또는 태풍일때 -1901.5 씩 더 낮아집니다. 날씨가 안개낀 날일 때 자전거 예측 수는 모든 특성이 같은 값을 가진다는 가정하에 좋은 날과 비교하여 -379.4 씩 더 낮아집니다.

선형 회귀 모델에 한해서 모든 해석은 상항 “다른 모든 특성이 같다는 가정”에서 시작합니다. 예측 목표는 가중치 특성간 선형 결합이다. 추정된 선형 방정식은 특성/목표 공간에서의 초평면을 나타냅니다(단일 특성의 경우 직선). 가중치는 각 방향에서 초평면의 기울기(경사)를 나타냅니다. 선형 회귀 모델의 좋은 점은 덧셈식이기 때문에 다른 특성들로부터 개별적으로 특성을 분리하여 해석할 수 있습니다. 이는 방적식에서 모든 특성의 효과들(= 특성값과 가중치의 곱)이 덧셈으로 이루어져 있기 때문에 가능합니다. 반면 안좋은 점은 해석시 특성의 결함 분포에 대해서는 고려하지 않는다는 것입니다. 한 특성이 증가하는데 다른 것은 변하지 않는다는 것은 비현식적이거나 최소한 가능성이 없는 데이터값을 나타낼 수 있습니다. 방 개수는 늘어나는데 집 크기는 커지지 않는 다는 것은 비현실적일 것입니다.

4. 시각적 해석

다양한 시각화는 선형 회귀 모델을 더 쉽고 빠르게 사람들이 볼 수 있도록 할 수 있습니다.

4.1. Weight Plot

가중치 표에 대한 정보(가중치와 분산의 추정치)는 weight plot으로 시각화할 수 있습니다. 아래 그림은 이전 선형 회귀 모델의 결과를 보여줍니다.


그림 4.1: 가중치는 점으로 95% 신뢰구간은 선으로 표현되어있습니다.

Weight plot은 비/눈/태풍 날씨가 자전거 예측 수에 대해 강한 부정적인 영향을 가진다는 것을 보여줍니다. 주중 특성의 가중치는 거의 0에 가깝고 95% 구간에 0이 포함됩니다. 이는 통계적으로 효과가 크게 의미가 없음을 뜻합니다. 몇몇 신뢰 구간은 아주 짧고 추정치는 거의 0에 가깝지만 특성의 효과는 통계적으로 유의했습니다. 온도가 후보 중 하나입니다. Weight plot의 문제는 특성들이 다른 척도로 측정된다는 것입니다. 날씨에 대해서는 추정된 가중치 값이 맑음과 비/태풍/눈 날씨의 차이를 반영합니다. 온도에 대해서는 단순히 섭씨 1도 증가에 대해 반영합니다. 추청한 가중치는 선형 모델을 학습하기 전에 특성들을 변환하여(평균은 0, 표준편차는 1) 더 비교 가능하도록 만들 수 있습니다.

4.2. Effect Plot

선형 회귀 모델의 가중치는 실제 특성값과 곱했을 때 좀 더 의미있게 분석할 수 있습니다. 가중치는 특성의 척도에 따라 달라지며, 예를 들어 사람의 키를 측정하는 특성이 있고 미터에서 센티미터로 전환할 경우 달라질 것입니다. 가중치는 변하지만 데이터에서 실제 효과는 없을 것입니다. 데이터에서 특성의 분산이 아주 작은 경우 분포를 아는 것은 중요합니다. 이는 이 특성에 대해 거의 모든 관측치가 비슷한 기여도를 가진다는 것을 의미합니다. Effect plot은 데이터에서 가중치와 특성의 결합값이 예측값에 얼마나 효과를 미치는지 이해할 수 있게 해줍니다. 각 관측치의 특성값과 특성별 가중치를 곱한 효과를 계산해 봅시다.

\[\text{effect}_{j}^{(i)}=w_{j}x_{j}^{(i)}\]

효과는 boxplot으로 시각화할 수 있습니다. Boxplot에서 박스는 데이터 절반에 대해 효과도 범위를 나타냅니다(25%에서 75% 분위). 박스에서 수직선은 중앙값입니다. 예를 들어 관측치의 50% 지점은 작은 값과 다른 절반은 예측값에 대해 더 큰 효과를 나타냅니다. 수평선은 \(\pm1.5\text{IQR}/\sqrt{n}\)만큼을 나타냅니다. IQR은 사분위수 간 범위(75% 분위에서 25% 분위)입니다. 점은 이상치입니다. 범주형 특성 효과는 단일 boxplot로 각 범주가 자기자신의 행을 갖는 weight plot과 비교하여 요약할 수 있습니다.


그림 4.2: 특성에 대한 effect plot은 특성별 전체 데이터에 대한 효과들의 분포(=특성값과 가중치의 곱)을 나타냅니다.

자전거 렌트 수 예측에 대해 가장 큰 기여는 시간에 따라 자전거 렌트의 트렌드를 반영하는 날짜와 온도 특성입니다. 온도는 예측값에 대해 얼마나 기여하는지에 대한 범위가 넓습니다. 날짜 트렌드에 대한 특성은 0에서 가장 큰 긍적적인 기여도를 나타냅니다. 데이터의 첫 날(01.01.2011)이 트렌드 효과가 아주 작았기 때문이고 이측성에 대한 추정 가중치 값은 양수(4.93)입니다. 이는 효과가 날마다 증가하고 데이터에서 마지막 날인(31.12.2012)에 가장 크다는 것을 의미합니다. 가중치가 음수인 효과인 경우 긍정적인 영향을 가진 관측치들은 특성값이 음수라는 것을 유의합니다. 예를 들어 풍속에 대해 강한 부정적인 영향이 높은 날은 풍속이 높은 날들입니다.

5. 각 예측값에 대한 설명

한 관측치의 각 특성들은 예측값에 얼마나 영향을 미치는가? 이는 이 관측치에 대해 효과들을 계산해서 확인할 수 있습니다. 특정 관측치에 대한 효과의 해석은 오직 다른 특성 효과들의 분포와 비교를 통해 할 수 있습니다. 자전거 데이터의 6번째 관측치에 대해 선현 모델의 예측값을 설명하도록 합시다. 관측치는 아래와 같습니다.

Feature Value
season SPRING
yr 2011
mnth JAN
holiday NO HOLIDAY
weekday THU
workingday WORKING DAY
weathersit GOOD
temp 1.604356
hum 51.8261
windspeed 6.000868
cnt 1606
days_since_2011 5

이 관측치의 특성에 대한 효과들을 얻기 위해서는 선형 회귀 모델의 가중치값과 그에 해당하는 각 특성값을 곱해야 합니다. “Workingday”의 특성 “WORKING DAY”에서 그 효과는 124.9입니다. 섭씨 1.6도의 기온에 대해 그 효과는 177.6입니다. 각 효과들을 데이터의 효과에 대한 분포를 나타내는 effect plot에 표시했습니다. 이는 데이터에서 효과들에 대한 분포를 각각의 효과들과 비교할 수 있게 합니다.


그림 4.3: 하나의 관측치에 대한 effect plot은 효과 분포는 나타내고 관측치가 갖는 효과를 표시합니다.

만약 학습 데이터에 대한 예측값을 평균화하면 평균값인 4,504개를 계산할 수 있습니다. 여기서 6번째 관측치는 이날 1,571개의 자전거 렌트를 예측했기 때문에 예측값이 작습니다. Effect plot은 그 이유를 알려줍니다. Boxplot은 데이터의 모든 관측치에 대한 효과들의 분포를 나타내고, x표시는 6번째 관측치의 효과를 나타냅니다. 6번째 관측치는 낮은 온도 효과를 갖습니다. 이는 이날 온도가 다른날에 비해 낮은 2도 였기 때문입니다. 그리고 온도의 특성값은 양수였습니다. 또한, 트렌드 특성인 “days_since_2011”에 대한 효과도 다른 관측치에 비해 작았습니다. 이는 첫 날로부터 5번째 날이였기 때문입니다. 마찬가지로 특성값은 양수였습니다.

6. 범주형 특성의 인코딩

범주형 특성을 인코딩하는 방법은 여러가지가 있고 선택에 따라 가중치에 대한 해석이 달라질 수 있습니다.

선형 회귀 모델에서의 표준은 대부분 경우에 주로 사용되는 treatment coding입니다. 다른 인코딩 방법을 사용하게 되면 범주형 특성인 열에 다른 (회귀) 행렬을 만들어야합니다. 여기서는 세 가지 인코딩 방벙을 소개하지만 그외에도 더 많이 있습니다. 사용된 예제는 6개의 관측치와 세 가지 범주를 갖는 볌주형 특성입니다. 처음 두 관측치에서는 범주 A를 갖고 세 번째, 네 번째 관측치는 범주 B 그리고 나머지 두 관측치는 범주 C를 갖습니다.

Treatment coding

treatment coding에서 각 범주별 가중치는 해당 범주와 참조 범주간 예측값에 대한 추정치의 차이를 나타냅니다. 선형 모델의 절편은 참조 범주의 평균입니다(다른 특성들이 모두 같다고 가정). 회귀 행렬의 첫 번째 열은 할상 1입니다. 두 번째 열은 범주 B가 1인지 아닌지를 나타내고, 세 번째는 범주 C가 1인지 아닌지를 나타냅니다. 범주 A에 대한 열은 필요하지 않습니다. 선형 방정식이 복잡해지는걸 방지하고 가중치를 계산해내기 위함입니다. 관측치가 범주 B나 C가 아니라는 것만으로도 충분합니다.

Feature matrix:

\[\begin{pmatrix}1&0&0\\1&0&0\\1&1&0\\1&1&0\\1&0&1\\1&0&1\\\end{pmatrix}\]

Effect coding

범주별 가중치는 해당 범주에서 전체 평균(다른 모든 특성이 0이거나 참조 범주인 경우)의 추정된 y 차이를 말합니다. 첫 번째 열은 절편에 대해 추정하기 위해 사용됩니다. 절편과 관련있는 가중치 \(\beta_{0}\)는 전체 평균을 나타내고 두 번째 열에 대한 가중치 \(\beta_{1}\)는 전체 평균과 범주 B의 차이입니다. 범주 B의 전체 효과는 \(\beta_{0}+\beta_{1}\)입니다. 범주 C의 해석도 동일합니다. 참조 범주 A에해 \(-(\beta_{1}+\beta_{2})\)는 전체 평균과 전체 효과인 \(\beta_{0}-(\beta_{1}+\beta_{2})\)의 차이입니다.

Feature matrix:

\[\begin{pmatrix}1&-1&-1\\1&-1&-1\\1&1&0\\1&1&0\\1&0&1\\1&0&1\\\end{pmatrix}\]

Dummy coding

범주별 \(\beta\)는 각 범주별 y의 추정된 평균 값입니다(모든 다른 특성값이 0이거나 참조 범주라는 가정). 선형 모델의 가중치를 계산하기 위해 여기서 절편은 생략합니다.

Feature matrix:

\[\begin{pmatrix}1&0&0\\1&0&0\\0&1&0\\0&1&0\\0&0&1\\0&0&1\\\end{pmatrix}\]

범주형 특성에 대한 다른 인코딩 방법들을 더 알고 싶으시다면 이 두 곳에서 확인하실 수 있습니다. (this overview webpage and this blog post)

7. 선형 모델은 좋은 설명을 만드는가?

Human-Friendly Explanations에서 말한것과 같이 좋은 설명을 구성하는 속성으로 판단한다면 선형 모델은 가장 좋은 설명을 만들 수 없습니다. 선형 모델은 대조적이지만 참고하는 관측치가 모든 연속형 특성들은 0이고 범주형 특성들은 참조 범주인 경우입니다. 인위적이고 데이터에서나 실제로 일어나기 어려운 의미없는 관측치입니다. 예외인 경우: 모든 연속형 특성이 평균화(특성값 빼기 특성 평균)되어 있고 모든 범주형 특성들이 effect coding으로 처리되 었있으면 참고하는 관측치는 모든 특성이 평균 특성값인 경우입니다. 그러나 이마저도 존재하기는 어렵지만 적어도 조금은 더 가능성이 있고 의미가 있습니다. 이 경우에는 가중치들과 특성값의 곱 (특성 효과)는 “평균 관측치”와 대조적으로 예측값에 대한 기여도를 설명합니다. 좋은 설명의 다른 면은 선택적입니다. 이는 적은 특성을 사용한 선형 모델이나 sparse한 선형 모델에서 할 수 있습니다. 그러나 기본적으로 선형 모델은 선택적으로 설명을 만들어 낼 수 없습니다. 선형 방정식이 특성과 결과간 관계에 대해 적절한 모델일 뿐만 아니라 선형 모델은 신뢰성있는 설명을 만듭니다. 비선형성이나 교호작용이 더 많은 경우 선형 모델은 적절치 못할 것이고 설명 또한 신뢰성이 떨어질 것 입니다. 선형성은 설명을 더 일반적이고 간단하게 만듭니다. 저는 모델의 이 선형성이 사람들이 관계를 설명하기 위해 선형 모델을 사용하는 주되 요인이라고 생각합니다.

8. Sparse Linear Models

제가 고른 선형 모델들에 대한 예시는 모두 좋아보지 않나요? 그러나 실제로는 수백 또는 수천개의 특성들을 다루기 힘들 것 입니다. 해석가능성이 떨어지게됩니다. 관측치의 수보다 특성이 더 많은 상황도 생길 수 있는데 이때 기존 선형 모델로는 학습할 수 없습니다. 좋은 소식은 선형모델에 sparsity(= 적은 특성)을 사용할 수 있는 방법이 있습니다.

8.1. Lasso

Lasso는 선형 회귀 모델에 sparsity를 적용하는 방법입니다. Lasso는 “least absolute shrinkage and selection operator”를 기준으로 하고 선형 모델에 적용될 때는 특성 선택과 선택된 특성들 가중치의 정규화를 합니다. 가중치를 최적화시키는 최소화 문제를 알아봅시다.

\[min_{\boldsymbol{\beta}}\left(\frac{1}{n}\sum_{i=1}^n(y^{(i)}-x_i^T\boldsymbol{\beta})^2\right)\]

Lasso는 여기에 하나의 항을 추가합니다.

\[min_{\boldsymbol{\beta}}\left(\frac{1}{n}\sum_{i=1}^n(y^{(i)}-x_{i}^T\boldsymbol{\beta})^2+\lambda||\boldsymbol{\beta}||_1\right)\]

특성 벡터의 L1-norm이라고 하는 \(\vert\vert\boldsymbol{\beta}\vert\vert_1\)는 큰 가중치에 패널티를 부과합니다. L1-norm이 사용되기 대문에 가중치의 대부분은 0을 추정치로 받고 나머지는 줄어듭니다. 파라미터인 람다(\(\lambda\))는 정규화 효과의 강도에 따라 조절되고 교차검증을 통해서 조절합니다. 이 람다가 큰 경우 대부분 가중치는 0이 됩니다. 특성 가중치는 패널티 항인 람다의 함수로 시각화할 수 있습니다. 각각의 특성 가중치는 아래 그림과 같이 곡석으로 표현됩니다.


그림 4.4: 가중치의 패널티가 커짐에 따라, 점점 더 많은 특성들의 가중치가 0이 된다. 이 곡선을 정규화 경로(regularization paths)라고도 부른다. 그림 상단의 숫자는 0이 아닌 가중치의 수를 나타냅니다.

어떤 값으로 람다를 선택해야하는가? 만약 패널티 항에 대해 파라미터를 조절해야한다면 교차 검증으로 모델의 에러를 최소화하는 람다를 발견할 수 있습니다. 모델 해석가능성을 교려해서 람다를 결정할 수도 있습니다. 패널티가 클 수록 더 적은 특성들이 모델에 남고 (가중치가 0이 되기 때문에) 모델은 더 해석하기가 좋을 것 입니다.

Lasso 예시

Lasso를 이용해서 자전거 렌트를 예측해봅시다. 모델을 고려하기 전에 특성 수를 정해야 합니다. 처음은 두 가지 특성으로 해봅시다.

Name Weight
seasonSPRING 0.00
seasonSUMMER 0.00
seasonFALL 0.00
seasonWINTER 0.00
holidayHOLIDAY 0.00
workingdayWORKING DAY 0.00
weathersitMISTY 0.00
weathersitRAIN/SNOW/STORM 0.00
temp 52.33
hum 0.00
windspeed 0.00
days_since_2011 2.15

Lasso에서 가중치가 0이 아닌 두 특성은 온도(“temp”)와 시간 트렌드 (“day_since_2011”)입니다. 이번엔 5개의 특성을 해봅시다.

Name Weight
seasonSPRING -389.99
seasonSUMMER 0.00
seasonFALL 0.00
seasonWINTER 0.00
holidayHOLIDAY 0.00
workingdayWORKING DAY 0.00
weathersitMISTY 0.00
weathersitRAIN/SNOW/STORM -862.27
temp 85.58
hum -3.04
windspeed 0.00
days_since_2011 3.82

두 가지 특성으로 했을 때 모델의 “temp”와 “days_since_2011”의 가중치가 달라졌습니다. 이유는 람다를 줄임으로써 이미 모델 “안”에 있는 특성들까지 감소함으로써 모델은 패널티를 덜 받게 되고 가중치의 절대값이 더 커질 수 있기 때문입니다. Lasso 가중치에 대한 해석은 선형 회귀 모델의 가중치 해석과 동일 합니다. 신경써야할 부분은 특성들이 표준정규화를 했는지 안했는지 입니다. 이 차이가 가중치에 영향을 미칩니다. 이 예제에서는 소프트웨어에서 가중치가 표준화되었지만, 가중치는 원래 특성의 척도와 일치하도록 다시 자동으로 변환되었습니다.

선형 모델에서 sparsity를 적용하기위한 다른 방법들

선형 모델에서 특성 수를 줄이기위해 다양한 방법들이 사용될 수 있습니다.

전처리 방법들:

  • 수동적으로 특성을 선택: 몇몇 특성을 선택하거나 버리기위해서 전문 지식을 사용할 수 있습니다. 단, 단점은 자동화할 수 없고 전문 지식이 있는 사람이 필요합니다.
  • 일변량 선택: 상관 계수로 예시를 들 수 있습니다. 특성과 목표값 간의 상관관계를 고려하는 임계값을 넘는 경우의 특성을 고려합니다. 단점은 특성이 서로 독립적이라고 가정합니다. 몇몇 특성은 선형 모델이 일부 다른 특성을 설명할 때까지 상관 관계를 나타낼 수 없습니다.

단계적(step-wise) 방법:

  • 전진 선택(forward selection): 특성 하나를 선형 모델에 학습합니다. 이를 각 특성마다 전부 합니다. 가장 좋은 모델을 선택합니다(예: 가장 높은 R-제곱값). 다시 남은 특성들에 대해 현재 선택된 모델에 더해서 각 특성들을 더한 후 다른 버전의 모델을 학습합니다. 그리고 다시 가장 좋은 모델을 선택합니다. 모델에 사용되는 특성의 최대 수와 같은 특정 기준까지 이 과정을 반복합니다.
  • 후진 선택(backward selection): 전진 선택과 비슷합니다. 단, 특성을 더하는 것이 아니다 처음엔 모든 특성을 모델에 포함시키고 어떤 특성을 지워야 가장 좋은 성능이 나오는지 시도하는 것으로 시작합니다. 이 과정을 특정 기준까지 반복합니다. 이는 동시에 모든 특성을 고려하고 람다를 조절하는것을 자동화할 수 있기 때문에 Lasso를 사용하는 것을 추천합니다. 분류 문제를 위한 로지스틱 회귀 모델에도 똑같이 적용합니다.

9. 장점

예측을 가중합계로 모델링하면 예측값이 어떻게 만들어지는지 투명하게 알 수 있습니다. 그리고 Lasso로 우리는 사용된 특징 수가 적다는 것을 알 수 있습니다. 많은 사람들이 선형 모델을 사용합니다. 이는 많은 분야에서 이는 예측 모델링과 추론을 위해 수용됨을 뜻합니다. 선형 모델을 적용한 소프트웨어나 강의자료를 포함해서 높은 수준의 경험과 전문 지식이 있습니다. 선형 회귀는 R, Python, Java, Julia, Scala, Javascript 등에서 사용할 수 있고 수학적으로 가중치를 추정하는 것은 간단하고 최적의 가중치를 확실히 알 수 있다(선형 회귀의 모든 가정이 데이터에 적용된다고 가정).

가중치와 함께 신뢰 구간, 검정, 그리고 탄탄한 통계적 이론을 구할 수 있습니다. 수많은 선형 회귀의 확장 모델들이 있습니다. (GLM, GAM and more에서 확인할 수 있습니다.)

10. 단점

선형 회귀 모델은 오직 선형 관계만 나타낼 수 있습니다(예: 입력 특성의 가중합계). 비선형성이나 교효작용은 따로 다뤄야하고 입력 특성으로 모델에 명시적으로 제공해야 합니다.

선형 모델은 종종 예측 성능이 좋지 않을 수도 있습니다. 이는 학습할 수 있는 관계성이 제한적이거나 보통은 현실의 복잡성을 지나치게 단순화하기 때문입니다. 가중치에 대한 해석은 다른 모든 특성들과 관련이 있기 때문에 직관적이지 않을 수 있습니다. 목표값과 다른 관련된 특성들에서 높은 긍정적인 상관성을 갖는 특성은 선형 모델에서 음의 가중치를 가질 수 있습니다. 이는 고차원 공간에서 다른 상관성있는 특성들이 y와 부정적인 상관성을 가지고 있기 때문입니다. 완벽히 상관이 있는 특성을 선형 방정식에서 찾는 것은 불가능합니다. 예시로는 집 값을 예측하기 위한 모델이 있고 방 개수와 집 크기를 나타내는 특성이 있다고 합시다. 집 크기와 방 개수는 집이 더 클 수록 방이 더 많음과 같이 아주 상관성이 있습니다. 두 특성 모두 선형 모델에 적용한다면 집 크기가 더 좋은 예측 변수가 되고 더 큰 양의 가중치를 가질 것 입니다. 반면 방 개수는 음의 가중치를 얻을 것 입니다. 이는 집이 똑같은 크기일 때 방 개수가 늘어나는 것은 값어치가 덜하거나 상관관계가 너무 클 때 선형 방정식은 불안정하기 때문에 결국 음의 가중치가 될 수 있습니다.


  1. Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. “The elements of statistical learning”. www.web.stanford.edu/~hastie/ElemStatLearn/ (2009).