[英]Time series prediction with and without NAs (ARIMA and Forecast package) in R
[英]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.