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를 계산하는 방법