#981 asks for defaults with an expected model size and prior scaling that need no hand-tuning. The horseshoe default in causalpy/variable_selection_priors.py has this: with covariate values available it sets p0 = min(5, p / 2) expected nonzero coefficients and scales tau0 from the data (Piironen and Vehtari, 2017). The spike_and_slab default is Beta(2, 2) on the inclusion probability, which fixes the prior expected model size at p / 2 whatever p is, and no hyperparameter expresses "about M of these covariates matter", which is how the spike-and-slab in Brodersen et al. (2015) is parameterized.
Worth adding an expected_model_size hyperparameter that maps onto the Beta parameters, keeping the current default when unset? It would reach both InstrumentalVariableRegression and StateSpaceTimeSeries through the shared factory.
#981 asks for defaults with an expected model size and prior scaling that need no hand-tuning. The horseshoe default in
causalpy/variable_selection_priors.pyhas this: with covariate values available it setsp0 = min(5, p / 2)expected nonzero coefficients and scalestau0from the data (Piironen and Vehtari, 2017). The spike_and_slab default isBeta(2, 2)on the inclusion probability, which fixes the prior expected model size atp / 2whateverpis, and no hyperparameter expresses "about M of these covariates matter", which is how the spike-and-slab in Brodersen et al. (2015) is parameterized.Worth adding an
expected_model_sizehyperparameter that maps onto the Beta parameters, keeping the current default when unset? It would reach bothInstrumentalVariableRegressionandStateSpaceTimeSeriesthrough the shared factory.