AIC 与 drop1 函数和 AIC 函数不同

问题描述 投票:0回答:1

我正在使用 drop1 逐步删除 glm 的变量。

从模型 1 中,我根据生成模型 2 的需要删除 AIC 最低的变量。

但是,当我比较两者的 AIC 时,模型 1 的 AIC 较低,并且从

drop1
报告的模型 2 的 AIC 和从
AIC()
报告的 AIC 不同。

我很困惑为什么这些 AIC 来自

drop1()
AIC()
的相同模型,以及如何进行模型选择?

谢谢

m1 <- glm(abundance ~ treatment + land_use + patch_size, data=df)

drop1(m1, test="F")

m2 <- glm(abundance ~ treatment + land_use, data=df)

AIC(m1) 

AIC(m2) ##this AIC varies from that reported in drop1() and is higher than AIC(m1)
r glm vgam
1个回答
0
投票

drop1
函数使用
extractAIC
来获取AIC,而
AIC
函数使用不同的加性常数。请参阅
?extractAIC
的详细信息部分,特别是本段:

对于未知尺度的线性模型(即“lm”和“aov”),-2 log L 根据偏差计算并使用不同的加法 常量为“logLik”,因此为“AIC”。如果 RSS 表示(加权) 残差平方和,然后“extractAIC”用于 -2 log L 公式 RSS/s - n(对应于 Mallows' Cp)在已知的情况下 未知尺度的尺度 s 和 n log (RSS/n)。 “AIC”仅处理 未知比例并使用公式 nlog(RSS/n) + n + nlog 2pi - sum(log w) 其中 w 是权重。进一步‘AIC’计算规模 估计作为“edf”和“extractAIC”中的参数则不然。

然而,正如它继续说的:

请注意,此功能的方法可能有所不同 来自“AIC”方法的假设(通常via一种方法 为“logLik”)。我们已经提到过“lm”模型的情况 估计规模,并且“glm”和“glm”中也存在类似问题 “negbin”方法,其中色散参数可能是也可能不是 被视为“免费”。这并不重要,因为“extractAIC”仅用于 比较同级别车型(仅 AIC 值差异) 被考虑)。

因此,换句话说,您可以使用

drop1
实现自己的
AIC
函数,并且您会在各个子模型的 AIC 之间获得与使用内置 drop1 相同的
差异

© www.soinside.com 2019 - 2024. All rights reserved.