全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
22233 21
2010-06-08
看到论坛中有不少关于AIC的问题,于是花了点时间研究了一下。现进行阐述:
1、对数似然值(loglikelihood)定义都一致:l=-(n/2)*ln(2*pi)-(n/2)*ln(sse/n)-n/2.其中n为样本量,sse为残差平方和。
AIC的定义有些书上有点不同,如何晓群的<<应用回归分析>>书中为:AIC=-2*l+2*p.其中,l为对数似然值,p为参数个数,包括常数项。
而易丹辉的<<数据分析与EVIEWS应用>>中为:AIC=(-2*l+2*p)/n.
可以很明显的看出,两者的定义相差n倍。
2、R中AIC的计算:
R中计算AIC值有两个函数:AIC和extractAIC,两者有差别。
因为似然函数中的未知参数的个数为p+1,其中p为前面所讲的包括常数项的参数个数。故
在R中AIC=-2*l+2*(p+1),将前面的l值代入,也可写为:AIC=n*ln(2*pi)+n*ln(sse/n)+n+2(p+1).
而extractAIC=n*ln(sse/n)+2*p,即截取了AIC的一部分,而去掉了常数部分。
3、R中计算的部分结果:
> AIC(res)  #说明:res为lm回归的结果,样本量为18;自变量有3个,参数则为4个。
[1] 40.57416
> logLik(res)
'log Lik.' -15.28708 (df=5)
> l1=logLik(res)
> l1
'log Lik.' -15.28708 (df=5)
> a1=-2*l1+2*4
> a1
可看出AIC与a1相差2,即因为a1中少加了2的原因。
> c1[4,2] #提取的残差
[1] 5.7607
> 18*log(c1[4,2]/18)+2*4
[1] -12.50763
> extractAIC(res)
[1]   4.00000 -12.50763
说明extractAIC用的就是上述公式。
而在EVIEWS中其结果则为2.413009,是怎么得来的呢?它实际上等于=a1/18=(AIC(res)-2)/18,也即第1点上提到的易丹辉书上的公式。
这也就是用EVIEWS与用R不同的原因了,结果肯定不同,因为公式不同。那么它们之间的关系是什么呢?
AIC(EVIEWS)=(AIC(R)-2)/n.(其中AIC(EVIEWS)代表EVIEWS中AIC值,AIC(R)代表R中AIC值。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-6-8 19:10:30
AIC 计算的基本公式是:
AIC = -2*log(LL) + 2*p
LL: log-likelihood
p: numbers of independent prarameters

其他的形式多为根据问题的修正形式,换句话来说,就是在某个问题中,Akaike 的AIC 不一定有效,但修正后的有效。
一般的模型选择,往往需要AIC和BIC同时进行判断
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-6-12 08:53:53
有时候AIC1<AIC2,但是BIC1>BIC2,怎么判断?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-21 21:32:07
这下明白了。谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-24 11:21:52
高手!能解释下,AIC是如何定义的吗?合理性在哪
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-24 20:51:13
AIC是Akaike在1973,1974年提出的,是在K-L信息量(Kullback-Leibler)I(g,f)基础上改进的,基本思想是用一个概率密度函数f去逼近真实的未知的密度函数g,使得I(g,f)达到最小,对于I(g,f)等价的是一个对数似然函数在g下的期望的负数-E_g(log(f(X))),它的一个无偏估计是-(logf(X1)+logf(X2)+...+log(Xn)),通常在一个参数族{f_m(.| theta_m)}选择f_m使得上述无偏估计达到最小,由于我们只有来自g的观测数据Xi (i=1,...,n),通常采用两步估计法,第一步:对固定的m,求theta的估计,第二步:对所有m求全局极小值,对应的m和theta就是所求的估计,然而这个估计有个缺点:两次使用了数据来估计对数似然(第一次估计theta,第二次由theta的估计计算对数似然函数的值),这样会引起过度拟合,得到的估计自然是有偏的,Akaike通过增加一个偏倚项来修正这种偏倚,从而就定义了AIC准则=-(极大化对数似然)+(待估参数个数),第一项反映的是拟合的优劣程度,第二项增加的是对模型复杂性的惩罚。我们知道一个有限支撑上的连续函数可以用任意一个n阶多项式进行逼近,当多项式的阶数或者系数个数达到数据点的个数时,拟合的误差为0,显然,此时拟合并不好,因此AIC通过增加一个模型的复杂性的惩罚(参数个数),当复杂模型使得对数似然减小时,参数的个数在增加,这样AIC的值不会过小,这就解决了这种过拟合问题,在图像上显示出来是一个U型,也就是有一个合适的模型参数p使得AIC最小,但p不会太小也不会太大,类似于非参数回归中带宽的选择来平衡偏倚和方差。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群