A known issue with current BirdFlow models is that they are Markovian and therefore if we generate year-long routes the bird does not return to the starting location after one year.
One solution we explored it to train loop models, which are graphical models extended to have one extra potential connecting the first and last time step. This worked but it would be a significant development effort to bring into BirdFlowR and using loop models would increase the cost of all route and predict calls.
It may be worth exploring a cheaper version of loop models where we don't train a model. Instead we could give the user the option to generate routes from a regular (Markovian) BirdFlow model but to condition on the event X_1 = X_T (or a soft version of this where X_1 is near X_T). This would be like adding a loop potential to the model at inference time without training it. To generate a route like this we could implement the same inference recurrences used in the loop models paper.
There are some things to investigate about this. One question is how adding this potential changes the sequence of marginals. If they drift too far from the S&T marginals, the model might no longer be a good representation of the whole population.
A known issue with current BirdFlow models is that they are Markovian and therefore if we generate year-long routes the bird does not return to the starting location after one year.
One solution we explored it to train loop models, which are graphical models extended to have one extra potential connecting the first and last time step. This worked but it would be a significant development effort to bring into BirdFlowR and using loop models would increase the cost of all route and predict calls.
It may be worth exploring a cheaper version of loop models where we don't train a model. Instead we could give the user the option to generate routes from a regular (Markovian) BirdFlow model but to condition on the event X_1 = X_T (or a soft version of this where X_1 is near X_T). This would be like adding a loop potential to the model at inference time without training it. To generate a route like this we could implement the same inference recurrences used in the loop models paper.
There are some things to investigate about this. One question is how adding this potential changes the sequence of marginals. If they drift too far from the S&T marginals, the model might no longer be a good representation of the whole population.