2017-06-12 98 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

不知道你的數據集是如何工作的,我並不確定。代碼看起來可能是正確的,但如果它給出的結果沒有意義,那麼可能有些問題仍然存在。也許遷移到交叉驗證? –