Algorithm  assumes that the parameters \(\mathbf {\theta }\)  are known.
Now we describe Bayesian inference for some of the static parameters.
We denote by \(\mathbf {\theta }_R\)  the set of parameters in the model for \(\lbrace R_t\rbrace \) , \(\mathbf {\theta }_s\)  the ones in the \(\lbrace \mathbf {s}_t\rbrace \)  process, and \(\mathbf {\theta }_y\)  the parameters appearing in the data model.
As mentioned, some of these parameters are fixed based on other data sources, and here for simplicity we do not propagate their uncertainty. For other parameters, sequential updates of their estimates are desirable.
In principle, all parameters \(\mathbf {\theta }\)  could be included as part of the state vector \(\mathbf {x}_t\)  where the propagation of these static components just keeps them fixed. However, repeated resampling will quickly give degenerate samples for these parameters.

A review of parameter estimation in SMC is given in [1]}. Off-line methods such as Particle MCMC  have proven to be very effective in many applications, but require repeated runs of the SMC routine. Although much smaller number of particles can be applied in such settings, some experiments with our models indicate that at least 250 particles are necessary, in which case one run uses about 10 minutes using 4 cores on Linux server and more cores did not help much in this case. Some experiments with an implementation of the Particle Metropolis-Hastings algorithm, based on the pseudo-marginal method by [2]}, is reported in supplementary section . We will however focus on online methods for parameter estimation here.
In cases where sufficient statistics \(\mathbf {v}_t(\mathbf {x}_{1:t})\)  for the parameters are available, the SMC algorithm can be easily updated to target \(p(\mathbf {x}_{1:t},\mathbf {v}_t(\mathbf {x}_{1:t})|\mathbf {y}_{1:t})\)  instead [3]}, [4]}. This is the case for the \(\mathbf {\theta }_R\)  parameters. Simulations of \(\mathbf {\theta }_R\)  at each time point can then be obtained from \(p(\mathbf {\theta }_R|\mathbf {v}_t(\mathbf {x}_{1:t}))\)  which then again can be used to obtain new samples of \(\mathbf {x}_{t+1}\)  (step 6 in Algorithm ). A crucial step is that \(\mathbf {v}_t(\mathbf {x}_{1:t})\)  can be recursively updated.
Section  in the supplementary material gives details on how \(\mathbf {\theta }_R\)  can be updated by this approach.
Note that these methods can suffer from the degeneracy problem [5]}. In supplementary section  we validate the parameter estimates obtained by this procedure both through comparisons between different runs and by using the samples obtained by the Particle Metropolis-Hastings algorithm.
