2015-08-17 28 views
1

bsts是貝葉斯結構time series modeling的R包。如何使用R來強化bst的結果?

library(bsts) 
# Load data 
data(iclaims) 
#Specify the trend and seasonality. 
ss <- AddLocalLinearTrend(list(), initial.claims$iclaimsNSA) 
ss <- AddSeasonal(ss, initial.claims$iclaimsNSA, nseasons = 52) 
#set the seed within bsts. 
model2 <- bsts(iclaimsNSA ~ ., state.specification = ss, data = 
          initial.claims, niter = 3000, seed = 1) 
model3 <- bsts(iclaimsNSA ~ ., state.specification = ss, data = 
          initial.claims, niter = 3000, seed = 1) 
# plot the results 
par(mfrow=c(2, 2)) 
plot(model2, "coefficients") 
plot(model3, "coefficients") 
plot(model2, "size") 
plot(model3, "size") 

enter image description here

結果由上面的圖中給出。顯然,即使我們設置了bsts的種子並將迭代次數增加到3000,這兩個結果也不完全相同。

我也試過從bsts中set.seed()。它也不起作用。

set.seed(1); model2 <- bsts(iclaimsNSA ~ ., state.specification = ss, data = 
          initial.claims, niter = 3000, seed = 1) 
set.seed(1); model3 <- bsts(iclaimsNSA ~ ., state.specification = ss, data = 
          initial.claims, niter = 3000, seed = 1) 
+0

我測試了很多次,原因可能是bma.method = c(「SSVS」,「ODA」)。 SSVS是一種經典的方法,然而,它會高估變量的重要性,而ODA是一個相對穩定的新方法。 –

回答

1

你應該check參數burnpredict.bsts。也可以玩SuggestBurn功能。希望有所幫助。

+0

謝謝,但是我使用bsts函數,而predict.bsts是另一個。 http://www.rdocumentation.org/packages/bsts/functions/bsts.html –

相關問題