Python에서 sst, ssr 및 sse를 계산하는 방법


회귀선 이 데이터 세트에 얼마나 잘 맞는지 측정하기 위해 세 가지 다른 제곱합 값을 사용하는 경우가 많습니다.

1. 총 제곱합(SST) – 개별 데이터 포인트(y i )와 응답 변수의 평균( y ) 간의 차이의 제곱합입니다.

  • SST = Σ(y iy ) 2

2. SSR(제곱합 회귀) – 예측된 데이터 포인트(ŷ i )와 응답 변수의 평균( y ) 간의 차이의 제곱합입니다.

  • SSR = Σ(ŷ iy ) 2

3. 제곱합 오류(SSE) – 예측된 데이터 포인트(ŷ i )와 관찰된 데이터 포인트(y i ) 간의 차이의 제곱의 합입니다.

  • SSE = Σ(ŷ i – y i ) 2

다음 단계별 예는 Python에서 특정 회귀 모델에 대해 이러한 각 측정항목을 계산하는 방법을 보여줍니다.

1단계: 데이터 생성

먼저, 특정 대학에서 20명의 학생에 대해 얻은 공부 시간과 시험 점수가 포함된 데이터 세트를 만들어 보겠습니다.

 import pandas as pd

#create pandas DataFrame
df = pd. DataFrame ({' hours ': [1, 1, 1, 2, 2, 2, 2, 2, 3, 3,
                             3, 4, 4, 4, 5, 5, 6, 7, 7, 8],
                   ' score ': [68, 76, 74, 80, 76, 78, 81, 84, 86, 83,
                             88, 85, 89, 94, 93, 94, 96, 89, 92, 97]})

#view first five rows of DataFrame
df. head ()

	hours score
0 1 68
1 1 76
2 1 74
3 2 80
4 2 76

2단계: 회귀 모델 적합

다음으로, statsmodels 라이브러리의 OLS() 함수를 사용하여 점수를 응답 변수로, 시간을 예측 변수로 사용하여 간단한 선형 회귀 모델을 피팅합니다.

 import statsmodels. api as sm

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

#define predictor variable
x = df[[' hours ']]

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

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

3단계: SST, SSR, SSE 계산

마지막으로 다음 공식을 사용하여 모델의 SST, SSR 및 SSE 값을 계산할 수 있습니다.

 import numpy as np

#calculate
sse = np. sum ((model. fitted values - df. score ) ** 2)
print (sse)

331.07488479262696

#calculate ssr
ssr = np. sum ((model. fitted values - df. score . mean ()) ** 2)
print (ssr)

917.4751152073725

#calculate sst
sst = ssr + sse
print (sst)

1248.5499999999995

측정항목은 다음과 같습니다.

  • 총 제곱합(SST): 1248.55
  • SSR(제곱합 회귀): 917.4751
  • 제곱합 오류(SSE): 331.0749

SST = SSR + SSE를 확인할 수 있습니다.

  • SST = SSR + SSE
  • 1248.55 = 917.4751 + 331.0749

추가 리소스

다음 계산기를 사용하여 단순 선형 회귀선에 대한 SST, SSR 및 SSE를 자동으로 계산할 수 있습니다.

  • SST 계산기
  • RSS 계산기
  • ESS 계산기

다음 튜토리얼에서는 다른 통계 소프트웨어에서 SST, SSR 및 SSE를 계산하는 방법을 설명합니다.

의견을 추가하다

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