본문 바로가기

IT & AI/AI 지식

회귀 분석: 단순 선형 회귀 분석, 다중 선형 회귀 분석

by 빛나는해커 2024. 12. 6.

안녕하세요! 이번 글은 독립 변수와 종속 변수 간의 관계를 모델링하고 예측하기 위해 사용하는 통계적 방법인 회귀 분석을 다뤄보았습니다.

회귀 분석은 데이터의 패턴을 이해하고 예측을 수행하기 위해 매우 유용한 방법론이다.
상관 관계의 분석부터 단순 및 다중 회귀에 이르기까지, 회귀 분석은 데이터를 활용한 의사결정에서 큰 힘을 발휘한다.

1. 상관 관계 (Correlation)

회귀 분석이란?

  • 독립 변수(독립 변수)와 종속 변수(종속 변수) 간의 관계를 수학적으로 표현해주는 모델이다.
  • 이를 통해 예측하고자 하는 목표 변수(종속 변수)의 값을 알아낼 수 있다.

상관계수 (Correlation Coefficient)

  • 회귀 분석의 첫 번째 단계는 상관 관계를 파악하는 것이다.
  • 상관 관계는 두 변수 간의 관계를 이해하고, 회귀 분석을 수행하기 전에 변수 간에 어느 정도의 관계가 있는지 확인하는 데 중요하다.
  • 상관계수는 두 변수 간의 선형 관계의 강도와 방향을 나타낸다.
    • -1 ≤ r ≤ 1의 값을 가지며, r = 1이면 강한 양의 관계, r = -1이면 강한 음의 관계, r = 0이면 관계가 없음을 의미한다.
  • 상관계수 구하기
# 피어슨 상관계수 (기본값)
df.corr() 

# 스피어맨 상관계수
df.corr(method='spearman') 

# 켄달 타우 상관계수
df.corr(method='kendall')

 

상관계수에 대한 t-검정

  • 상관계수가 통계적으로 유의한지 판단하기 위해 t-검정을 수행한다.
    • 귀무가설(H0): 두 변수 간에 상관 관계가 없다.
    • 대립가설(H1): 두 변수 간에 상관 관계가 있다.
  • 아래는 각 상관계수에 대해 t-검정을 수행하는 코드이다.
from scipy import stats

# 피어슨 상관계수 검정
stats.pearsonr(x, y)  

# 스피어맨 상관계수 검정
stats.spearmanr(x, y)  

# 켄달 타우 상관계수 검정
stats.kendalltau(x, y)
  • 주의할 점: 상관계수 검정에서는 변수 x와 y의 순서는 상관이 없다.

2. 단순 선형 회귀 분석 (Simple Linear Regression)

단순 선형 회귀는 독립 변수와 종속 변수 간의 선형 관계를 모델링하는 가장 간단한 형태의 회귀 분석이다.

  • 최소 제곱법 (OLS, Ordinary Least Squares): 잔차의 제곱합을 최소화하는 방식으로 회귀선을 구하는 방법이다.
  • 단순 선형 회귀 분석 코드 예시:
from statsmodels.formula.api import ols

# 모델 생성 및 피팅
model = ols('종속변수 ~ 독립변수', data=df).fit()

# 모델 요약
print(model.summary())

# 예측값
predictions = model.predict(df)

# 예측값과 신뢰구간
predictions_with_confidence = model.get_prediction()

# 잔차 계산
df['잔차'] = df['종속변수'] - predictions

 

단순 선형 회귀 분석의 결과 해석

단순 선형 회귀 분석의 결과는 회귀계수, 통계적 유의성(p-value), 결정계수(R²) 등을 포함한다. 회귀계수의 유의성(p-value)이 유의수준(보통 0.05)보다 작으면 해당 독립 변수는 종속 변수에 영향을 미친다고 할 수 있다.

 

단순 선형 회귀의 절차 요약

단계 설명
데이터 수집 독립 변수와 종속 변수 데이터를 수집
모델 생성 ols() 함수를 사용해 회귀 모델 생성
모델 피팅 fit() 메서드로 모델 피팅
결과 해석 모델의 **요약(summary)**을 통해 회귀계수와 유의성 확인

3. 다중 선형 회귀 분석 (Multiple Linear Regression)

다중 선형 회귀 분석은 하나의 종속 변수를 예측하기 위해 두 개 이상의 독립 변수를 사용하는 회귀 분석 방법이다.

  • 다중 회귀의 목표는 여러 독립 변수가 종속 변수에 미치는 영향을 동시에 고려하여 더 정확한 예측을 수행하는 것이다.
  • 다중 선형 회귀 분석 코드 예시:
model = ols('종속변수 ~ 독립변수1 + 독립변수2', data=df).fit()
print(model.summary())

4. 범주형 변수 처리 (Categorical Variables Handling)

회귀 분석에서 범주형 변수를 포함하기 위해 **더미 변수(dummy variable)**로 변환해야 한다. 이때 판다스의 pd.get_dummies() 함수를 사용한다.

  • 원핫 인코딩(One-Hot Encoding) 처리:
import pandas as pd

# 범주형 변수에 대한 원핫 인코딩
df = pd.get_dummies(df, drop_first=True)
  • drop_first=True 옵션을 사용해 다중공선성 문제를 피할 수 있다.

회귀 분석 요약 및 주의사항

회귀 분석에서 중요한 것은 모델의 적합성을 확인하는 것이다. 아래 표는 단순 선형 회귀 분석과 다중 회귀 분석의 주요 차이점을 요약한 것이다.

항목 단순 선형 회귀 분석 다중 선형 회귀 분석
독립 변수 수 하나 두 개 이상
목적 독립 변수와 종속 변수의 관계를 단순하게 모델링 여러 독립 변수의 영향을 동시에 분석
모델 복잡도 낮음 높음
예측 정확도 비교적 낮음 비교적 높음

혹시 이해가 어려우시다면, 이전 글을 먼저 참고해보시면 좋을 것 같습니다.

 

가설 검정의 이해와 프로세스, 단일 표본 검정

안녕하세요! 이번에는 데이터 분석의 기본 개념인 가설 검정에 대해 다뤄보았습니다. 특히 t-test 검정 중 단일 표본 검정을 위주로 정리해보았습니다. 먼저 가설 검정의 정의부터 각 과정에 대

actshiny.com

 

대응 표본 검정, 독립 표본 검정 정리

안녕하세요! 저번 글에 이어 이번 글에서는 통계 분석에서 자주 사용되는 대응(쌍체) 표본 검정과 독립 표본 검정에 대해 정리해보았습니다. t 검정의 종류 중 단일 표본 검정은 이전 글에서 정

actshiny.com

 

범주형 데이터 분석: 카이제곱 검정 (Chi-Square Test)

안녕하세요! 이번 글에서는 범주형 데이터 분석에서 사용하는 대표적인 통계적 방법인 카이제곱 검정에 대해 알아보겠습니다. 카이제곱 검정은 관측된 데이터가 기대치와 얼마나 일치하는지

actshiny.com

회귀 분석: 단순 선형 회귀 분석, 다중 선형 회귀 분석 소개 이미지

반응형