나는야 데이터사이언티스트/Machine Learning

[ML]선형회귀분석 실습 - 기초버전(2)

우주먼지의하루 2020. 4. 14. 03:16
728x90

기초버전(1)에서는 sklearn.linear_model.LinearRegression() 으로 회귀분석을 실습해봤고 이번에는 stats 모델의 OLS로 회귀분석을 해봅니다.

 

 

1. 먼저 필요한 모듈을 import 시켜줍니다.

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('ggplot')
import seaborn as sns

import scipy.stats as stats
import statsmodels.api as sm
from statsmodels.formula.api import ols

 

2. 그 다음에는 실습에 필요한 데이터를 만들어 줍니다.

data = {'x': [13, 19, 16, 14, 15, 14],
        'y': [40, 83, 62, 48, 58, 43]}
data = pd.DataFrame(data)
data

3. 데이터의 전반적인 형태와 데이터의 상관관계를 알기 위해 scatter와 heatmap을 그려봅니다.

sns.scatterplot(data['x'],data['y'])
plt.show()

sns.heatmap(data.corr(),annot = True)

4. 이제 모델을 만들어줍니다. OLS는 상수항을 먼저 추가해주고 모델을 만들어야합니다.

#상수항 추가
regression_const = sm.add_constant(data['x'])
#회귀분석
linear_regression = sm.OLS(data['y'],regression_const)
results=linear_regression.fit()
print(results.summary())

OLS에는 summary를 해주면 바로 결과 값이 나옵니다. 간단하게 결과 값을 알아보겠습니다.

 

No.Observations = 분석 자료 수

Df Residuals = 잔차 자유도

Df Model = 모델 자유도

 

R-squared, Adj.R-squared = 결정계수, 수정된 결정계수

등이 나옵니다.

 

사용해보니 OLS가 조금 더 편하긴 하네요.

반응형