如何用python计算回归模型的aic
赤池信息准则 (AIC) 是一种用于比较不同回归模型拟合程度的指标。
计算方法如下:
AIC = 2K – 2 ln (L)
金子:
- K:模型参数的数量。 K 的默认值为 2,因此只有一个预测变量的模型的 K 值为 2+1 = 3。
- ln (L) :模型的对数似然。这告诉我们在给定数据的情况下模型的概率。
AIC 旨在找到解释数据变化最大的模型,同时惩罚使用过多参数的模型。
拟合多个回归模型后,您可以比较每个模型的 AIC 值。 AIC 最低的模型提供最佳拟合。
要在Python中计算多元回归模型的AIC,我们可以使用statsmodels.regression.linear_model.OLS()函数,它有一个名为aic的属性,可以告诉我们给定模型的AIC值。
以下示例展示了如何使用此函数在 Python 中计算和解释各种回归模型的 AIC。
示例:用 Python 计算和解释 AIC
假设我们想要使用mtcars数据集中的变量来拟合两个不同的多元线性回归模型。
首先,我们将加载此数据集:
from sklearn. linear_model import LinearRegression 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) #view head of data data. head () model mpg cyl disp hp drat wt qsec vs am gear carb 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
以下是我们将在每个模型中使用的预测变量:
- 模型 1 中的预测变量:disp、hp、wt、qsec
- 模型 2 中的预测变量:disp、qsec
以下代码显示了如何拟合第一个模型并计算 AIC:
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'hp', 'wt', 'qsec']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view AIC of model
print (model. aic )
157.06960941462438
该模型的 AIC 结果为157.07 。
接下来,我们将拟合第二个模型并计算 AIC:
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'qsec']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view AIC of model
print (model. aic )
169.84184864154588
该模型的 AIC 结果为169.84 。
由于第一个模型的 AIC 值较低,因此它是最佳拟合模型。
一旦我们确定该模型是最佳模型,我们就可以继续进行模型拟合并分析结果(包括 R 平方值和 beta 系数),以确定预测变量集与响应变量之间的确切关系。