공부

파이썬 비선형 회귀분석

김파파 2022. 11. 21. 09:53

성장기간에 따른 병아리 몸무게 파일을 준비한다.

 

 

 

 

데이터가 어떻게 생겼는지 대략 살펴본다.

 

 

chick_weight.head()
chick_weight.info()
import matplotlib.pyplot as plt
plt.figure(figsize=(10,6))
plt.scatter(chick_weight.day,chick_weight.weight,alpha=.5)
plt.title('Scatter Plot')
plt.xlabel('day')
plt.ylabel('weight')
plt.show()

 

 

 

 

3차 함수처럼 생겼기 때문에 3차 함수로 만들어서 회귀분석을 해본다.

 

 

# y      =  (    a * x^3 ) +   (  b * x^2 ) +    ( c * x ) + d
 
 

 

import statsmodels.formula.api as smf
model_nlr=smf.ols(formula='weight~I(day**3)+I(day**2)+day',data=chick_weight)
result_nlr=model_nlr.fit()
print(result_nlr.summary())
 
 
 

 

 

다음과 같은 함수를 만들었다.

 

 

# weight = -0.0253 * day^3 + 2.6241 * day^2 -15.2978 * day + 117.0141
 
 
 

그림으로 그려본다.

 

plt.figure(figsize=(10,6))
plt.scatter(chick_weight.day,chick_weight.weight,alpha=.5)
plt.plot(chick_weight.day,
         (-0.0253)*(chick_weight.day**3)
         +(2.6241)*(chick_weight.day**2)
         +(-15.2978)*(chick_weight.day)
         +117.0141,
         color='red')
plt.xlabel('day')
plt.ylabel('weight')
plt.show()
 
 
 
 

 

 

깃허브에 구글 코랩과 연동되는 실습 화면을 올려놨다.

 

 

 

GitHub - gimpapa/Data_analysis_that_can_be_used_right_in_the_field_with_Python

Contribute to gimpapa/Data_analysis_that_can_be_used_right_in_the_field_with_Python development by creating an account on GitHub.

github.com