AR模型的R语言实现

本模型存在问题。AIC那边始终计算不对。。可能AIC函数有错?但其他检查后都是对的。能够验证均值回转定理。

  1. 参数估计+定阶

自协方差函数

根据

https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D187/sign=39c692bb87d4b31cf43c90b3b0d7276f/6c224f4a20a446237adc2c9a9422720e0cf3d730.jpg

首先计算自协方差函数

AutoCov<-function(ts,P)
{
  mu0=mean(ts)
  #拆分数据
  a=ts[1:(length(ts)-P)]
  b=ts[(P+1):length(ts)]
  c=0
  for(i in 1:length(a))
  {
    c=c+(a[i]-mu0)*(b[i]-mu0)
  }
  return(c/length(a))
}

 

参数估计

建立Yule-Walker方程,估计a和sigma

#Yule-Walker方程生成和计算
YWMatrix<-function(k,p,select,ts)#注意这里k是上界
{
  if(select==0)
    a=1
  else a=var(ts)
  A<-matrix(1,nrow=k,ncol=k)
  for(i in 1:k)
  {
    for(j in 1:k)
    {
      if(i==j)
        A[i,j]=a
      else if (i<j)
        A[i,j]=p[j-i]
      else A[i,j]=p[i-j] 
    }
  }
  return(A)
}

YWResult<-function(ts,k)
{
  p<-array()
  for(i in 1:k)
  {
    p[i]=AutoCov(ts,i)
  }
  A<-YWMatrix(k,p,1,ts)#设置为1是参数估计时用到的!!!!
  alpha<-solve(A)%*%p
  sigma<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值