我試圖根據過去幾年的數據來預測小時銷售量,使用x軸SaleDateTime顯示預測的圖表,並根據一組測試日期來檢查準確性。我一直在運行錯誤。預測每小時分區數據和繪圖
我嘗試使用dput來生成一個小樣本的數據,但由於某種原因,它仍然會嘗試輸出更多的日期,然後我在子集樣本數據中。
我的數據如下所示:SaleDateTime =「2015-01-02 23:00:00.000」和SaleCount =「1」。
它看起來像我的主要問題是我如何試圖將數據分割成訓練和測試集。
另外我想要x軸的情節有形式「2015-03-01 23:00:00」。我對預測相當陌生,因此非常感謝所有幫助。
代碼:
library("forecast")
library("zoo")
SampleData <- read.csv("SampleDataAll.csv")
Value<-SampleData[,c("SaleDateTime","SaleCount")]
rDateTime<-as.POSIXct(SampleData$SaleDateTime, format="%Y-%m-%d %H:%M:%S")
eventdata <- zoo(Value, order.by = rDateTime)
timeseries <- ts(eventdata$SaleCount, frequency=24)
##Partitioning data Training/Testing
ts1Train <- window(timeseries,start="2011-08-01 00:00:00", end="2014-08-01 00:00:00")
錯誤: 錯誤window.default(X,...): '開始' 不能 '端' 除了後:警告消息: 在window.default (X,...): '結束' 值不改變window.default
ts1Test <- window(timeseries,start="2014-08-01 01:00:00", end="2015-08-01 00:00:00")
錯誤(X,...): '啓動' 不能是 '結束' 此外之後:警告消息: 在window.default(x,...)中:'結束'值沒有改變
fcast2<-forecast(ts1Train,h=8764)
錯誤: 錯誤預測(ts1Train,H = 8764):對象 'ts1Train' 未找到
plot(fcast2)
accuracy(fcast2,ts1Test)
錯誤: 錯誤頻率(X):對象 'ts1Test'沒有找到
UPDATE:
我做下面我如何按照建議分區訓練和測試數據的變化。當我嘗試運行ts1Test數據的準確性時,現在我收到以下錯誤消息。
新代碼:
library("forecast")
library("zoo")
SampleData<-SampleData
Value<-SampleData[,c("SaleDateTime","SaleCount")]
rDateTime<-as.POSIXct(SampleData$SaleDateTime, format="%Y-%m-%d %H:%M:%S")
eventdata <- zoo(Value, order.by = rDateTime)
##Partitioning data Training/Testing
ts1SampleTrain<-eventdata[1:2000,]
ts1Train<-ts(ts1SampleTrain$SaleCount, frequency=24)
ts1SampleTest<-eventdata[2001:28567,]
ts1Test<-ts(ts1SampleTest$SaleCount, frequency=24)
#Training Model
fcast2<-forecast(ts1Train,h=8567)
plot(fcast2)
accuracy(fcast2,ts1Test)
新的錯誤:
錯誤-.default
(XX,FF [1:N]): 非數值參數二元運算
我想如果你沒有通過預測功能的模型,可以試圖找到最好的模式,以適應數據? – user3476463
我使用修改的代碼對訓練和測試數據進行了分區,更新了原始文章。我是否正確,如果您未指定模型,則預測函數會嘗試根據您傳遞的時間序列來查找用於預測數據的最佳模型?當我嘗試運行精確度函數時,您是否發現了導致錯誤的原因? – user3476463
據我所知,'預測'不用於構建時間序列模型,請檢查'?預測'。要運行自動時間序列擬合過程,您可以查看此預測包中的'auto.arima'函數。 –