如何在 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