楼主: yahoocom
24604 10

[求助]如何在matlab中求线性回归方程的AIC值 [推广有奖]

  • 7关注
  • 13粉丝

学科带头人

65%

还不是VIP/贵宾

-

威望
1
论坛币
32087 个
通用积分
13.5334
学术水平
29 点
热心指数
55 点
信用等级
15 点
经验
60570 点
帖子
1990
精华
1
在线时间
1877 小时
注册时间
2004-9-29
最后登录
2024-4-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

统计工箱的说明看不懂,请高手帮忙一下。

regress函数求解线性方程时,AIC值如何得到?

二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab 线性回归 回归方程 MATLAB 方程 线性回归 AIC

本帖被以下文库推荐

沙发
gengliyan 发表于 2006-12-1 11:44:00 |只看作者 |坛友微信交流群

我也想知道,有朋友知道吗?

使用道具

藤椅
irvingy 发表于 2006-12-1 13:59:00 |只看作者 |坛友微信交流群

regress does not compute AIC.

AIC is usually defined as -2 * log likelihood + 2 * number of parameters

For regressions,

AIC is log(residual sum of squares) + 2 * degree of freedom / number of observations

I don't think AIC is widely used for linear regression. Usually (adjusted) R-square will suffice. But for non-parametric regression, you need model selection criteria like AIC.

使用道具

板凳
adiko 发表于 2006-12-5 11:50:00 |只看作者 |坛友微信交流群

学习

使用道具

报纸
maximus11111 发表于 2006-12-10 23:37:00 |只看作者 |坛友微信交流群
matlab zhongde jingrong gongjuxiang zm nong a

使用道具

地板
fj102 发表于 2006-12-11 04:11:00 |只看作者 |坛友微信交流群

you can use MLE to estimate

and then you can use the loglikelihood values to compute AIC

使用道具

7
quartzen 发表于 2007-2-9 10:20:00 |只看作者 |坛友微信交流群

要求AIC,首先弄清楚它的原理,你可以去翻翻书,这里不祥写,直接给出线性回归求AIC值程序代码,顺便求BIC(或称SC,施瓦茨准则):

[b,bint,r,rint,stats] = regress(y,x);

L = -T/2*(1+log(2*pi)+log((r'*r)/T)); %求对数似然值:T为样本容量,pi=3.1415...,r为残差向量,k为方程参数个数;
AIC = -2*(L/T)+2*k/T;
BIC = -2*(L/T)+k*log(T)/T;

使用道具

8
leexin111 发表于 2009-7-11 23:14:50 |只看作者 |坛友微信交流群
顶一下啊!

使用道具

9
kaurala 学生认证  发表于 2013-6-29 21:40:16 |只看作者 |坛友微信交流群
学习了

使用道具

10
matlab-007 发表于 2015-2-6 20:15:28 |只看作者 |坛友微信交流群
function arma=armaa(x)
clc
GG=load('d:/gr.txt');
KK=GG;
GG=dtrend(GG);
aic=autocorr(GG);%自相关
paic=parcorr(GG);%偏相关
mm=-aic;
nn=-paic;
paic(1)=[];
aic(1)=[];
nn(1)=1;
for i=2:13,
    for j=1:i,
        dd(j)=nn(j);
    end
    c=filter(dd,1,GG);
    for op=1:i-1,
        c(op)=[];
    end
    canca(i-1)=var(c);
end
for i=1:12,
    BIC(i)=log(canca(i))+1/length(KK)*log(length(KK));
    AIC(i)=log(canca(i))+2*i/length(KK);
end
aic
paic
canca                %残差平方和
AIC
BIC

输出结果:
aic =
   -0.5037
    0.1220
   -0.2108
    0.0796
    0.0187
    0.1169
   -0.2162
    0.2517
   -0.1932
    0.0559
   -0.1036
    0.0123
    0.2180
   -0.0591
   -0.1431
    0.0697
   -0.0505
    0.0115
    0.0312
   -0.0766

paic =
   -0.5041
   -0.1781
   -0.3551
   -0.2831
   -0.1772
    0.0360
   -0.2209
    0.1458
    0.0688
    0.0009
   -0.1723
   -0.2912
    0.1872
    0.1437
   -0.2386
    0.1059
    0.2155
   -0.3839
   -0.2884
   -0.2151

canca =
  1.0e+003 *
  Columns 1 through 11
    2.5172    2.4685    2.3110    2.2903    2.3482    2.3340    2.2696    2.2007    1.9902    2.0228    2.1040
  Column 12
    2.1688

AIC =
  Columns 1 through 11
    7.8660    7.8815    7.8507    7.8768    7.9368    7.9659    7.9730    7.9772    7.9118    7.9631    8.0376
  Column 12
    8.1030

BIC =
  Columns 1 through 11
    7.9019    7.8823    7.8164    7.8074    7.8323    7.8263    7.7983    7.7675    7.6669    7.6832    7.7225
  Column 12
    7.7529

对于acf和pacf,跟EVIEWS输出结果一样。
matlab计算ARMA的AIC、BIC

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 12:19