My Data Story

[회귀] 선형 회귀로 새로운 데이터 예측 본문

Machine Learning/2. 지도 학습 알고리즘

[회귀] 선형 회귀로 새로운 데이터 예측

Hwasss 2021. 8. 6. 09:36
728x90

◈  '회귀' 목차 

1. 선형 회귀 개념

2. 선형 회귀 모델 훈련

3. 선형 회귀 모델 평가 및 모델 선택

4. 선형 회귀로 새로운 데이터 예측

     회귀 모델 생성 후, 데이터 예측 시 존재하는 예측값의 불확실성에 대해 알아보자.

5. 선형 회귀 모델 해석

6. 선형 회귀 가설 검정 : 회귀 진단

7. 비선형 회귀 - 다항 회귀, 스플라인 회귀

8. 규제가 있는 선형 회귀


1. 회귀 모델의 예측 VS 설명 

역사적으로 예측 변수와 결과 변수 사이에 있을 것으로 추정되는 선형관계를 밝히는 것이 회귀 분석의 주된 용도였다.

회귀로 피팅한 데이터를 통해 데이터 간의 관계를 이해하고 그것을 설명하는 것을 목표로 해왔다.

즉 회귀 방정식의 기울기를 추정하는 데 초점이 맞춰졌다.

 

빅데이터의 출현과 함께 회귀 분석은 수중에 있는 데이터를 설명하기 보다는

새로운 데이터에 대한 개별 결과를 예측하는 모델을 구성하는데 널리 사용된다. 이때 주요한 관심은 적합값이다. 

 

데이터를 피팅한 회귀모형은 X 변화가 Y 변화를 유도하도록 설정한다.

하지만 회귀 방정식 자체가 인과 관계를 정확히 증명하는 것은 아니다.

인과 관계에 대한 결론은 그 관계에 대한 폭넓은 이해(비즈니스, 도메인, 지식)를 바탕으로 해야 한다. 

 

2. 회귀 모델의 예측

2.1 외삽의 위험

회귀 모형은 데이터 범위를 초과하면서까지 외삽하는 데 사용해서는 안된다. 

회귀 모형은 충분한 데이터 값이 있는 예측 변수에 대해서만 유효하다.

(물론 충분한 데이터가 있더라도 문제가 있을 순 있다. ex. 다중 공산성)

 

2.2 신뢰 구간과 예측 구간

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

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

(1) 신뢰 구간

소프트웨어 출력에서 가장 일반적으로 마주치는 회귀 관련 신뢰구간은 회귀 파라미터(계수)의 신뢰 구간이다. 

 

다음은 N개의 예측 변수와 m개의 데이터에 대해

회귀 파라미터(계수)에 대한 신뢰구간을 생성하기 위한 부트스트랩 알고리즘이다.

 

step1

m개의 데이터 중 무작위로 하나를 선택해 기록하고 다시 박스에 넣는다.

 

step2

step1 과정을 N번 반복한다. 이를 통해, 부트스트랩 재표본을 하나 만든다.

 

step3

step1 ~ step2 과정을 1000번 반복한다. 

 

step4

이제 각 계수에 대해 1000개의 부트스트랩 값을 갖게 된다.

각 계수에 대해 적합한 백분위 수를 구한다.(90% 신뢰구간을 위해 5번째에서 95번째 백분위수를 구한다.)

 

(2) 예측 구간

사실 데이터 과학자들은 회귀 계수가 얼마인지에 관심이 있지 이들에 대한 개념적 의미와 해석에는 별 관심이 없다. 

데이터 과학자들은 더 큰 관심이 있는 것은 사실 예측값 y 의 구간이다. 

 

예측값 y 구간의 불확실성은 두 가지 원인에서 비롯된다. 

- 무엇이 적합한 예측 변수인지, 그리고 계수가 얼마인지에 따른 불확실성 

- 개별 데이터 값에 존재하는 추가적인 오류 

 

개별 데이터 값의 오차는 다음과 같이 생각할 수 있다.

회귀 방정식이 무엇인지 정확히 알았다 하더라도 주어진 예측 변수 값에 대한 실제 결괏값은 달라질 수 있다. 

이 개별 오차를 적합값으로부터의 잔차로 모델링할 수 있다. 

 

회귀 모형에 따른 오차와 개별 데이터 값에 따른 오차를 모두 모델링하기 위한 부트스트랩 알고리즘은 다음과 같다.

 

step1

데이터로부터 부트스트랩 표본을 뽑는다. 

 

step2

회귀 모형을 찾고 새로운 값을 예측한다.

 

step3

원래 회귀 적합도에서 임의로 하나의 잔차를 취하여 예측값에 더하고 그 결과를 기록한다.

 

step4

step1 ~ step3 까지의 과정을 1000번 반복한다. 

 

step5

결과의 2.5번째 백분위 수와 97.5번째 백분위 수를 찾는다.