如何在r中计算aic(包括示例)
赤池信息准则 (AIC) 是用于比较多个回归模型拟合度的指标。
计算方法如下:
AIC = 2K – 2 ln (L)
金子:
- K:模型参数的数量。 K 的默认值为 2,因此只有一个预测变量的模型的 K 值为 2+1 = 3。
- ln (L) :模型的对数似然。大多数统计软件可以自动为您计算该值。
AIC 旨在找到解释数据变化最大的模型,同时惩罚使用过多参数的模型。
拟合多个回归模型后,您可以比较每个模型的 AIC 值。 AIC越低,模型越适合。
要计算 R 中多元回归模型的 AIC,我们可以使用AICcmodavg包中的aictab()函数。
以下示例演示如何使用此函数计算和解释 R 中各种回归模型的 AIC。
示例:在 R 中计算和解释 AIC
假设我们想要使用mtcars数据集中的变量来拟合三个不同的多元线性回归模型。
以下是我们将在每个模型中使用的预测变量:
- 模型 1 中的预测变量:disp、hp、wt、qsec
- 模型 2 中的预测变量:disp、qsec
- 模型 3 中的预测变量:disp、wt
以下代码显示了如何拟合每个回归模型:
#fit three models
model1 <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
model2 <- lm(mpg ~ disp + qsec, data = mtcars)
model3 <- lm(mpg ~ disp + wt, data = mtcars)
接下来,我们将模型放入列表中,并使用aictab()函数计算每个模型的 AIC:
library (AICcmodavg) #define list of models models <- list(model1, model2, model3) #specify model names mod.names <- c('disp.hp.wt.qsec', 'disp.qsec', 'disp.wt') #calculate AIC of each model aictab(cand.set = models, modnames = mod.names) Model selection based on AICc: K AICc Delta_AICc AICcWt Cum.Wt LL disp.hp.wt.qsec 6 162.43 0.00 0.83 0.83 -73.53 available wt 4 165.65 3.22 0.17 1.00 -78.08 disp.qsec 4 173.32 10.89 0.00 1.00 -81.92
以下是如何解释结果:
- K:模型中参数的数量。
- AICc:模型的 AIC 值。小写“c”表示 AIC 是根据针对小样本校正的 AIC 计算得出的。
- Delta_AICc:最佳模型的AIC与当前模型比较的AIC之间的差异。
- AICcWt:模型中可以找到的总预测能力的比例。
- Cum.Wt :AIC 权重的累积和。
- LL:模型的对数似然。这告诉我们在给定我们使用的数据的情况下该模型的可能性有多大。
AIC 值最低的模型始终列在最前面。从结果中我们可以看到以下模型具有最低的 AIC 值,因此是最佳拟合模型:
mpg = β 0 + β 1 (disp) + β 2 (hp) + β 3 (重量) + β 4 (qsec)
一旦我们确定该模型是最佳模型,我们就可以继续进行模型拟合并分析结果(包括 R 平方值和 beta 系数),以确定预测变量集与响应变量之间的确切关系。
其他资源
如何在 R 中执行简单线性回归
如何在 R 中执行多元线性回归
如何计算 R 中调整后的 R 平方
如何在 R 中计算 Mallows Cp