본문 바로가기
코딩/Machine Learning

16. 단순 선형 회귀 분석(1)

by 세자책봉 2021. 1. 23.
728x90

Luca Massaron, Alberto Boschetti 저, '파이썬으로 풀어보는 회귀분석', 2019.01.02

내 맘대로 요약 공부 중(문제시 비공개 및 삭제)

저작권에 굉장히 민감한 책이므로 일반적인 내용들만 요약

최초 작성일 2021.1.21

 

  • 지도학습: Label(결과)이 있는 데이터를 활용하여 미래 결과 예측(ex. 데이터 분석)
  • 비지도학습: 데이터를 분류 등 군집화하여 미래 결과 예측(ex. 자동 특성 생성 분야)
  • 강화학습: 환경으로부터 피드백을 받아 미래 결과 예측(ex. 자율 인공지능)
X로부터 y를 알아내기 위한 함수 y=h(X), 응답변수 y

- 과거의 데이터를 바탕으로 학습하기 때문에, 최근의 트렌드를 반영하지 못하는 경우가 발생 → 온라인 학습 필요

- 정량적 데이터: 연속적인 값으로 측정하거나 분석이 가능한 데이터

- 정성적 데이터: 좋고 나쁨, 색깔 구분 등 수치화되어 있지 않는, 일종의 특성을 나타내는 데이터

  • 응답변수 y가 정량적이다(숫자로 표현 가능하다) → 회귀(Regression)
  • 응답변수 y가 정성적이다(숫자로 표현 불가능하다) → 분류(Classification)

1. 학습에 사용할 데이터

많이 다뤘던 boston 부동산 데이터와 California 부동산 데이터

2. 데이터의 분포를 확인하여 정규분포의 형태로 만들어 주는 것이 중요하다.(데이터 정규화)

  - 이 책에서는 데이터의 형태를 알아보는 것을 다루지 않지만 .info(), .describe()를 활용하여 데이터를 확인해야 한다

  - 데이터의 분포가 정규분포가 아닐경우 → 로그 변환 진행

  - 아래 데이터는 꽤나 정규분포의 형태를 가지고 있다

데이터를 확인하는 과정(타겟값 분포)

3. 예측값에 영향을 주는 주요 변수 확립(상관관계 측정)

  - 두 변수가 얼마나 관련이 있는지, 방향성은 어떤지 알 수 있음 → 변수값을 표준화하여 비교한다.

  - 각 변수에서 평균을 뺀 값을 표준편차로 나눔

  - 표준화 후 각 변수의 차이를 곱한 값과 

  • r(피어슨 상관관계)이 ±1에 가까울 수록 변수끼리의 상관관계는 높음
  • r(피어슨 상관관계)이 0에 가까울 수록 변수끼리의 상관관계는 없음

좌. 변수 표준화 수식 / 우. 피어슨 상관관계 수식

  - 표준화 수식을 굳이 사용하냐 안하냐에 따라 피어슨 상관관계의 수식이 다르게 보일 수 있다(어쨌든, 동일하다는 것)

피어슨 상관관계 r = 0.695로 방 개수(RM)와 가격(target)은 서로 긍정적인 상관관계라고 볼 수 있다.(pearsonr는 [0]값을 볼 것)

  - 두 변수의 상관관계를 시각화로 표현 → Seaborn의 regplot() API를 활용하면 쉽다

데이터의 분포와 선형 회귀 직선의 관계를 보고 r값이 0.695인 것을 눈으로 이해하고, 버려야할 데이터가 보이는 것도 확인하라

  - Statsmodels 패키지 활용(OLS 회귀분석, Ordinary Least Square)

  • statsmodels.api → R에서 가능했던 추정 및 검정, 회귀분석, 시계열 분석 등의 기능을 제공
  • statsmodels.formula.api → 위의 API와 동일하나 입력에 차이가 있음
  • 차이점: sm.OLS(y,X) VS smf.OLS(formula='target ~ RM', data=data)

회귀 분석 결과 확인

OLS 회귀 분석 결과 (첫번째 표) 설명
Dep. Variable 목표 변수
Model 회귀 분석 모델(여기선 OLS)
Method 파라미터 최적화 방법(여기선 LS)
No. Observations 분석에 사용한 데이터 쌍 개수, 관찰 개수(여기선 506쌍의 데이터)
DF Residuals 잔차의 자유도, No. Observations - 파라미터 수
DF Model 모델에서 추정하는 파라미터 수
R-squared 결정계수(coefficient of determination)
선형 모형이 적합한지에 대한 척도
일반적으로 0.4 이상이면 유의미 하다고 볼 수 있음
Adj. R-squared 파라미터 수, 모델에 도움이 되는 데이터에 따라 조정된 결정계수
F-statistic 도출된 회귀 식이 적절한가?(0에 가까울수록 매우 적절)
Prob(F-statistic) = P-value 회귀 식이 얼마나 유의미 한가?(0.05이하일 경우 변수 끼리 매우 관련있다고 판단)
자세한 설명은 adnoctum.tistory.com/332
AIC
(Akaike Information Criterion)
관찰 개수와 모델 자체의 복잡성을 기반으로 모델을 평가하는 점수(낮을수록 좋음)
BIC
(Bayesian Information Criterion)
AIC와 유사하나 패널티항이 더 많기 때문에 AIC보다 성능이 더 좋음(낮을수록 좋음)
  • 일반적으로 R값으로 선형 모델의 적합도를 판단, P값으로 변수끼리의 상관관계를 판단
  • 책에서는 단순선형회귀에서만 R값이 클수록 더 좋은 모델이라고 함(다중 회귀에서는 R값이 높은 것만으로 모델의 성능을 판단할 수 없다는 뜻인가??)
OLS 회귀 분석 결과(두번째 표) 설명
coef
(Coefficient)
계수(위 식을 쓰면, Y = 9.1021*RM -34.6706)
std err 계수 추정치의 표준 오차, 값이 작을수록 계수가 정확함
t 독립변수, 종속변수 사이의 관계(값이 클수록 상관도 큼)
P > |t| 독립변수의 유의확률, 0.05는신뢰도 95%를 나타내며 0.05보다 작아야 유의미 하다고 봄
  • 선형 회귀는 특정한 조건(학습 값의 범위 등)에서만 정확한 값을 나타낸다는 것을 유의하자
  • 데이터 수가 많을수록 모델은 과적합 되지만 비정상 데이터가 나올 확률은 줄어든다는 것을 유의하자
OLS 회귀 분석 결과(세번째 표) 설명
Omnibus
(D'Angostino's Test)
디아고스티노 검정, 비대칭도와 첨도를 결합한 정규성 테스트(값이 클수록 정규 분포를 따른다는 의미) 
Skewness(비대칭도) 평균 주위의 잔차들의 대칭 여부, 0에 가까울수록 대칭
Kurtosis(첨도) 잔차들의 분포 모양, 종 모양(정규분포 모양)일 수록 0에 가까움(음수는 평평, 양수는 뾰족)
Durbin - Watson 더빈 왓슨 정규성 검정, 잔차의 독립성 여부(1.5~2.5일 때 잔차들은 독립적, 회귀모델 적합,
0 또는 4에 가까울수록 잔차들은 자기상관을 가지고 있으며 회귀모델 부적합)
Jarque - Bera(JB) 자크 베라 정규성 검정, 값이 클수록 정규 분포의 데이터를 사용했다는 의미
Cond. No 다중공선성(Multicollinearity) 검정, 독립 변수간 상관관계가 있는지 검정(10 이상일 경우 다중공선성 문제가 있다고 판단, 변수가 1개일 때에는 의미 없음)
  • 평균에서 멀리 떨어져 있는 데이터를 확인하여 삭제할지 판단
  • 잔차 정규성 검정이 좋지 않게 나왔다? → 회귀 모델이 조금 더 복잡해야 한다는 것을 의미

  • 잔차 데이터 분포 중 최외곽의 여러 점들이 보인다 → 이상치(Outlier)로 판단하여 해결해야 함
  • 잔차들의 분산이 일정치 않고 서로 다르게 생겼음 → 잔차 정규화 검증으로 이미 판단할 수 있었음

4. 상관관계로 인과관계를 속단할 수 없다

  • 예측변수와 목표변수 사이의 상관관계를 파악하고 선형회귀의 성능을 개선하더라도, 반드시 두 변수 사이에 인과관계가 있다고 할 수 없다
  • 변수간 인과관계 유형
인과관계 유형 설명
직접적 인과관계 X는 y를 유발한다
상호 인과관계 X는 y를 유발하지만, y에 의해서도 영향을 받는다
허위 인과관계 X는 y를 유발하지 못하며 실제 원인은 Z임
간접적 인과관계 X는 y를 직접 유발하지 않지만, 다른 원인을 유발해 y를 유발함
조건부 인과관계 X는 다른 변수 Z의 특정 조건에 따라 y를 유발함
무작위 인과관계 X는 y와 관계가 없지만, 랜덤 샘플링에 의해 y가 유발되어 보이는 경우

 

반응형

댓글