Python で調整済み r 二乗を計算する方法
R2 は、多くの場合R2と書かれ、線形回帰モデルの予測子変数によって説明できる応答変数の分散の割合です。
R 二乗の値の範囲は 0 から 1 です。値 0 は、応答変数が予測変数によってまったく説明できないことを示し、値 1 は、応答変数が予測変数によって説明できることを示します。予測子によってエラーなく完全に説明されます。変数。
調整済み R 二乗は、回帰モデル内の予測子の数を調整する R 二乗の修正バージョンです。次のように計算されます。
調整済み R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]
金:
- R2 : モデルのR2
- n : 観測値の数
- k : 予測子変数の数
R2 はモデルに予測子を追加すると常に増加するため、モデル内の予測子の数に基づいて調整された調整されたR2 は、モデルがどの程度有用であるかを示す指標として機能します。
このチュートリアルでは、Python で回帰モデルの調整されたR2を計算する 2 つの例を示します。
関連: 適切な 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 を計算する方法