每當我運行使用相同預測數據的BSTS模型的預測函數多次,我得到不同的答案。所以我的問題是,有沒有辦法返回一致的答案,因爲我保持我的預測數據集相同?[R BSTS的預測並不一致
例如使用虹膜數據集(我知道這是不是時間序列,但它說明我的觀點)
iris_train <- iris[1:100,1:3]
iris_test <- iris[101:150,1:3]
ss <- AddLocalLinearTrend(list(), y = iris_train$Sepal.Length)
iris_bsts <- bsts(formula = Sepal.Length ~ ., data = iris_train,
state.specification = ss,
family = 'gaussian', seed = 1, niter = 500)
burn <- SuggestBurn(0.1,iris_bsts)
現在,如果我跑這以下行說,10次,每次的結果是不同的:
iris_predict <- predict(iris_bsts, newdata = iris_test, burn = burn)
iris_predict$mean
據我所知,它正在運行MCMC模擬,但我需要一致的結果,因此曾嘗試:
- 在bsts中設置種子並預測之前
- 將狀態空間標準差設置爲接近0,這隻會產生不穩定的結果。
而且既不似乎工作。任何幫助,將不勝感激!
我運行了原代碼並添加了set.seed,正如你所建議的那樣,但是我仍然得到了不同的iris_predict $ mean的結果... – Sharma
我忘記提及我必須能夠多次運行預測函數並始終如一地獲取同樣的結果,設置種子這不會發生。 – Sharma
我編輯了我的答案......'set.seed'是不必要的。對於可重複的行爲,您需要每次在'bsts'中指定'seed' – CPak