다음 데이터를 이용해 단순선형회귀분석을 해본다.
chick_nm : 병아리 이름
weight : 병아리 몸무게
egg_weight : 병아리가 되기 전 알의 무게
movement : 병아리의 하루 평균 이동거리
food : 병아리의 하루 사료량
병아리 이름은 제외하고 데이터를 새로 만든다.
chicks_dataset=chicks.iloc[:,1:5]
statsmodels.formula.api 라이브러리에 있는 ols() 함수를 이용해 단순선형회귀분석을 해본다.
ols() 함수로 모델을 만들고, fit() 함수로 훈련을 시킨 다음, summary() 함수로 결과를 보자.
import statsmodels.formula.api as smf
model_lr=smf.ols(formula='weight~egg_weight',data=chicks_dataset)
result_lr=model_lr.fit()
print(result_lr.summary())
결과를 시각화해본다.
import matplotlib.pyplot as plt
plt.figure(figsize=(10,6))
plt.scatter(chicks_dataset.egg_weight,chicks_dataset.weight,alpha=.5)
plt.plot(chicks_dataset.egg_weight,chicks_dataset.egg_weight*2.3371-14.5475,color='red')
plt.text(66,132,'weight=2.3371*egg_weight-14.5475',fontsize=12)
plt.title('Scatter Plot')
plt.xlabel('egg_weight')
plt.ylabel('weight')
plt.show()
마지막으로 잔차도 확인해본다.
result_lr.resid.head()
plt.figure(figsize=(10,6))
plt.hist(result_lr.resid,bins=7) # residual histogram
plt.show()
아래 링크로 접속해서 구글 코랩으로 위 내용을 확인해본다.
다중회귀분석은 위 과정과 거의 똑같다. 아래 깃허브를 통해 확인할 수 있다.
'공부' 카테고리의 다른 글
세무사 자격시험 안내, 세 번째 글 (0) | 2023.09.14 |
---|---|
파이썬 비선형 회귀분석 (0) | 2022.11.21 |
파이썬 상관분석 (0) | 2022.11.18 |
파이썬 히스토그램과 박스플롯 그리기 (0) | 2022.11.12 |
파이썬 데이터프레임을 딕셔너리로 변환하기 (0) | 2022.11.09 |