为什么我在 LME 框架中得到不同模型的相同 AIC、BIC 和对数似然?

机器算法验证 r 混合模式 最大似然 aic 比克
2022-03-24 03:08:21

我有两个具有相同交互作用的 LME 模型,一个包含主效应,一个只包含一个主效应,比如:

H_CE=Season+Crownlevel+Season:Crownlevel,random=1|CollectorID
H_CE=Season+Season:Crownlevel,random=1|CollectorID

每个级别有 4 个级别,Season、Crownlevel 和 CollectorID 的每个组合 两个模型的 AIC、BIC 和对数似然完全相等。给定 AIC 的公式为

AIC=2k2ln(L) 

即使可能性完全相同,人们也会期望这会有所不同。最后,它们具有不同数量的参数。或者我是这么想的……

在 R 中尝试这个玩具示例:

library(nlme)

Season <- rep(as.factor(rep(letters[1:4],each=4)),4)
Crownlevel <-rep(as.factor(rep(letters[11:14],4)),4)
CollectorID <-rep(letters[20:23],each=16)
X <-  model.matrix(~Season+Crownlevel+Season:Crownlevel)
B <- c(1,1,-2,2,0.3,0.4,0.4,2,3,1,-2,-3,-4,2,1,2)
H_CE <- X %*% B + rnorm(16*4)
KBM <- data.frame(Season,Crownlevel,H_CE,CollectorID)

model1 <- lme(H_CE~Season+Crownlevel+Season:Crownlevel,data=KBM,
       method="ML",random=~1|CollectorID)
model1e <- lme(H_CE~Season+Season:Crownlevel,data=KBM,
       method="ML",random=~1|CollectorID)

我得到:

anova(model1,model1e)
        Model df      AIC      BIC    logLik
model1      1 18 174.1834 213.0433 -69.09168
model1e     2 18 174.1834 213.0433 -69.09168

我在这里想念什么?为什么数字完全相等?它必须与模型规范有关,但我真的看不出是什么。

模型规格本身是错误的,我知道。但我无法解释是什么让它返回一组不同的参数,但完全相同的残差、可能性和自由度:

> all.equal(residuals(model1),residuals(model1e))
[1] TRUE

正如fabians正确指出的那样,这两种模型是完全等效的。然而,我不明白为什么在 AIC 计算中使用相同的参数数量值k

kAIC 中使用 df,它解释了一切。

1个回答

这些模型完全等效。在这两个模型中,您可以为 Season 和 Crownlevel 的每个级别组合有效地指定一个参数 - 唯一的区别是参数化:

在第一个模型中,您拟合了 Season 和 Crownlevel 的主效应以及一个交互效应,以捕获与主效应的特定组合偏差。

在第二个模型中,您只指定季节的主效应,然后交互效应捕获一个季节内每个冠级的偏差。

H_CE~Season:Crownlevel

还将产生一个等效模型,每个季节和冠层组合都有一个参数(减去一个因截距而无法识别的参数,即构成参考类别)。

顺便说一句:我认为您的模型规范没有错误,哪个规范更好取决于您要对模型进行的推理。