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")
結果由上面的圖中給出。顯然,即使我們設置了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)
我測試了很多次,原因可能是bma.method = c(「SSVS」,「ODA」)。 SSVS是一種經典的方法,然而,它會高估變量的重要性,而ODA是一個相對穩定的新方法。 –