CHAPTER 4. 회귀와 예측

1. 단순선형회귀

- 단순선형회귀 모델은 한 변수와 또 다른 변수의 크기 사이에 어떤 관계가 있는지를 보여준다.

 

* 상관관계 vs 회귀

- 상관관계는 두 변수 사이의 전체적인 관련 강도를 측정하는 것이라면, 회귀는 관계 자체를 정량화하는 방법이라는 점에서 차이가 있다.

용어 의미
반응변수(response variable) 예측하고자 하는 변수
독립변수(indenpendent variable) 응답치를 예측하기 위해 사용되는 변수
레코드(record) 한 특정 경우에 대한 입력과 출력을 담고 있는 벡터
절편(intercept) 회귀직선의 절편.$X=0$일 때 예측값
회귀계수(regression coefficient) 회귀직선의 기울기
적합값(fitted value) 회귀선으로부터 얻은 추정치 $\hat{Y_{i}}$(=예측값)
잔차(residual) 관측값과 적합값의 차이(=오차)
최소제곱(least square) 잔차의 제곱합을 최소화하여 회귀를 피팅하는 방법

1) 회귀식

$Y=b_{0}+b_{1}X$

$b_{0}$ = 절편(상수), $b_{1}$ = $X$의 기울기(slope), 보통은 주로 계수(coefficient)라고 한다.

$Y$는 $X$에 따라 달라지기 때문에, 응답변수 혹은 종속변수라고 불리며, $X$는 독립변수 혹은 예측변수라고 한다.

- R에서는 lm으로 선형회귀 함수를 피팅한다. lm은 선형모형을 뜻하는 linear model의 줄임말이다.

 

2) 적합값과 잔차

- 보통 모든 데이터가 정확히 한 직선 안에 들어오지는 않기 때문에, 회기식은 명시적으로 오차항 $e_{i}$를 포함한다.

$Y=b_{0}+b_{1}X+e_{i}$

 - 적합값은 예측값을 지칭하는 말로, 보통 $\hat{Y_{i}}$(Y 햇)으로 나타낸다.

$\hat{Y_{i}}=\hat{b_{0}}+\hat{b_{1}}{X_{i}}$

$\hat{b_{0}}$과 $\hat{b_{0}}$은 이미 알려진 값이 아닌 추정을 통해 얻은 값이라는 것을 의미한다.

여기서 잔차 $\hat{e_{i}}$은 원래 값에서 예측한 값을 빼서 구한다.

$\hat{e_{i}}=Y_{i}-\hat{Y_{i}}$

- R에서 제공하는 predict와 residuals 함수를 통해 적합값과 잔차를 구할 수 있다.

 

3) 최소제곱

- 회귀선은 잔차들을 제곱한 값들의 합인 잔차 제곱합(residual sum of squares; RSS)을 최소화하는 선이다.

 

$RSS=\sum_{i=1}^n(Y_{i}-\hat{Y_{i}})=\sum_{i=1}^n(Y_{i}-\hat{b_{0}}-\hat{b_{1}}{X_{i}})$

다시 말해 추정치 $\hat{b_{0}}$과 $\hat{b_{1}}$는 RSS를 최소화하는 값이다.

 

잔차제곱합을 최소화하는 이러한 방법을 최소제곱회귀 혹은 보통최소제곱(ordinary least squares; OLS) 회귀라고 한다. 최소제곱회귀는 계수 계산을 위해 아래의 공식을 사용한다.

 

$\hat{b_{1}}=\frac{\sum_{i=1}^n(Y_i-\overline{Y})(X_i-\overline{X})}{\sum_{i=1}^n(X_i-\overline{X})^2}$

$\hat{b_{0}}=\overline{Y}-\hat{b_{1}}\overline{X}$

 

4) 예측 대 설명

과거

- 예측변수와 결과변수 사이에 있을 것으로 추정되는 선형 관계를 밝히는 것이 회귀분석의 주된 용도였다. 회귀로 피팅한 데이터를 통해, 데이터 간의 관계를 이해하고 그것을 설명하는 것을 목표로 해왔다.

 

현재

- 빅데이터의 출현과 함께 회귀분석은 수중에 있는 데이터를 설명하기보다는 새로운 데이터에 대한 개별 결과를 예측하는 모델(예측 모델)을 구성하는 데 널리 사용된다.


2. 다중선형회귀

$Y=b_{0}+b_{1}X_{1}+b_{2}X_{2}+...+b_{p}X_{p}+e$

용어 의미
제곱근 평균제곱오차(root mean squared error; RMSE) 회귀 시 평균제곱오차의 제곱근. 회귀모형을 평갛는 데 가장 널리 사용되는 측정 지표다.
잔차 표준오차(residual standard error; RSE) 평균제곱오차와 동일하지만 자유도에 따라 보정된 값
R 제곱($R^2$ r-squared) 0에서 1까지 모델에 의해 설명된 분산의 비율(결정계수; coefficient of determination) 
t 통계량(t-statistic) 계수의 표준오차로 나눈 예측변수의 계수. 모델에서 변수의 중요도를 비교하는 기준이 된다.
가중회귀(weighted regression) 다른 가중치를 가진 레코드를 회귀하는 방법

1) 모형 평가

- 제곱근 평균제곱오차(RMSE)

: 예측된 $\hat{Y_{i}}$값들의 평균제곱오차의 제곱근을 말한다. 전반적인 모델의 정확도를 측정하고 다른 모델과 비교하기 위한 기준이 된다.

$RMSE=\sqrt{\frac{\sum_{i=1}^n(y_{i}-\hat{y_{i}})^2}{n}}$

 

이 외에도 RMSE와 유사한 잔차 표준오차(RSE)가 있다.

$RSE=\sqrt{\frac{\sum_{i=1}^n(y_{i}-\hat{y_{i}})^2}{n-p-1}}$

 

- 결정계수($R^2$)

: R 제곱의 범위는 0에서 1까지이며 모델 데이터의 변동률을 측정한다. 모델이 데이터에 얼마나 적합한지 평가하고자 할 때, 회귀분석을 설명하기 위한 용도로 활용된다.

$R^2=1-\frac{\sum_{i=1}^n(y_i-\hat{y_{i}})^2}{\sum_{i=1}^n(y_i-\bar{y})^2}$

- t 통계량

: t 통계량과 p 값은 계수가 '통계적으로 유의미한 정도', 즉 예측변수와 목표변수를 랜덤하게 재배치했을 때 우연히 얻을 수 있는 범위를 어느 정도 벗어났는지를 측정한다. t 통계량이 높을수록(p 값이 낮을수록) 예측변수는 더욱 유의미하다.

$t_b=\frac{\hat{b}}{SE(\hat{b})}$

2) 교차타당성검사

- 교차타당성검사(cross-validation)란, 홀드아웃 샘플 아이디어를 여러 개의 연속된 홀드아웃 샘플로 확장한 것이다. 기본적인 k 다중 교차타당성검사(k-fold cross-validation)알고리즘은 아래와 같다.

 

  1. $\frac{1}{k}$의 데이터를 홀드아웃 샘플로 따로 떼어놓는다.
  2. 남아 있는 데이터로 모델을 훈련시킨다.
  3. 모델을 $\frac{1}{k}$ 홀드아웃에 적용하고 필요한 모델 평가 지표를 기록한다.
  4. 데이터의 첫 번째 $\frac{1}{k}$을 복원하고 다음 $\frac{1}{k}$을 제외하고 따로 보관한다.
  5. 2~3단계를 반복한다.
  6. 모든 레코드가 홀드아웃 샘플로 사용될 때까지 반복한다.
  7. 모델 평가 지표들을 평균과 같은 방식으로 결합한다.

- 훈련을 위한 샘플과 홀드아웃 샘플로 데이터를 나누는 것을 폴드(fold)라고 한다.

 

3) 모형 선택 및 단계적 회귀

- 통계학에서는 모든 것이 동일한 조건에서는, 복잡한 모델보다는 단순한 모델을 우선 사용해야 한다는 오컴의 면도날이라는 원리를 사용한다.

- 변수를 추가하면 항상 RMSE는 감소하고 $R^2$은 증가한다.

- AIC(Akaike's information criterai)은 모델에 항을 추가할수록 불이익을 주는 측정 기준이다.

$AIC=2P+nlog(RSS/n)$

P는 변수의 개수이고 n은 레코드의 개수이다. 목표는 AIC를 최소화하는 모델을 찾는 것이다.

 

  • $AIC_v$ : 크기가 작은 표본을 위해 수정된 AIC
  • BIC(Bayesian information criteria) : AIC와 비슷하지만 변수 추가에 대해 더 강한 벌점을 주는 정보기준
  • 맬로즈 $C_p$ : 콜린 링우드 맬로스(Collin Lingwood Mallows)가 제안한 AIC 변형

 

* AIC 최소화하는 모델을 찾는 방법

방법 의미
부분집합회귀(all subset regression) 모든 가능한 모델을 검색하는 방법
전진선택(forward selection) 예측변수 없이 시작하여 각 단계에서 $R^2$에 가장 큰 기여도를 갖는 예측변수를 하나씩 추가하고 기여도가 통계적으로 더 이상 유의미하지 않을 때 중지한다.
후진제거(backward elimination) 전체 모델로 시작해서, 모든 예측변수가 통계적으로 유의미한 모델이 될 때까지, 통계적으로 유의하지 않은 예측변수들을 제거해나간다.
단계적 회귀(stepwise regression) 예측변수를 연속적으로 추가/삭제하여 AIC를 낮추는 모델을 찾는 방법(R에서는 MASS패키지의 stepAIC라는 단계적 회귀 함수를 제공한다.)

- 벌점회귀(penalized regression)는 개념적으로 AIC와 같다. 개별 모델 집합들을 명시적으로 검색하는 대신 모델 적합 방정식에 많은 변수에 대해 모델에 불이익을 주는 제약 조건을 추가한다. 자주 사용되는 방법으로는 능형회귀라소가 있다.

 

* 단계적 회귀분석과 모든 부분집합회귀는 모델을 평가하고 조정하는 표본 내 방법이다. 따라서 선택된 모델이 과적합 될 수 있으며, 새 데이터를 적용할 때 잘 맞지 않을 수도 있다. 이를 방지하기 위한 접근법 중 하나는 교차타당성검사를 통해 모델의 유효성을 알아보는 것이다.

 

4) 가중회귀

- 아래의 두 가지 점에서 가중회귀의 유용성을 발견할 수 있다.

  • 서로 다른 관측치를 다른 정밀도로 측정했을 때, 역분산 가중치를 얻을 수 있다.
  • 가중치 변수가 집계된 데이터의 각 행이 나타내는 원본 관측치의 수를 인코딩하도록 집계된 형식의 데이터를 분석할 수 있다.

3. 회귀를 이용한 예측

- 통계학에서와는 다르게 데이터 과학에서 회귀의 주된 목적은 예측이다.

용어 의미
예측구간(prediction interval) 개별 예측값 주위의 불확실한 구간
외삽법(extrapolation) 모델링에 사용된 데이터 범위를 벗어나 부분까지 모델을 확장하는 것

1) 외삽의 위험

- 회귀모형은 충분한 데이터 값이 있는 예측변수에 대해서만 유효하기 때문에 데이터 범위를 초과하면서까지 외삽하는 데 사용해서는 안된다.

2) 신뢰구간과 예측구간

- 신뢰구간은 회귀계수 주변의 불확실성을 정량화한다.

- 예측구간은 개별 예측값의 불확실성을 정량화한다.

 

- 통계학은 불확실성을 이해하고 측정하는 것을 포함한다. 회귀분석 결과에 나오는 t 통계량과 p 값은 불확실성을 다루는 아주 일반적인 방법이고, 종종 변수 선택을 위해 활용된다.

 

- 데이터 과학에서는 예측된 $y$ 값($\hat{Y_{i}}$)의 구간에 더 관심을 가진다. 이 값의 불확실성은 아래의 원인에서 비롯된다.

  • 무엇이 적합한 예측변수인지, 그리고 계수가 얼마인지에 따른 불확실성
  • 개별 데이터 값에 존재하는 추가적인 오류

4. 회귀에서의 요인변수

 - 범주형 변수라고도 불리는 요인 변수(factor variable)는 개수가 제한된 이산값을 취한다. 회귀분석에서는 수치 입력이 필요하기 때문에, 모델에 사용할 수 있도록 요인변수를 다시 수치화해야 한다. 이를 위한 가장 일반적인 방법은 변수를 이진 가변수들의 집합으로 변환하는 것이다.

용어 의미
가변수(dummy variable) 회귀나 다른 모델에서 요인 데이터를 사용하기 위해 0과 1의 이진변수로 부호화한 변수
기준 부호화(reference coding) 통계학자들이 많이 사용하는 부호화 형태. 여기서 한 요인을 기준으로 하고 다른 요인들이 이 기준에 따라 비교할 수 있도록 한다.
원-핫 인코딩(one-hot encoding) 머신러닝 분야에서 많이 사용되는 부호화. 모든 요인 수준이 계속 유지된다. 어떤 머신러닝 알고리즘에는 유용한 반면, 다중선형회귀에는 적합하지 않다.
편차 부호화(deviation codin) 기준 수준좌는 반대로 전체 평균에 대해 각 수준을 비교하는 부호화 방법.

1) 가변수 표현

- 원-핫 인코딩

  PropertyType
1 Multiplex
2 Single Family
3 Single Family
4 Single Family
5 Single Family
6 Townhouse

위와 같이 PropertyType에 대한 6개의 데이터가 있다. 가능한 값은 Multiplex, Single Family, Townhouse 총 3가지가 있다. 이것을 원-한 인코딩을 이용해서 이진변수를 만들면, 아래의 표와 같다.

  Multiplex Single Family Townhouse
1 1 0 0
2 0 1 0
3 0 1 0
4 0 1 0
5 0 1 0
6 0 0 1

 

최근접 이웃 알고리즘이나 트리 모델 같은 머신러닝 알고리즘에서, 요인변수를 표현하는 데 원-핫 인코딩을 많이 사용한다.

 

- 회귀분석에는 일반적으로 절편을 포함하기 때문에 P개의 개별 수준을 갖는 요인변수는 보통 P-1개의 열을 갖는 행렬로 표시된다. 절편으로 인해 P-1개의 값을 정의하면 P번째 값을 알 수 있기 때문에 P번째 값까지 넣으면 중복성이 문제가 될 수 있으므로 P번째 열을 추가하면 다중공선성 오류가 발생할 수 있다.

2) 다수의 수준을 갖는 요인변수들

- 어떤 요인변수는 가능한 수준의 수가 많아, 많은 양의 이진 더미를 생성 할 수 있다. 이를 해결하기 위해서 다른 변수에 따라 요소들을 그룹으로 묶거나 초기 모델의 잔차를 사용하여 그룹을 만드는 방법을 사용한다.

 

- 회귀 적합화를 돕는 데 잔차를 사용한다는 개념은 모델링 프로세스의 기본 단계이다.

3) 순서가 있는 요인변수

- 일부 요인변수는 요인의 수준이 순서를 갖는다. 이것을 순서 요인변수(ordered factor variable) 또는 순서 범주형 변수(ordered categorical variable)라고 한다. 순서 요인변수는 일반적으로 숫자 값으로 변환하여 그대로 사용할  수 있다.

 

- 순서 요인변수를 수치형 변수로 달는 것은, 그냥 요인변수로 다루면 잃어버릴 수 있는 순서에 담긴 정보를 유지하기 위함이다.


< 참고자료 >
1. Peter Brucs & Andrew Brucs (2018), 데이터 과학을 위한 통계. 한빛미디어. 이용준 옮김.

+ Recent posts