본문 바로가기

데이터마이닝

statsmodels를 활용한 선형 회귀 분석 구현

728x90

statsmodels 라이브러리를 사용하여 선형 회귀 모델을 구현하는 구체적인 예시를 들어보겠습니다. 이 예제에서는 임의의 데이터셋을 생성하여 모형식을 사용하는 방법을 보여줍니다. 여기서는 단순 선형 회귀와 다중 선형 회귀 모델을 생성해볼 것입니다.

1. 단순 선형 회귀 모델

단순 선형 회귀는 하나의 독립 변수와 하나의 종속 변수 간의 선형 관계를 모델링합니다.

import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf

# 가상 데이터 생성
np.random.seed(123)
X = np.random.rand(100, 1)  # 독립 변수
y = 2 * X.squeeze() + np.random.normal(size=100)  # 종속 변수

# 데이터프레임으로 변환
data = pd.DataFrame(data={'X': X.squeeze(), 'y': y})

# 단순 선형 회귀 모델 생성 및 적합
model = smf.ols('y ~ X', data=data).fit()

# 요약 결과 출력
print(model.summary())

2. 다중 선형 회귀 모델

다중 선형 회귀는 두 개 이상의 독립 변수를 가지고 종속 변수와의 관계를 모델링합니다.

# 추가 독립 변수 생성
X2 = np.random.rand(100, 1)

# 데이터프레임에 추가 독립 변수 추가
data['X2'] = X2.squeeze()

# 다중 선형 회귀 모델 생성 및 적합
model_multivar = smf.ols('y ~ X + X2', data=data).fit()

# 요약 결과 출력
print(model_multivar.summary())

 

이 예시 코드에서 smf.ols 함수는 Ordinary Least Squares (OLS) 모델을 생성하는 데 사용됩니다. 모델식에서 'y ~ X'는 종속 변수 y가 독립 변수 X에 의해 설명되는 단순 선형 회귀 모델을 의미하고, 'y ~ X + X2'yXX2 두 독립 변수에 의해 설명되는 다중 선형 회귀 모델을 의미합니다. .fit() 메서드는 모델을 데이터에 적합시키며, .summary() 메서드는 모델의 요약 결과를 출력합니다. 이 결과에는 모델의 계수, R-squared 값, F-통계량, p-값 등이 포함되어 모델의 적합도와 변수의 유의성을 평가하는 데 사용됩니다.

'데이터마이닝' 카테고리의 다른 글

BIC와 AIC 정보기준  (0) 2024.03.08
Mallows의 \(C_p\)  (0) 2024.03.08
statsmodels의 모형식 표현  (0) 2024.03.08
회귀분석의 수행 단계들  (0) 2024.03.08
KNN 알고리즘의 구현 with Python  (0) 2024.02.17