我有一系列从2018年1月1日到2018年10月15日的每日销售额数据,示例如下所示。已经观察到,销售量存在一些每月的循环模式,例如在每个月末总是有一个销售高峰,并且在月中该量有轻微的波动。此外,总体而言,6月,7月和8月的销售额高于其他月份。现在我需要预测2018年10月15日之后10天的销售额。我是时间序列和ARIMA的新手。这里有两个问题:
1.如何创建这样的每日时间序列并将其与日期一起绘制?
2.如何设置周期(或频率)以显示每月的周期模式?
Date SalesAmount
1/1/2018 31,380.31
1/2/2018 384,418.10
1/3/2018 1,268,633.28
1/4/2018 1,197,742.76
1/5/2018 417,143.36
1/6/2018 693,172.65
1/8/2018 840,384.76
1/9/2018 1,955,909.69
1/10/2018 1,619,242.52
1/11/2018 2,267,017.06
1/12/2018 2,198,519.36
1/13/2018 584,448.06
1/15/2018 1,123,662.63
1/16/2018 2,010,443.35
1/17/2018 958,514.85
1/18/2018 2,190,741.31
1/19/2018 811,623.08
1/20/2018 2,016,031.26
1/21/2018 146,946.29
1/22/2018 1,946,640.57
答案 0 :(得分:0)
由于问题中没有提供可复制的示例,因此以下示例可以帮助您更好地可视化数据。
使用数据集public class FindLarge {
private String longestWord;
public String longestWord(String sen) {
String arr[] = sen.split(" "); // seperates each word in the string and stores it in array
longestWord = arr[0]; // Assume first word to be the largest word
for (String a : arr)
if (longestWord.length() < a.length()) // check length of each word
longestWord = a;
return longestWord;
}
public static void main(String[] args) {
FindLarge fl=new FindLarge();
String longestWord=fl.longestWord("Hello Welcome to Java"); // string to be checked
System.out.println("Longest Word: "+ longestWord); // Final Output
}
和库economics
,您可以轻松地绘制时间序列。
ggplot2
对于您的问题,您只需要传递library(ggplot2)
theme_set(theme_minimal())
# Basic line plot
ggplot(data = economics, aes(x = date, y = pop))+
geom_line(color = "#00AFBB", size = 2)
和x=Date
即可获得以下图表。关于您的第二个关于按时间序列预测销售额的问题,您可以在这里查看这个问题:Time series prediction using R
答案 1 :(得分:0)
在进行任何形式的预测之前,您需要做的第一件事就是检测您是否具有某种季节性。我建议您添加更多数据,因为要确定重复模式是否很少,这很复杂。无论如何,您可以尝试如下确定季节性:
library(readr)
test <- read_table2("C:/Users/Z003WNWH/Desktop/test.txt",
col_types = cols(Date = col_date(format = "%m/%d/%Y"),
SalesAmount = col_number()))
p<-periodogram(test$SalesAmount)
topF = data.table(freq=p$freq, spec=p$spec) %>% arrange(desc(spec))
1/topF
当您添加更多数据时,可以尝试使用ggseasonplot可视化不同的季节。