目录

  • 1. AIC的解释
  • 2. BIC的解释
  • 3. AIC和BIC的比较
  • 4. 实例演示
    • 4.1 模型1的AIC和BIC
    • 4.2 模型2的AIC和BIC
    • 4.3 模型1和模型2比较
  • 5. LRT似然比检验

在进行建模时,经常要对模型进行评价:

  • 这个模型好不好?
  • 这几个模型那个好?
  • 这两个模型是否达到显著性差异?

我们常用的参数有AICBICloglikelihood,本篇介绍一下这几个参数的含义,以及是如何计算的,下面我们一起来看一下吧。

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相关的知识。

模型中AIC和BIC以及loglikelihood的关系相关推荐

  1. R语言定量方法:回归,虚拟变量和交互项,假设检验:F 检验、AIC 和 BIC分析学生成绩数据带自测题

    最近我们被客户要求撰写关于学生成绩的研究报告,包括一些图形和统计输出. 回归假设 省略变量偏差 如果真实模型包括X 1 和X 2 ,但我们忘记了X 2,那么 - 在某些情况下 - 对X的估计将会有偏差 ...

  2. mysql里面的选择运算_在MySQL关系模型中,选择运算是在一个关系的所有元组中选择指定属性列,组成新关系。...

    [单选题]下列关于元素第一电离能的说法不正确的是( ) [填空题]We had already ____ contact with the museum. [判断题]DELETE语句功能是对表中所有记 ...

  3. Java机器学习库ML之十模型选择准则AIC和BIC

    学习任务所建立的模型多数是参数估计并采用似然函数作为目标函数,当训练数据足够多时,可以不断提高模型精度,但是以提高模型复杂度为代价的,同时也带来一个机器学习中非常普遍的问题--过拟合.模型选择问题是在 ...

  4. 一文帮你理解模型选择方法:AIC、BIC和交叉验证!

    一文帮你理解[模型选择方法]:AIC.BIC 和交叉验证! 本文先讲透模型选择的基本思想,再逐一叙述几种比较典型和常用的模型选择方法,希望可以帮助你理解. 一.模型选择的基本思想 模型选择的核心思想就 ...

  5. aic值检验 p值_模型选择方法:AIC和BIC

    经常地,对一堆数据进行建模的时候,特别是分类和回归模型,我们有很多的变量可供使用,选择不同的变量组合可以得到不同的模型,例如我们有5个变量,2的5次方,我们将有32个变量组合,可以训练出32个模型.但 ...

  6. 模型选择准则之AIC和BIC

    参考文章http://blog.csdn.net/lynnucas/article/details/47947943 转自:http://blog.csdn.net/jteng/article/det ...

  7. 模型选择的几种方法:AIC,BIC,HQ准则

    经常地,对一堆数据进行建模的时候,特别是分类和回归模型,我们有很多的变量可供使用,选择不同的变量组合可以得到不同的模型,例如我们有5个变量,2的5次方,我们将有32个变量组合,可以训练出32个模型.但 ...

  8. 泊松回归、gamma回归、Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线、 洛伦兹曲线、卡方检验、AIC、BIC、偏差(Deviance)指标

    泊松回归.gamma回归.Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线(Calibration curve). 洛伦兹曲线(Lorenz Curve).卡方检验.AIC.BIC.偏差 ...

  9. R语言选模型/用AIC BIC adjustRsq 十折交叉验证 LOOCV等验证/择参 以fama三因子模型和CAMP模型为例@[理科班的习习同学

    R语言选模型/用AIC BIC adjustRsq 十折交叉验证 LOOCV等验证/择参 以fama三因子模型和CAMP模型为例@理科班的习习同学 引入包与数据预处理 install.packages ...

最新文章

  1. java super快速生成_为什么当我使用编辑器代码生成器时,eclipse会在构造函数中自动添加一个java super()方法?...
  2. css如何做玻璃效果_拓展训练之后的效果保持工作该如何做?
  3. 讨厌php机试_[转载]PHP上机面试题
  4. ASP.NET MVC视图引擎SPARK文档中文版
  5. 在Linux系统下安装gnuplot遇到的问题
  6. 绝对强大的三个LINUX指令: AR, NM, OBJDUMP
  7. OpenStack(三)——Glance组件
  8. Redis,MemCached,MongoDB 概述
  9. linux系统创建操作系统用户,linux系统中用户组创建管理linux操作系统 -电脑资料...
  10. RFID将成为物联网革命的首战
  11. struts教程笔记3
  12. xsd是什么文件,作用是什么?
  13. QT软件开发: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令)
  14. 双基因突变患者_我的肺癌没有基因突变,这是好是坏?
  15. 微信登录提示逻辑不正确_微信逻辑错误无法登录
  16. Java多线程导出Excel表格, 100w数据量
  17. java 的vm是什么_java – 什么是VM,为什么动态语言需要一个?
  18. CentOS 7 安装 nodejs 及 npm 安装模块的常见问题
  19. 编写优质嵌入式C程序(转)
  20. 【嵌入式linux】使用4G模块EC20自适应运营商和ppp拨号上网

热门文章

  1. 深度学习领域常用英文表达
  2. 十二、Python简单数据结构应用(之…
  3. PHP学习----换行符
  4. 【PHP】保留两位小数并向上取整
  5. STC全系列头文件及用户手册(官方资源的获取方法)
  6. 大战谷歌!微软Bing引入ChatGPT;羊了个羊高·薪招纳技术人才;Debian彻底移除Python2;GitHub今日热榜 | ShowMeAI资讯日报
  7. linux下syscall函数
  8. MSCI公布最新因子创新;MSCI多资产类别因子模型
  9. 数字图像处理(1)-数字图像处理的基本步骤
  10. python编译环境 eclipse_Eclipse python 开发环境配置