본문 바로가기

Study/Python

Python | 회귀분석

회귀분석이란

  • 독립변수(X)와 종속변수(Y)의 관계식을 구하는 기법
    • 종속변수들에 영향을 주는 독립변수들을 찾고, 독립변수들과 종속변수들과의 관계를 나타내는 모델을 만드는 것
    • 데이터 수집 > 모델 적합 > 모델 평가 의 과정을 거친다.
    • 독립변수, 즉 예측변수들을 수집하여 모델링하고 종속변수, 즉 결과변수로 평가하는 일련의 과정을 거친다.
    • 이때, 종속변수(결과변수)는 연속형 숫자 값
  • 추정
    • 회귀식
      • 변수들 간의 분포 그래프에서 흩어져 있는 잔차들을 대표하는 선 (오류 값을 가장 최소화한 선)
      • RSS(잔차제곱의 합)을 최소화 한 직선 
        • 잔차 = 샘플의 관측값 - 예측값
    • 회귀계수 
      • 머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아내는 것
      • 회귀계수에 따라 회귀모델이 구체화 될 수 있다.
  • 검정
    • 독립변수의 영향력
    • 모형의 적합성(R2)
    • etc

 

회귀분석의 종류

1. 예측변수의 종류

  • 회귀분석 : 수치형 자료를 다룸
  • 로지스틱 회귀분석 : 범주형 자료를 다룸

2. 예측변수의 개수

  • 단순 회귀분석 : 독립변수 1개
  • 다중 회귀분석 : 독립변수 2개 이상
기법 대상변수 A 대상변수 B 적용 예
카이제곱 검정 이산형 이산형 성별과 결혼유무의 관계
독립표본 t검정  이산형(2그룹/독립) 연속형 성별에 따른 평균 취업률의 차이
대응표본 t검정 이산형(2그룹/Pair) 연속형 보충수업과 성적향상의 관계
일원배치 분산분석 이산형(3그룹 이상) 연속형 지역에 따른 평균소득액의 차이
회귀분석 연속형 연속형 가계수입과 사교육비 지출의 관계

3. 종속변수의 개수

  • 단변량 회귀분석 : 반응변수 1개
  • 다변량 회귀분석 : 반응변수 2개 이상

4. 모델의 차수

  • 선형 회귀분석 : 1차식 모델 사용
  • 비선형 회귀분석 : 2차식 이상의 모델 사용

* 주로 사용되는 회귀분석은 단순 선형 회귀분석과 다중 선형 회귀분석

 

회귀분석 프로세스

1. 분석을 위한 주제 결정 

2. 독립변수와 종속변수 선정

3. 가설 설정

  • 귀무가설(H0) : 연구에서 검증하는 가설(이때, 가설은 증명하고자하는 가설의 반대되는 가설)
  • 대립가설(H1) : 귀무가설과 반대되는 가설(증명 또는 입증하고자하는 가설)

4. 데이터 수집

5. 데이터 전처리 : 결측값 처리, 이상치 제거, 표준화 등

6. 모델을 적용하여 데이터 분석

7. 결과 해석

  • p-value가 0.05보다 작으면 대립가설(H1) 채택
    • p-value 귀무가설이 옳다는 가정하에 얻은 통계량이 귀무가설을 얼마나 지지하는 지를 나타낸 확률
  • 결정계수(R²)가 0~1 사이의 값을 가지며 0.65~0.7 이상이어야 좋은 회귀모형이라고 할 수 있다.
    • 결정계수와 회귀식과의 분포도

>> 분포도가 작고 기울기의 값이 커야(절대값기준) 의미가 있는 지표로 판단


출처

회귀분석이란 ? https://hsm-edu.tistory.com/1196

회귀선과 회귀계수란? https://gggggeun.tistory.com/4

회귀분석의 종류 https://hsm-edu.tistory.com/1197

p-value 쉽게 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=choodonggeun&logNo=221181595852 

추가 설명 https://heung-bae-lee.github.io/2020/01/04/machine_learning_01/

 

 

 

 

'Study > Python' 카테고리의 다른 글

Python | 의사결정나무의 파라미터  (0) 2022.05.05
Python | 의사결정나무 Decision Tree  (0) 2022.04.20
Python | 데이터 전처리  (0) 2022.03.23
Python | Dacon Lv3 | CV & LGBM  (0) 2022.03.21
Python | Dacon Lv2 | RandomForest  (0) 2022.03.16