ㅁ회귀분석(Regression Analysis): 두 개 이상의 변수 간의 관계를 분석하고, 이를 기반으로 값을 예측하는 통계 기법
독립 변수 X(입력)와 종속 변수 y(출력) 간의 관계를 찾고, 이를 수학적 모델로 표현하는 것이 핵심이다
독립 변수와 종속 변수 사이의 변화에 따라 "회귀"한다
[회귀분석의 종류 5가지]
1. 단순 선형 회귀(Simple Linear Regression): 독립 변수(X)가 하나이고, 종속 변수(y)와의 선형 관계를 분석하는 기법
e.g. 광고 비용(X)과 제품 판매량(y) 간의 관계 분석
2. 다중 선형 회귀(Multiple Linear Regression): 여러 개의 독립 변수(X)가 종속 변수(y)에 영향을 미치는 경우 적용
e.g. 주택 가격 예측 (평수, 위치, 연식 등 여러 요인 고려)
3. 로지스틱 회귀(Logistic Regression): 종속 변수(y)가 명목형 변수
3-1. 이항 로지스틱 회귀: 종속 변수(y)의 값이 2개 (이진 분류 0 or 1)
e.g. 대출 불가 (1 = 대출가능, 0 = 대출불가)
3-2. 다항 로지스틱 회귀: 종속 변수(y)의 값이 3개 이상
e.g. 대출 상태 (A = 승인, B = 거절, C = 보류)
4. 다항 회귀(Polynomial Regression): 데이터가 단순한 직선 형태가 아닌 곡선 형태일 때 사용
e.g. 비선형 패턴을 가지는 시장 수요 예측
5. 릿지(Ridge) 및 라쏘(Lasso) 회귀: 다중 선형 회귀에서 다중 공선성(multicollinearity) 문제를 해결하기 위한 정규화 기법
릿지 회귀는 가중치(β)의 크기를 작게 만들고, 라쏘 회귀는 일부 가중치를 0으로 만들어 변수 선택을 수행한다
[회귀분석의 과정]
① 데이터 수집: 분석할 데이터 확보
② 데이터 전처리: 결측치 처리, 이상치 제거, 스케일링
③ 독립 변수(X)와 종속 변수(y) 설정
④ 회귀 모델 생성 및 학습
⑤ 모델 평가: 결정 계수(R^2), MSE(평균제곱오차) 등의 지표 활용
⑥ 예측 및 해석
(회귀모델의 성능 평가 지표)
ㅇ결정 계수(R^2)
모델이 데이터를 얼마나 잘 설명하는지를 나타내는 지표
e.g. R^2 = 0.95 (데이터 변동성의 95%를 설명)
ㅇMSE(Mean Squared Error, 평균제곱오차)
예측값과 실제값 간의 차이를 제곱하여 평균 낸 값
e.g. MSE = 0.04분 (오차범위(RMSE)가 0.2분이므로 +- 0.2분 범위의 오차를 갖는다)
ㅇRMSE(Root Mean Squared Error, 평균제곱근오차)
MSE의 제곱근, 값이 작을수록 정확한 모델
ㅇMAE(Mean Absolute Error, 평균절대오차)
절대값을 사용한 평균 오차
MAPE(Mean Absolute Percentage Error, 평균 절대 백분율 오차)
예측값과 실제값 간의 오차를 백분율로 나타낸 값 (모델의 상대적 오차를 평가하는 데 유용)
(Python 선형회귀분석 예제)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 샘플 데이터 생성
np.random.seed(42)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
# 학습 및 테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 선형 회귀 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)
# 예측 및 평가
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse:.4f}")
# 시각화
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.plot(X_test, y_pred, color='red', linewidth=2, label='Predicted')
plt.legend()
plt.show()
회귀분석은 데이터의 관계를 파악하고 미래 값을 예측하는 중요한 기법이다. 단순 선형 회귀부터 다중 회귀, 로지스틱 회귀, 정규화 기법까지 다양한 방법이 존재하며, 데이터의 특성에 따라 적절한 모델을 선택하는 것이 중요하다. Python의 scikit-learn 라이브러리를 활용하면 쉽게 회귀 모델을 학습하고 평가할 수 있으며, 실제 데이터 분석 및 머신러닝 프로젝트에서도 꽤 널리 사용된다.
"근본"
'데이터 분석' 카테고리의 다른 글
[데이터 분석] 신약 개발을 위한 화합물 독성 예측 프로젝트(EDA) (0) | 2025.05.01 |
---|---|
[데이터 분석] 통계 용어 정리(feat. 퍼짐) (0) | 2025.02.11 |
[데이터 분석] 이상치 처리(Outlier Handling) (0) | 2025.02.11 |
[데이터 분석] 결측치 처리(Missing Value Handling) (0) | 2025.02.11 |
[데이터 분석] 데이터 구조 유형(R, Python) (0) | 2025.02.11 |