【发布时间】:2014-04-09 15:02:18
【问题描述】:
我是 r 的新手。我正在使用 optim 函数来获得 arima 函数的最大似然估计,假设残差是正态分布的。我已经对数据进行了一次差异化以使其静止。我写了以下来计算可能性:-
kings <- scan("http://robjhyndman.com/tsdldata/misc/kings.dat",skip=3)
arima1<-function(a=length(kings))
{e<-array(0,dim=a-2);
e[1:2]=0
y=diff(kings)
likelihood<-function(AR,e,y)
{for(i in 3:41)
{e[i]<-sum(y[i],-AR[1],-(AR[2]*y[i-1]),-(AR[3]*y[i-2]),-(AR[4]*e[i-1]),-(AR[5]*e[i-2]))
}
-sum(-(a-1)*(log(AR[6]*(2*22/7)^.5)),-(sum(e^2)/(2*(AR[6])^2)))
}
optim(par<-c(0,0,1,0,1,14),likelihood,y=y,e=e,control=list(maxit=1000))
}
arima1()
但是使用函数arima(y,order
【问题讨论】:
-
你应该自己做这个功能吗? R中有一些包可以为ARIMA模型做MLE,比如
TSA(时间序列分析)。 -
我的一个朋友建议我先手动执行该功能,不要采用自动化功能。他说这是了解系统工作原理的最佳方式。
标签: r statistics