실습
import pandas as pd
data = {'x':[1,2,3,4,5] ,
'y':[1,3,4,6,5]}
df = pd.DataFrame(data)
df
데이터프레임을 하나 만들어준다.
전통적인 회귀분석모형을 구축하고 평가하기 위해서는 파이썬 라이브러리 statsmodels을 이용할 수 있음
OLS 회귀분석 모델
import statsmodels.formula.api as smf
lm_model = smf.ols(formula='y ~x', data=df).fit()
statsmodel.formula에 ols라는 모델을 사용해서
학습을 시켜준다.
lm_model.params
사용방법
-> statsmodels.formula.api. ols
( 공식 , 데이터 ,
하위 집합 =None ,
drop_cols =None ,
* args ,
** kwargs
)¶
y절편과 x기울기를 알려준다.
Intercept 0.5
x 1.1
dtype: float64
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(12,6))
sns.lmplot(x='x', y='y', data=df)
plt.xlim([0,5])
# 잔차 평가 (residue)
resid =lm_model.resid
resid
0 -0.6
1 0.3
2 0.2
3 1.1
4 -1.0
dtype: float64
: 예측값에서 평균을 뺀 제곱값들의 합
# 결정계수 (R- Squared)
import numpy as np
mu = np.mean(df['y'])
y = df['y']
y_hat = lm_model.predict()
np.sum( (y_hat-mu)**2 / np.sum( (y-mu)**2) )
sns.distplot(resid, color='black')
*distplot 은 곧 없어진다고 한다..
조만간 이를 대체하는 것을 찾아봐야 할 것 같다.