time-seriespackagebayesiancausality

Select prior probability of inclusion in CausalImpact or bsts?


In the CausalImpact package, the supplied covariates are independently selected with some prior probability M/J where M is the expected model size and J is the number of covariates. However, on page 11 of the paper, they say get the values by "asking about the expected model size M." I checked the documentation for CausalImpact but was unable to find any more information. Where is this done in the package? Is there a parameter I can set in a function call to decide why my desired M?


Solution

  • You are right, this is not directly possible with CausalImpact, but it is possible. CausalImpact uses bsts behind the scenes and this package allows to set the parameter. So you have to define you model using bsts first, set the parameter and then provide it to your CausalImpact call like this (modified example from the CausalImpact manual):

    post.period <- c(71, 100)
    post.period.response <- y[post.period[1] : post.period[2]]
    y[post.period[1] : post.period[2]] <- NA
    
    ss <- AddLocalLevel(list(), y)
    bsts.model <- bsts(y ~ x1, ss, niter = 1000, expected.model.size = 4)
    
    impact <- CausalImpact(bsts.model = bsts.model,
                           post.period.response = post.period.response)