模型中AIC和BIC以及loglikelihood的关系
asreml中,用于比较模型的LRT检验,会给出P值,但是这只能表示两个模型达到显著与否,而不能表示哪个模型优秀。常用的参数有AIC,BIC,loglikelihood,本篇介绍一下这几个参数的含义,以及是如何计算的1. AIC的解释赤池信息准则(Akaike Information Criterion,AIC)AIC是衡量统计模型拟合优良性的一种标准,由日本统计学家赤池弘次在1974年提出,它建
在进行建模时,经常要对模型进行评价:
- 这个模型好不好?
- 这几个模型那个好?
- 这两个模型是否达到显著性差异?
我们常用的参数有AIC,BIC,loglikelihood,本篇介绍一下这几个参数的含义,以及是如何计算的,下面我们一起来看一下吧。
1. AIC的解释
赤池信息准则(Akaike Information Criterion,AIC)
AIC是衡量统计模型拟合优良性的一种标准,由日本统计学家赤池弘次在1974年提出,它建立在熵的概念上,提供了权衡估计模型复杂度和拟合数据优良性的标准。
通常情况下,AIC计算公式为:
A
I
C
=
−
2
∗
l
n
(
L
)
+
2
∗
k
AIC = -2*ln(L) + 2*k
AIC=−2∗ln(L)+2∗k
- k是模型参数个数,
- L是似然函数
从一组可供选择的模型中选择最佳模型时,通常选择AIC最小的模型。
当两个模型之间存在较大差异时,差异主要体现在似然函数项,当似然函数差异不显著时,上式第一项,即模型复杂度则起作用,从而参数个数少的模型是较好的选择。
一般而言,当模型复杂度提高(k增大)时,似然函数L也会增大,从而使AIC变小,但是k过大时,似然函数增速减缓,导致AIC增大,模型过于复杂容易造成过拟合现象。
目标是选取AIC最小的模型,AIC不仅要提高模型拟合度(极大似然),而且引入了惩罚项,使模型参数尽可能少,有助于降低过拟合的可能性。
2. BIC的解释
贝叶斯信息准则(Bayesian Information Criterion,BIC)
BIC(Bayesian InformationCriterion)贝叶斯信息准则与AIC相似,用于模型选择,1978年由Schwarz提出。训练模型时,增加参数数量,也就是增加模型复杂度,会增大似然函数,但是也会导致过拟合现象,针对该问题,AIC和BIC均引入了与模型参数个数相关的惩罚项,BIC的惩罚项比AIC的大,考虑了样本数量,样本数量过多时,可有效防止模型精度过高造成的模型复杂度过高。
B I C = − 2 ∗ l n ( L ) + k ∗ l n ( n ) BIC = -2*ln(L) + k*ln(n) BIC=−2∗ln(L)+k∗ln(n)
- k为模型参数个数
- n为样本数量
- L是似然函数
k*ln(n)惩罚项在维数过大且训练样本数据相对较少的情况下,可以有效避免出现维度灾难现象。
3. AIC和BIC的比较
AIC和BIC的公式中前半部分是一样的,
后半部分是惩罚项,当n ≥ 10^2 的时候,即kln(n) ≥ 2k,这时候BIC的惩罚性得分更多(分数越大,模型越差),所以,BIC相比AIC在大数据量时对模型参数惩罚得更多,导致BIC更倾向于选择参数少的简单模型。
4. 实例演示
ASReml-R 文档中的计算方法:
这里:
- Ri为似然函数的loglikelihood
- ti为参数个数
- v为残差的自由度
用两个模型:
- 模型1:动物模型,固定因子是SEX和BYEAR,随机因子是加性模型
- 模型2:动物模型,固定因子是SEX和BYEAR,随机因子是加性效应和母体环境效应
m1 = asreml(BWT ~ SEX + BYEAR, random = ~ vm(ANIMAL,ainv), residual = ~ idv(units),data = dat)
summary(m1)$varcomp
# m2 单性状动物模型 + 母体效应
m2 = asreml(BWT ~ SEX + BYEAR, random = ~ vm(ANIMAL,ainv) + MOTHER , residual = ~ idv(units),data = dat)
summary(m2)$varcomp
4.1 模型1的AIC和BIC
这里,m1的loglik为-1093.197,这个值是AIC和BIC公式的ln(L):
l
o
g
l
i
k
=
l
n
(
L
)
loglik = ln(L)
loglik=ln(L)
所以,这里的参数个数是2,所以手动计算AIC的公式为:
A I C = − 2 ∗ m 1 $ l o g l i k + 2 ∗ 2 AIC = -2*m1\$loglik+ 2*2 AIC=−2∗m1$loglik+2∗2
结果可以看出,手动计算的AIC和函数计算的AIC,结果一致。
手动计算BIC的公式:
这里的n是模型残差的自由度。
B I C = − 2 ∗ m 1 $ l o g l i k + 2 ∗ l o g ( m 1 $ n e d f ) BIC = -2*m1\$loglik+ 2*log(m1\$nedf) BIC=−2∗m1$loglik+2∗log(m1$nedf)
可以看到,手动计算的BIC和手动计算的BIC结果一致。
4.2 模型2的AIC和BIC
代码:
m2$loglik
-2*m2$loglik+ 2*3
summary(m2)$aic
-2*m2$loglik+ 3*log(m2$nedf)
summary(m2)$bic
注意,这里的参数是3,而不是2.
AIC的结果:完全一致
BIC的结果:完全一致
4.3 模型1和模型2比较
loglikelihood比较
这里的比较,是比较loglikelihood的绝对值,绝对值越小,说明模型拟合越好。当然,这是单纯的比较似然函数,没有考虑参数的影响。
可以看到,模型2优于模型1.
m1$loglik
m2$loglik
AIC比较
这里,AIC值越小,说明模型拟合越好。
这里模型2优于模型1.
summary(m1)$aic
summary(m2)$aic
BIC结果比较
这里,BIC值越小,说明模型拟合越好。
结果可以看出,模型2优于模型1.
summary(m1)$bic
summary(m2)$bic
5. LRT似然比检验
似然比检验用来评估两个模型中那个模型更适合当前数据分析。
具体来说,一个相对复杂的模型与一个简单模型比较,来检验它是不是能够显著地适合一个特定的数据集。
ASReml中的LRT描述:
LRT检验的前提
- 两个模型的固定因子一致
- 两个模型随机因子属于nested关系(包含关系,分级巢式模型)
LRT应用的一个前提条件是这些待比较的模型应该是分级的巢式模型。具体来讲,是说相对于简单模型,复杂模型仅仅是多了一个或者多个附加参数。增加模型参数必定会导致高似然值成绩。因此根据似然值的高低来判断模型的适合度是不准确的。LRT提供了一个客观的标准来选择合适的模型。
LRT检验的公式:
L R = 2 ∗ ( I n L 1 − I n L 2 ) LR = 2*(InL1- InL2) LR=2∗(InL1−InL2)
其中L1为复杂模型最大似然值,L2为简单标准模型最大似然值LR近似的符合卡方分布。为了检验两个模型似然值的差异是否显著,我们必须要考虑自由度。LRT 检验中,自由度等于在复杂模型中增加的模型参数的数目。这样根据卡方分布临界值表,我们就可以判断模型差异是否显著。
手动计算公式:
可以看到,两模型之间的差异达到极显著,所以模型2显著优于模型1.
1-pchisq(-2*(m1$loglik-m2$loglik),1)
公式计算:
lrt.asreml(m1,m2,boundary = F)
手动计算和公式计算,两者结果是一致的。
欢迎关注我的公众号:
育种数据分析之放飞自我
。主要分享R语言,Python,育种数据分析,生物统计,数量遗传学,混合线性模型,GWAS和GS相关的知识。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)