2017-06-12 96 views
0

我想创建一个可用于预测未来日期的简单模型。我想要使​​用的是日期列表并使用它来最好地预测未来日期。以下是我迄今所做的:使用日期预测日期

sales_modified = data.frame(City=sales$City, SOCreatedOn=sales$SOCreatedOn) 
sales_modified = sales_modified[order(sales_modified$City,sales_modified$SOCreatedOn),] 
sales_modified = unique(sales_modified) 
sales_modified$rowNum = 1:length(sales_modified$City) 
ggplot(data = sales_modified[1:119,], aes(x=rowNum, y=SOCreatedOn)) + geom_point(aes(color=City)) + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) + facet_wrap(~City)+ geom_smooth(method="lm") 

date1 = lm(SOCreatedOn ~ rowNum, data = sales_modified[1:119,]) 

进行格式化的日期,并保持在名为sales_modified一个数据帧创建两列,一个城市和一个日期。我创建rowNum专栏的原因是以某种方式巧妙地绘制它,并创建模型。我尝试使用lm()来找出线性模型。如何在未提供任何其他数据的情况下查找未来的日期?

编辑: 实验与ARIMA模型,但它导致只是选择日期之后彼此(4月27日,4月28日,4月29日),当我知道这不会是这种情况。

timeseries = ts(sales_modified$SOCreatedOn[1:119]) 
plot.ts(timeseries) 

auto.arima(timeseries) 
timeseriesarima = arima(timeseries, order = c(2,1,0)) 
timeseriesforecast = forecast.Arima(timeseriesarima, h = 5) 
as.Date(timeseriesforecast$mean[1:5]) 

回答

0

时间序列数据违反了相邻数据点彼此独立的假设,简单的线性回归不能正确解释这一点。考虑一个ARIMA模型(?arima)

+0

如果日期本身是我想要建模的变量,我该如何使用它? – SAPUI5GUY

0

尽管我分享@ Rob关注时间序列违反独立性的担心,但很可能只有您可以最好地评估这一点(无论一个数据点是否为您提供关于下一个的信息)。这就是说,如果你对其适合性感到满意,那么预测来自lm模型的新响应是相当容易的。退房?predict.lm,并尝试像

newdate <- predict(date1, newdata=data.frame(rowNum=120:140)) 

如果你发现它更适合使用ARIMA模型@Rob建议,请?predict.Arima。用法类似于predict(yourARIMAmodel)

+0

好吧我想我想使用ARIMA模型,但从我的理解中我需要创建一个具有依赖日期的数据的向量。在我的情况下,当我尝试创建一个时间序列时,我会用什么? – SAPUI5GUY

+0

其实我想我知道了,你能检查我的编辑,并让我知道我是否正确? – SAPUI5GUY

+0

不知道你的数据集是如何工作的,我并不确定。代码看起来可能是正确的,但如果它给出的结果没有意义,那么可能有些问题仍然存在。也许迁移到交叉验证? –