我正在尝试编写一个函数,它给出了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列dj1
,dj2
,dj3
和291行(包含每列的残差)。
我能够计算单个时间序列的残差,但是当它们在数据框/矩阵中组织时,不能计算每个系列的残差。我尝试了其他一些东西,但它给出了:
Error in auto.arima(x) :
auto.arima can only handle univariate time series
非常感谢任何帮助。
答案 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就是你要找的东西