데이터분석/통계

파이썬 단순,다중 선형회귀분석 코드 및 해석

씩씩한 IT블로그 2022. 9. 6. 22:23
반응형

단순선형회귀분석 코드

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf

x=np.array([1,1,2,3,4])
y=np.array([1,2,2,3,4])
data = pd.DataFrame({'x':x, 'y':y})

my_fit = smf.ols('y~x', data=data).fit()
print(my_fit.summary())

 

통계값 해석

1. R-squared(결정계수) : 모델의 적합도. 

2. Adj. R-squared(수정된 결정계수) : 결정계수는 변수가 많아질수록 커지므로 변수의 중요성을 설명하지 못한다. 분모에 변수의 개수가 들어가있는 수정된 결정계수를 사용하면, 변수의 중요도를 알 수 있다(변수를 추가했는데, 수정된 결정계수값이 오히려 적어질 수 있음)

3. F-statistic(F통계량 값), Prob(F-statictic) (p-value) : 회귀모형의 통계적 유의미성 검증 결과. 95%로 추정할 때 0.05이하면 통계적으로 유의미하다.

4. log-liklelihood : 로그우도

5. AIC, BIC : 작을수록 좋다

 

모델 파라미터 값

y = a0 + a1*x 일때

Intercept : 모델의 절편 a0

x : x의 계수 a1

 

coef : 값

t : t통계량 

p>|t|(p-value) : 해당 계수의 통계적 유의미성 (95% 유의수준에서 0.05이하면 유의미하다고 판단)

 

다중선형회귀분석 코드

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf

x1=np.array([1,1,2,3,4])
x2=np.array([2,4,5,7,9])
x3=np.array([3,4,3,6,10])
y=np.array([1,2,2,3,4])
data = pd.DataFrame({'x1':x1, 'x2':x2, 'x3':x3, 'y':y})

my_fit = smf.ols('y~x1 + x2 + x3', data=data).fit()
print(my_fit.summary())

반응형