繁体   English   中英

在 R 中使用 ARIMA 进行时间序列分析预测

[英]Prediction on time series analysis using ARIMA in R

我是编程新手,正在尝试为多篇文章创建预测 model。 不幸的是,使用 Excel 或类似软件无法完成此任务。 因此,我安装了Rstudio来解决这个问题。 我的目标是使用 ARIMA model 对我数据集中的每篇文章进行 18 个月的预测。

但是,我目前面临数据框格式的问题。 具体来说,我不确定我的 CSV 应该如何构造才能被我的代码读取。

我附上了我当前数据集的图像,格式为 CSV: https://i.stack.imgur.com/AQJx1.png

这是我的输出(销售数据): structure(list(X.Article.1.Article.2.Article.3 = c("janv-19;42;49;55", "f\xe9vr-19;56;58;38", "mars-19;55;59;76")), class = "data.frame", row.names = c(NA, -3L))

并且还提供了我迄今为止在博客和网站的帮助下构建的代码:

library(forecast)
library(reshape2)

sales_data <- read.csv("sales_data.csv", header = TRUE)

sales_data_long <- reshape2::melt(sales_data, id.vars = "Code Article")

for(i in 1:nrow(sales_data_long)) {
  
  sales_data_article <- subset(sales_data_long, sales_data_long$`Code Article` == sales_data_long[i,"Code Article"])
  
  sales_ts <- ts(sales_data_article$value, start = c(2010,6), frequency = 12)
  
  arima_fit <- auto

  arima_forecast <- forecast(arima_fit, h = 18)
  
  print(arima_forecast)
  print("Article: ", Code article[i])
}

使用此代码,RStudio 给我以下错误:“错误:数据中未找到 id 变量:代码文章”

目前,我对生成任何图或输出不感兴趣。 我的主要重点是为我的数据确定合适的格式。

我是否需要修改我的 CSV 文件并使用“,”或“;”分隔每一列? 或者,我能否将数据保留为当前格式并改为在代码中进行调整?

根据 jrcalabrese 请求添加了 dput output。 交换为 reshape2 (tidyr) 的替代品。 使用 pivot_longer。 现在不给出错误,这发生在 reshape2::melt 中。 csv 结构是什么并不重要。 你的结构很好。 希望这可以帮助: :-)

library(tidyr)
sales_data <- structure(list(var1 = c("Article 1", "Article 2", "Article 3"),
`janv-19` = c(42, 56, 55),
`fev-19` = c(49, 58, 59),
`mars-19` = c(55, 38, 76)),
row.names = c(NA, 3L), class = "data.frame")

sales_data_long <- sales_data |> pivot_longer(!var1,
                                              names_to = "month",
                                              values_to = "count")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM