2016-06-14 60 views
1

我在我的季節性時間序列數據周圍安裝了TBATS模型,並使用forecast包獲得預測。我R代碼裏面是:如何使用R中的'預測'庫將預測值存儲到CSV文件中?

library("forecast") 
data = read.csv("data.csv") 
season_info <- msts(data,seasonal.periods=c(24,168)) 
model <- tbats(season_info) 
forecasted <- forecast.tbats(best_model,h=24,level=90) 
forecasted 

現在,我有「預測」一個所謂的可變輸出爲這樣:

> forecasted 
     Point Forecast Lo 90 Hi 90 
6.940476  5080.641 4734.760 5426.523 
6.946429  5024.803 4550.111 5499.496 
6.952381  4697.625 4156.516 5238.733 
6.958333  4419.105 3832.765 5005.446 
6.964286  4262.782 3643.528 4882.037 
6.970238  4187.629 3543.062 4832.196 
6.976190  4349.196 3684.444 5013.947 
6.982143  4484.108 3802.574 5165.642 
6.988095  4247.858 3551.955 4943.761 
6.994048  3851.379 3142.831 4559.927 
7.000000  3575.951 2855.962 4295.941 
7.005952  3494.943 2764.438 4225.449 
7.011905  3501.354 2760.968 4241.739 
7.017857  3445.563 2695.781 4195.345 

我需要從列「預測」收集預測值,並將其存儲在一個CSV文件中。我嘗試在線閱讀TBATS和「預測」方法的頁面,但他們沒有說明如何提取特定的預測值列,而忽略其他列,如「你好」,「洛」和「點」。

我在尋找我的CSV輸出:

hour,forecasted_value 
0,5080.641 
1,5024.803 
2,4697.625 
... 

回答

2

它們存儲在三個部分。你可以看一下對象結構str(ret)

library(forecast) 
fit <- tbats(USAccDeaths) 
ret <- forecast(fit) 
ret$upper # Upper interval 
ret$lower # Lower interval 
ret$mean # Point forecast 
+0

你說得對,那工作。關於如何在每個均值之前生成數字0-24並將它們存儲在CSV中的任何想法?例如,我在上面的問題中提到的輸出CSV格式。 – learnerX

+0

你有24個平均值嗎? –

+0

是的,'h = 24'在這一行:'預測< - forecast.tbats(best_model,h = 24,level = 90)'確保我有24個預測。 – learnerX

2

您可以獲取通過print()所示的輸出:

library("forecast") 
data = read.csv("data.csv") 
season_info <- msts(data,seasonal.periods=c(24,168)) 
model <- tbats(season_info) 
forecasted <- forecast.tbats(best_model,h=24,level=90) 
dfForec <- print(forecasted) 

這會給你的data.frame,現在你可以挑選出你想要的列即, dfForec[, 1]僅用於點預測,然後使用write.csv(dfForec[, 1, drop = FALSE], ...)將其寫入平面文件。

0

使用意味着功能讓你的點預測

庫( 「預測」)

數據= read.csv( 「data.csv」)

season_info < - MSTS(數據,季節性.periods = C(24168))

模型< - tbats(season_info)

預測< - (forecast.tbats(best_model,H = 24級= 90))$意味着

預測$意味着