如何在 python 中计算调整后的 r 平方


R 平方(通常写为R2 )是响应变量中可以由线性回归模型中的预测变量解释的方差的比例。

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

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注