Python에서 잔차 제곱합을 계산하는 방법


잔차는 회귀 모델에서 관측된 값과 예측된 값 간의 차이입니다.

다음과 같이 계산됩니다.

잔차 = 관측값 – 예측값

회귀 모델이 데이터 세트에 얼마나 잘 맞는지 이해하는 한 가지 방법은 다음과 같이 계산되는 잔차 제곱합을 계산하는 것입니다.

잔차 제곱합 = Σ(e i ) 2

금:

  • Σ : “합계”를 의미하는 그리스 기호
  • e i : i 번째 잔기

값이 낮을수록 모델이 데이터 세트에 더 잘 맞는 것입니다.

이 튜토리얼에서는 Python에서 회귀 모델의 잔차 제곱합을 계산하는 방법에 대한 단계별 예를 제공합니다.

1단계: 데이터 입력

이 예에서는 공부한 시간, 총 준비 시험 횟수, 14명의 학생이 얻은 시험 결과와 관련된 데이터를 입력합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90]})

2단계: 회귀 모델 적합

다음으로, statsmodels 라이브러리의 OLS() 함수를 사용하여 “시간”과 “시험”을 예측 변수로, “점수”를 응답 변수로 사용하여 일반 최소 제곱 회귀를 수행합니다.

 import statsmodels. api as sm

#define response variable
y = df[' score ']

#define predictor variables
x = df[[' hours ', ' exams ']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit linear regression model
model = sm. OLS (y,x). fit ()

#view model summary
print ( model.summary ())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 0.722
Model: OLS Adj. R-squared: 0.671
Method: Least Squares F-statistic: 14.27
Date: Sat, 02 Jan 2021 Prob (F-statistic): 0.000878
Time: 15:58:35 Log-Likelihood: -41.159
No. Comments: 14 AIC: 88.32
Df Residuals: 11 BIC: 90.24
Model: 2                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 71.8144 3.680 19.517 0.000 63.716 79.913
hours 5.0318 0.942 5.339 0.000 2.958 7.106
exams -1.3186 1.063 -1.240 0.241 -3.658 1.021
==================================================== ============================
Omnibus: 0.976 Durbin-Watson: 1.270
Prob(Omnibus): 0.614 Jarque-Bera (JB): 0.757
Skew: -0.245 Prob(JB): 0.685
Kurtosis: 1.971 Cond. No. 12.1
==================================================== ============================

3단계: 잔차 제곱합 계산

다음 코드를 사용하여 모델의 잔차 제곱합을 계산할 수 있습니다.

 print ( model.ssr )

293.25612951525414

잔차 제곱합은 293,256 입니다.

추가 리소스

Python에서 단순 선형 회귀를 수행하는 방법
Python에서 다중 선형 회귀를 수행하는 방법
잔차 제곱합 계산기

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다