gpt4 book ai didi

r - auto.arima 使用 xreg 并一起预测多个 ts

转载 作者:行者123 更新时间:2023-12-04 18:06:31 25 4
gpt4 key购买 nike

我正在尝试运行 auto.arima,给定 xreg 中的一组变量。我的代码是:

xregvars <- cbind(df$V1,df$V2,df$V3) 
xregvars1 <- as.matrix(sapply(xregvars , as.numeric))
sales <- ts(df$sales, frequency=7)
arimaxFits <- group_by(df, df$region) %>% do(fit=auto.arima((sales), xreg = xregvars1))

其中 df 有变量:week, region, sales, V1, V2, V3。有 65 个不同的地区,我正在尝试预测每个地区的销售额。此外,每个区域有 120 个观测值。数据看起来像这样:

head(df)
week region sales V1 V2 V3
02/01/2011 Albany 55.48295 32.08712 42.02820 0.62777576
09/01/2011 Albany 56.27815 32.13170 42.12087 0.00000000
16/01/2011 Albany 58.38205 32.13313 42.20314 1.45937474
23/01/2011 Albany 55.40233 32.12635 42.08676 0.01351126
30/01/2011 Albany 57.09780 32.10210 42.04645 0.92708561
06/02/2011 Albany 59.62308 32.10204 42.12536 0.47682755

我引用了 Rob Hyndman 教授给出的解决方案 here但我仍然收到此错误:

Error in model.frame.default(formula = x ~ xreg, drop.unused.levels = TRUE) : 
variable lengths differ (found for 'xreg')

我做错了什么?

最佳答案

我认为您不需要 as.matrix(sapply(xregvars, as.numeric)) 转换。当我读入您的示例数据(我将其放入 CSV 中)时,xregvars 已经是一个数字矩阵。 as.matrix 调用使它成为一个 18 元素向量,而不是我从您的数据中获得的 6x3 矩阵。也许这就是 auto.arima 提示长度的原因。如果您确实需要转换,请尝试:

xregvars1 <- matrix(as.numeric(xregvars), ncol=3)

关于r - auto.arima 使用 xreg 并一起预测多个 ts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com