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)알고리즘은 아래와 같다.
- $\frac{1}{k}$의 데이터를 홀드아웃 샘플로 따로 떼어놓는다.
- 남아 있는 데이터로 모델을 훈련시킨다.
- 모델을 $\frac{1}{k}$ 홀드아웃에 적용하고 필요한 모델 평가 지표를 기록한다.
- 데이터의 첫 번째 $\frac{1}{k}$을 복원하고 다음 $\frac{1}{k}$을 제외하고 따로 보관한다.
- 2~3단계를 반복한다.
- 모든 레코드가 홀드아웃 샘플로 사용될 때까지 반복한다.
- 모델 평가 지표들을 평균과 같은 방식으로 결합한다.
- 훈련을 위한 샘플과 홀드아웃 샘플로 데이터를 나누는 것을 폴드(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), 데이터 과학을 위한 통계. 한빛미디어. 이용준 옮김.
'공부 > 데이터 과학을 위한 통계(한빛미디어)' 카테고리의 다른 글
13. 분류(1) (0) | 2021.01.01 |
---|---|
12. 회귀와 예측(2) (0) | 2020.12.31 |
10. 통계적 실험과 유의성 검정(2) (0) | 2020.10.20 |
9. 통계적 실험과 유의성 검정(1) (0) | 2020.10.12 |
8. 통계학에서의 여러가지 분포(2) (0) | 2020.10.09 |