全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8837 1
2016-02-23
悬赏 25 个论坛币 未解决
      我用r语言编制了进行ADF检验的函数循环,这个函数有两个未知参数,我需要设定一定的参数值空间,然后以0.01为精度,对每组可能的参数值计算出的序列进行ADF检验,然后将p值小于5%的参数值挑选出来。      但是在实际运行过程中,总是提示warning,大致意思是实际的p值小于显示的p值,一旦warning出现,循环就无法继续运行下去了。
       想求助大家,有没有什么语句可以忽略warning,比如   if(warning出现){函数返回0}  之类的,谢谢大家了!

      我的代码如下,初学r,写的不好,大家见笑了,也请高手帮忙指正!

   adftest=matrix(0,nrow=1101,ncol=151)              ###ADF检验结果返回矩阵

    adfczs<-function(params)                                    ###ADF检验函数                  
{
  tildeTc=exp((params[1]-log(data[,2]))/params[2])+data[,1]
  hatTc=sum(tildeTc)/length(t(tildeTc))
  tildetc=tildeTc-hatTc
  adf<-adfTest(tildetc,type="nc")
  adfpvalue=0
  if(adf@test$p.value<0.05){adfpvalue=1}
  return(adfpvalue)
}                                                                                ###在95%的水平下平稳则返回1,否则返回0

lnk<-seq(from=10,to=21,by=0.1)                             ###参数值空间      
beta<-seq(from=0.5,to=2,by=0.1)

i=1                                                                           
j=1

while(i<=1101)
{
  while(j<=151)
    {adftest[i,j]=adfczs(c(lnk[i],beta[j]))
    }
}                                        ###对参数值空间里的每一组值代入adfczs函数中计算,然后将值返回到矩阵adftest中




二维码

扫码加我 拉你入群

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

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

全部回复
2016-2-24 20:09:35
复制代码

这两个值,依次是16,111
而你要提取的循环数,已经超过了,当然不能用。lnk[120]这个数据就不存在,程序当然报错。

另外,我运行的时候,出现的是error,不是warnings啊。如果出现的是warnings,程序是可以继续运行的。
你可以先进行一个判定,然后用stop或者break函数跳出判断或循环。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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