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. 학습에 사용할 데이터
2. 데이터의 분포를 확인하여 정규분포의 형태로 만들어 주는 것이 중요하다.(데이터 정규화)
- 이 책에서는 데이터의 형태를 알아보는 것을 다루지 않지만 .info(), .describe()를 활용하여 데이터를 확인해야 한다
- 데이터의 분포가 정규분포가 아닐경우 → 로그 변환 진행
- 아래 데이터는 꽤나 정규분포의 형태를 가지고 있다
3. 예측값에 영향을 주는 주요 변수 확립(상관관계 측정)
- 두 변수가 얼마나 관련이 있는지, 방향성은 어떤지 알 수 있음 → 변수값을 표준화하여 비교한다.
- 각 변수에서 평균을 뺀 값을 표준편차로 나눔
- 표준화 후 각 변수의 차이를 곱한 값과
- r(피어슨 상관관계)이 ±1에 가까울 수록 변수끼리의 상관관계는 높음
- r(피어슨 상관관계)이 0에 가까울 수록 변수끼리의 상관관계는 없음
- 표준화 수식을 굳이 사용하냐 안하냐에 따라 피어슨 상관관계의 수식이 다르게 보일 수 있다(어쨌든, 동일하다는 것)
- 두 변수의 상관관계를 시각화로 표현 → Seaborn의 regplot() API를 활용하면 쉽다
- 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가 유발되어 보이는 경우 |
'코딩 > Machine Learning' 카테고리의 다른 글
18. 다중회귀분석(1) (0) | 2021.02.26 |
---|---|
17. 단순 선형 회귀 분석(2) (0) | 2021.02.23 |
15. 추천 시스템(Recommendations) (0) | 2021.01.13 |
14. 텍스트 분석(Text Analytics)_2 (0) | 2021.01.11 |
13. 텍스트 분석(Text Analytics)_1 (0) | 2021.01.10 |
댓글