如何从bsts R包中提取包含概率

时间:2018-07-10 22:29:13

标签: r time-series bayesian

bsts R包(贝叶斯结构时间序列)计算模型中每个预测变量的包含概率,可以通过PlotBstsPredictors函数对其进行绘制。如何提取这些作为给定bsts模型的值?

1 个答案:

答案 0 :(得分:1)

GetInclusionProbabilities <- function(bsts.object) {
  # Pulls code from
  # - BoomSpikeSlab::PlotMarginalInclusionProbabilities
  # - bsts::PlotBstsCoefficients
  burn <- SuggestBurn(0.1, bsts.object)
  beta <- bsts.object$coefficients
  beta <- beta[-(1:burn), , drop = FALSE]
  inclusion.prob <- colMeans(beta != 0)
  index <- order(inclusion.prob)
  inclusion.prob <- inclusion.prob[index]
  # End from BoomSpikeSlab/bsts.
  return(data.frame(predictor = names(inclusion.prob),
                    inclusion.prob = inclusion.prob))
}

也可以通过传递CausalImpactimpact$model$bsts.model一起使用。