Python에서 조정된 r-제곱을 계산하는 방법


R2 라고도 불리는 R-제곱은 선형 회귀 모델 의 예측 변수로 설명할 수 있는 응답 변수 의 분산 비율입니다.

R 제곱 값의 범위는 0에서 1까지입니다. 값이 0이면 응답 변수가 예측 변수로 전혀 설명될 수 없음을 나타내고, 값이 1이면 응답 변수가 예측 변수로 설명될 수 있음을 나타냅니다. 예측자가 오류 없이 완벽하게 설명했습니다. 변수.

조정된 R-제곱은 회귀 모델의 예측 변수 수를 조정하는 R-제곱의 수정된 버전입니다. 다음과 같이 계산됩니다.

조정된 R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]

금:

  • R 2 : 모델의 R 2
  • n : 관측치 수
  • k : 예측 변수의 수

모델에 예측변수를 추가하면 R2가 항상 증가하므로 조정된 R2는 모델의 예측변수 수에 따라 조정되어 모델이 얼마나 유용한지 알려주는 측정항목 역할을 할 수 있습니다.

이 튜토리얼에서는 Python에서 회귀 모델에 대해 조정된 R2 를 계산하는 두 가지 예를 보여줍니다.

관련 항목: 좋은 R 제곱 값이란 무엇입니까?

예 1: sklearn을 사용하여 조정된 R-제곱 계산

다음 코드는 다중 선형 회귀 모델을 피팅하고 sklearn을 사용하여 모델의 피팅된 R-제곱을 계산하는 방법을 보여줍니다.

 from sklearn. linear_model import LinearRegression
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#fit regression model
model = LinearRegression ()
x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp
model. fit (x,y)

#display adjusted R-squared
1 - (1-model. score (X, y))*( len (y)-1)/( len (y)-X. shape [1]-1)

0.7787005290062521

모델의 수정된 R-제곱은 0.7787 로 나타났습니다.

예 2: 통계 모델을 사용하여 조정된 R-제곱 계산

다음 코드는 다중 선형 회귀 모델을 피팅하고 statsmodels를 사용하여 모델의 피팅된 R-제곱을 계산하는 방법을 보여줍니다.

 import statsmodels. api as sm
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#fit regression model
x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp
X = sm. add_constant (X)
model = sm. OLS (y,x). fit ()

#display adjusted R-squared
print ( model.rsquared_adj )

0.7787005290062521

모델의 수정된 R-제곱은 0.7787 로 나타났으며 이는 이전 예의 결과와 일치합니다.

추가 리소스

Python에서 단순 선형 회귀를 수행하는 방법
Python에서 다중 선형 회귀를 수행하는 방법
Python에서 회귀 모델의 AIC를 계산하는 방법

의견을 추가하다

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