楼主: eileenshine
6137 3

求教如何用R找出滞后阶数 [推广有奖]

  • 0关注
  • 0粉丝

高中生

22%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.7823
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
342 点
帖子
45
精华
0
在线时间
6 小时
注册时间
2009-8-16
最后登录
2017-7-25

楼主
eileenshine 发表于 2009-9-6 15:11:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我刚开始学R,很多都不懂,现在想用arima模型,其中先要找出ar的order,求教各位高手怎么在R里用BIC或AIC找出最佳滞后阶数,多谢了!
二维码

扫码加我 拉你入群

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

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

关键词:滞后阶数 如何用 滞后阶 ARIMA模型 ARIMA 求教

本帖被以下文库推荐

沙发
DM小菜鸟 发表于 2015-1-26 15:42:42
一般用AIC,比如
adf1 <- ur.df(x, type = "trend", lags = 2),lag=2是根据AIC准则确定的。过程是我分别从ar(1)模型拟合到ar(4)模型,选择AIC值最小的模型ar(2),因此设定lags=2
但是这个有时候会把人搞疯掉,因为如果这样设置——
adf2 <- ur.df(x, type = "trend", lags = 4,selectlags="AIC")
他俩结果是不一样的。这是因为第一种默认情况下用的是Fixed,而不是AIC准则。
  
所以换个思路,
我的抄几个程序给你,我用数据试过了,可行的。  
>library(TSA )
>data(spots)
> pvaluem=NULL
> for (d in 1:5)
+ {res=tlrt(sqrt(spots),p=5,d=d,a=0.25,b=0.75); pvaluem=
+ cbind(pvaluem,c(d,restest.statistic,resp.value))}
> rownames(pvaluem)=c('d','test statistic','p-value')
> round(pvaluem,3)
                        [,1]     [,2]        [,3]       [,4]          [,5]
d                   1.000    2.000      3.000    4.000        5.00
test statistic   46.897  111.341   99.058   84.962     45.12
p-value          0.000   0.000      0.000     0.000       0.00

还有一种程序:
>ibrary(TSA )
> AICM=NULL
> for(d in 1:4)
+ {predator.tar=tar(y=sqrt(spots),p1=4,p2=4,d=d,a=.1,b=.9)
>AICM=rbind(AICM, c(d, predator.tarAIC,signif(ptrdator.tarthd,4),
+predator.tarp1,predator.tarp2))}
> colnames(AICM)=c('d','nominal AIC','r','p1','p2')
> rownames(AICM)=NULL
>AICM
        d  nominal AIC         r          p1   p2
[1,]   1             155.8     5.882       2    4
[2,]   2             113.7     6.058       3    4[4,]   4             132.5     8.044       3    4
[3,]   3             130.2     6.595       2    4


后面这个绝对好用~
已有 1 人评分经验 论坛币 热心指数 收起 理由
llb_321 + 60 + 60 + 1 精彩帖子

总评分: 经验 + 60  论坛币 + 60  热心指数 + 1   查看全部评分

藤椅
1骆驼啊 学生认证  发表于 2021-3-19 15:29:35
DM小菜鸟 发表于 2015-1-26 15:42
一般用AIC,比如
adf1 data(spots)
> pvaluem=NULL
你好!我用的是下面第二个方法,查了1-24期的滞后,然后是按照什么来确定比较合适的滞后阶数呢

板凳
8791_1582115886 发表于 2022-5-31 15:27:15
1骆驼啊 发表于 2021-3-19 15:29
你好!我用的是下面第二个方法,查了1-24期的滞后,然后是按照什么来确定比较合适的滞后阶数呢
AIC值最小的对应的就是最优滞后阶数,比如上面那个例子AIC为113.7是最小的,最优滞后阶数就是2

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 03:45