allow nonlinear model callables to be time-indexed
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1k
- Forks
- 114
- Avg merge
- 19h 14m
- Merged PRs (30d)
- 1
Description
The hmm_fillter code allows the user to pass in a transition_function that maps from time index t to a KxK transition matrix. We should add similar functionality to ekf_filter, which currently assumes the dynamics and emission functions are time-invariant (they depend only on the state and optionally the input).
As a unit test, you should reproduce the kf-linreg notebook, using a dynamics model of the form
f(z_{t-1}, u_t, t) = X_t * z_{t-1}
where X_t is the t'th feature vector (of size D), and z_t is the weight vector (of size D).
The input u_t is ignored. This is therefore a time-varying linear gaussian system.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with dynamax/nonlinear_gaussian_ssm/inference_ekf.py and compare its callable handling with dynamax/hidden_markov_model/inference.py. Then inspect the docs/notebooks/linear_gaussian_ssm/kf_linreg.ipynb notebook and reproduce its setup as the unit test, using the time-varying dynamics described in the issue. Done means EKF dynamics and emissions support the requested time index and the regression example is covered by a passing test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100