summary.bsts {bsts}R Documentation

Summarize a Bayesian structural time series object


Print a summary of a bsts object.


  ## S3 method for class 'bsts'
summary(object, burn = SuggestBurn(.1, object), ...)



An object of class bsts created by the function of the same name.


The number of MCMC iterations to discard as burn-in.


Additional arguments passed to summary.lm.spike if object has a regression component.


Returns a list with the following elements.

The posterior mean of the residual standard deviation parameter.

The standard deviation of the one-step-ahead prediction errors for the training data.


Proportion by which the residual variance is less than the variance of the original observations.


Harvey's goodness of fit statistic. Let nu denote the one step ahead prediction errors, n denote the length of the series, and y denote the original series. The goodness of fit statistic is

1 - sum(nu^2) / (n-2) * var(diff(y)).

This statistic is analogous to rsquare in a regression model, but the reduction in sum of squared errors is relative to a random walk with a constant drift,

y[t+1] = y[t] + beta + epsilon[t],

which Harvey (1989, equation 5.5.14) argues is a more relevant baseline than a simple mean. Unlike a traditional R-square statistic, this can be negative.


Distribution of the number of nonzero coefficients appearing in the model


If object contains a regression component then the output contains matrix with rows corresponding to coefficients, and columns corresponding to:

  • The posterior probability the variable is included.

  • The posterior probability that the variable is positive.

  • The conditional expectation of the coefficient, given inclusion.

  • The conditional standard deviation of the coefficient, given inclusion.


Harvey's goodness of fit statistic is from Harvey (1989) Forecasting, structural time series models, and the Kalman filter. Page 268.

See Also

bsts, plot.bsts, summary.lm.spike


  y <- log(AirPassengers)
  ss <- AddLocalLinearTrend(list(), y)
  ss <- AddSeasonal(ss, y, nseasons = 12)
  model <- bsts(y, state.specification = ss, niter = 100)
  summary(model, burn  = 20)

[Package bsts version 0.9.6 Index]