ropensci / dynamite

Bayesian Inference of Complex Panel Data
https://docs.ropensci.org/dynamite/
GNU General Public License v3.0
27 stars 1 forks source link

Use latent factors as further predictors? #75

Open nicholasjclark opened 8 months ago

nicholasjclark commented 8 months ago

Hi all, thanks again for a very nice and useful package. The adherence to ropensci policies make this such a nice goalpost for Bayesian modelling package development, so kudos! I just have a question, which is not really an issue I think: in my work we frequently make multiple observations of some unknown latent process. A simple example we are interested in is measurements of vegetation greenness in the landscape using multiple satellite sensors. We expect each sensor to have its own observation error, so we'd like to use those measurements to make inference about the latent factor. But we'd then also like to use the latent factor (i.e. the 'true' vegetation greenness) as a lagged predictor of other processes we are interested in, such as abundances of certain species. Do you foresee this being an option in dynamite, or perhaps is this already available? I hope I've made that clear, but please let me know if you seek any further clarity. All the best, Nick

helske commented 8 months ago

Hi Nick! Indeed, that would be a nice addition to dynamite and we have thought about implementing that type of "responses", so you could do something along the lines of obs(y ~ x + latent(z,type="factor")) + latent(z ~ 1).

Lack of time has caused us to postpone this, as in addition to actually coding it, I think some additional work is needed on the more theoretical side: Dynamic factor models in general suffer from identifiability issues and multimodality, and while various reparameterization tricks have been proposed, in my experience none of them are particularly robust in off-the-shelf manner especially in Bayesian setting. Our setting is bit simpler though, and I got some promising preliminary results before I switched my focus to other things. Nevertheless, I still have plans to work towards such feature in dynamite, but unfortunately I'm not sure how long it will take given all the other research etc. Essentially this depends on whether we would find someone to work on this with us. A reasonable applied problem as you describe is also a good motivator.