根据 AIC 和 BIC,最好的模型只包含一个不重要的项
Posted
技术标签:
【中文标题】根据 AIC 和 BIC,最好的模型只包含一个不重要的项【英文标题】:The best model, according to both AIC and BIC, contains only a non significant term 【发布时间】:2014-05-04 21:55:26 【问题描述】:我想知道基于 AIC 和 BIC 值的最佳模型 (m6) 怎么可能有一个不重要的项,而次佳模型 (m5) 有一个重要的项。
我有以下竞争模型列表:
m1=gls(Area_Km2~size+cent_Latitude+PCptail+pwingbilltar,corMartins(1,phy=ctree),data = c)
m2=gls(Area_Km2~size+cent_Latitude+PCptail,corMartins(1,phy=ctree),data = c)
m3=gls(Area_Km2~size+cent_Latitude,corMartins(1,phy=ctree),data = c)
m4=gls(Area_Km2~size,corMartins(1,phy=ctree),data = c)
m5=gls(Area_Km2~PCptail,corMartins(1,phy=ctree),data = c)
m6=gls(Area_Km2~cent_Latitude,corMartins(1,phy=ctree),data = c)
m7=gls(Area_Km2~pwingbilltar,corMartins(1,phy=ctree),data = c)
这是模型比较
Model df AIC BIC logLik Test L.Ratio p-value
m1 1 7 147.2775 157.9620 -66.63873
m2 2 6 139.4866 148.8187 -63.74331 1 vs 2 5.790838 0.0161
m3 3 5 133.3334 141.2510 -61.66672 2 vs 3 4.153191 0.0416
m4 4 4 130.7749 137.2186 -61.38746 3 vs 4 0.558517 0.4549
m5 5 4 127.0635 133.5072 -59.53175
m6 6 4 125.1006 131.5443 -58.55029
m7 7 4 132.4542 138.8979 -62.22711
这里是m6
Generalized least squares fit by REML
Model: Area_Km2 ~ cent_Latitude
Data: c
AIC BIC logLik
125.1006 131.5442 -58.55029
Correlation Structure: corMartins
Formula: ~1
Parameter estimate(s):
alpha
1
Coefficients:
Value Std.Error t-value p-value
(Intercept) 0.4940905 0.1730082 2.8558795 0.0070
cent_Latitude -0.1592109 0.1726268 -0.9222837 0.3624
Correlation:
(Intr)
cent_Latitude -0.158
Standardized residuals:
Min Q1 Med Q3 Max
-1.3270048 -0.7088524 -0.2828898 0.4672255 2.2203523
Residual standard error: 1.066911
Degrees of freedom: 39 total; 37 residual
这里是m5
Generalized least squares fit by REML
Model: Area_Km2 ~ PCptail
Data: c
AIC BIC logLik
127.0635 133.5072 -59.53175
Correlation Structure: corMartins
Formula: ~1
Parameter estimate(s):
alpha
1
Coefficients:
Value Std.Error t-value p-value
(Intercept) 0.19752329 0.20158500 0.9798512 0.3335
PCptail 0.01925621 0.00851536 2.2613499 0.0297
Correlation:
(Intr)
PCptail -0.595
Standardized residuals:
Min Q1 Med Q3 Max
-1.3416127 -0.6677304 -0.2467510 0.3198370 2.3339127
Residual standard error: 1.01147
Degrees of freedom: 39 total; 37 residual
【问题讨论】:
你在做什么? 对不起,我在 R 中做这个。没想到这很重要。 我对 R 一无所知 - 使用您使用的语言标记问题总是值得的,因为它会突出显示给那些将其标记为“有趣”标签的人 以为它出现在标志中,你知道有没有办法将这个问题传递给交叉验证?想知道它可能对那个目录更感兴趣。谢谢。 【参考方案1】:这里至少发生了两件事。首先,断言具有最低 AIC 的模型是“最佳”模型是没有意义的。对于具有不同 AIC 的一组模型,第 ith 个模型优于 AIC 最低的模型的相对概率由下式给出:(参见here,以及其中引用的参考资料):
L = exp[ ( AICmin - AICi ) / 2 ]
所以,比较m5
和m6
:
L = exp[ (125.1006 - 127.0635) / 2 ] = 0.374
或者,m5
实际上是更好的模型的可能性为 37%。关键是 AIC 为 125.2 和 AIC 为 127 之间没有显着差异,因此您不能说 m6
是“最佳”。两种模型的表现都差不多。
那么为什么cent_Latitude
在m6
中无关紧要? p 值 > 0.05 意味着与响应中的误差相比,cent_Latitude
对响应的影响很小。这可能是因为真正的效果大小为 0,或者它可能是因为效果大小与cent_latitude
中的范围相结合导致对响应的影响与响应中的错误相比很小。您可以在下面看到这一点,它使用虚构的数据并创建您使用真实数据看到的相同效果。
假设响应变量实际上取决于cent_Latitude
和PCptail
。在m6
中,由于PCptail
的影响而导致的响应变异性计入模型中的“错误”,从而降低了cent_Latitude
的计算显着性。另一方面,在m5
中,由于cent_Latitude
的影响而导致的响应变化被计入错误,从而降低了PCptail
的重要性。如果效果大小与真实误差相比,恰到好处,您可以获得此效果,如下所示。请注意,这是不建议使用单一统计量(如 AIC、RSQ 甚至 F)比较非嵌套模型的原因之一。
library(nlme)
set.seed(1)
# for simplicity, use un-correlated predictors
c <- data.frame(PCptail=sample(seq(0,10,.1),length(seq)),
cent_Latitude=sample(seq(0,1,.01),length(seq)))
# response depends on both predictors
c$Area <- 1 + .01*c$PCptail +.1*c$cent_Latitude + rnorm(nrow(c),0,1)
m6 <- gls(Area~cent_Latitude,c)
m5 <- gls(Area~PCptail,c)
summary(m6)
# Generalized least squares fit by REML
# Model: Area ~ cent_Latitude
# Data: c
# AIC BIC logLik
# 288.5311 296.3165 -141.2656
#
# Coefficients:
# Value Std.Error t-value p-value
# (Intercept) 1.1835936 0.1924341 6.150645 0.0000
# cent_Latitude -0.1882202 0.3324754 -0.566118 0.5726
# ...
summary(m5)
# Generalized least squares fit by REML
# Model: Area ~ PCptail
# Data: c
# AIC BIC logLik
# 289.2713 297.0566 -141.6356
#
# Coefficients:
# Value Std.Error t-value p-value
# (Intercept) 0.7524261 0.18871413 3.987121 0.0001
# PCptail 0.0674115 0.03260484 2.067530 0.0413
# ...
那么如何处理呢?那么,你看过所有这些模型的残差图了吗?你看过QQ图吗?利用地块?一般来说,在所有其他方面都相同的情况下,我会选择具有更重要参数的模型,假设残差是随机且正态分布的,并且没有一个数据点具有异常高的杠杆率。
【讨论】:
绝妙的答案 jhoward。我尝试使用您的提示,但给了我以下错误: 我现在根据 iacobus 使用“ML”估计,并尝试使用您的提示来评估模型的新差异。它虽然给了我以下错误:'exp [(149.9908 - 155.2992)/2] 中的错误:'builtin' 类型的对象不是子集'。 liliefors 检验表明残差不正常,残差之间的关系非常不均匀,可能是非线性的。我想我需要在重新测试之前转换我的变量。 那个等式并不意味着是一个 R 表达式。用括号替换方括号。 另外,你必须使用gls吗?我不知道您的数据集,但广义线性模型 (glm) 可能更合适。【参考方案2】:您正在使用method = "REML"
拟合模型,这是受限的可能性。并不总是意味着 REML 下的最大似然会接近无限制 ML 下的似然。设置method = "ML"
并查看是否可以解决 AIC/BIC 的“问题”。
【讨论】:
非常感谢 Iacobus!事实上,现在使用 ML 为第一个模型提供了 5 个 AIC 单元的最低 AIC 渲染,并检测了几个重要的关系。尽管如此,我在对 jhoward 的回答中看到了其他问题。 因为我需要将一个答案标记为正确的答案,所以我会标记这个答案,因为它显然解决了最初提出的问题。尽管如此,jlhoward 的回答对于完整性和其他原因确实很有帮助。再次感谢他们。以上是关于根据 AIC 和 BIC,最好的模型只包含一个不重要的项的主要内容,如果未能解决你的问题,请参考以下文章