【问题标题】:auto.arima residuals for more than one ts超过一个 ts 的 auto.arima 残差
【发布时间】:2018-07-23 22:28:51
【问题描述】:

我正在尝试编写一个函数,它给出 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

任何帮助将不胜感激。

【问题讨论】:

    标签: r time-series forecasting arima


    【解决方案1】:

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

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

    我认为 res0 是你要找的

    【讨论】:

    • 是的,完全正确。非常感谢!
    • 如果他的回答解决了你的问题,我认为你应该接受安东尼的回答,而不是我的回答。
    • 非常感谢您的诚实评论。无论如何,我也复制了您的答案,这是绝对正确的。我还学习了我不知道的功能resid
    【解决方案2】:

    这对我有用:

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

    【讨论】:

    • 是的,它有效。谢谢。但我上面的数据集只是一个例子。我的真实数据卫星有更多的列。所以我正在寻找更有效的解决方案
    • 在这种情况下,这可能会有所帮助 library(purrr) df = map_df(AutoArima[1:ncol(Ret)],resid) %>% data.matrix()
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多