auto.arima残差超过一个ts

时间:2018-02-13 14:07:31

标签: r time-series forecasting arima

我正在尝试编写一个函数,它给出了auto.arima的残差来应用Box-Ljung测试。我尝试了lapply(),但我现在不知道如何使用它来获取每个系列的残差。

library(fpp2)

#Make up some Time Series
dj1=dj
dj2=dj+2
dj3=dj+7


dataframe=cbind(dj1,dj2,dj3)
dataframe=as.data.frame(dataframe)


#Return calculation
Ret=diff(log(as.matrix(dataframe)),1)
Ret=as.data.frame(Ret)

AutoArima= lapply(Ret, function(x) auto.arima(x))
AutoArima

我希望有一个矩阵/数据框,包含3列dj1dj2dj3和291行(包含每列的残差)。

我能够计算单个时间序列的残差,但是当它们在数据框/矩阵中组织时,不能计算每个系列的残差。我尝试了其他一些东西,但它给出了: Error in auto.arima(x) : auto.arima can only handle univariate time series

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这对我有用:

library(purrr) 
df = map_df(AutoArima[1:ncol(Ret)],resid)

答案 1 :(得分:1)

您可以将这两行添加到代码中

res=lapply(AutoArima,function(x) x$residuals)
res0=do.call("cbind",res)

我认为res0就是你要找的东西