如何用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 系数),以确定预测变量集与响应变量之间的确切关系。

其他资源

Python 线性回归完整指南
如何在 Python 中计算调整后的 R 平方

添加评论

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