--- library_name: flax tags: - jax - flax - orbax - mamba - malaria - simulation - time-series - regression pipeline_tag: time-series-forecasting --- # StateMINT StateMINT is a neural emulator for `malariasimulation` outputs. This model repository contains two exported inference artifacts: - `prevalence/`: predicts malaria prevalence over time. - `cases/`: predicts malaria cases over time. Both artifacts use the same `Mamba2Regressor` architecture but have separate weights and preprocessing metadata. Users should load the folder that matches the target they want to predict. ## Repository Layout ```text . ├── prevalence/ │ ├── checkpoint/ │ ├── model_config.json │ └── preprocessing_config.json ├── cases/ │ ├── checkpoint/ │ ├── model_config.json │ └── preprocessing_config.json └── README.md ``` Each target folder is self-contained: - `checkpoint/` contains model-only Orbax checkpoint data. - `model_config.json` contains the model architecture settings needed to instantiate `Mamba2Regressor`. - `preprocessing_config.json` contains feature ordering, intervention timing, target transform settings, and the fitted static covariate scaler. ## Intended Use These models are intended for emulating trajectories generated by `malariasimulation`-style simulation inputs. They are designed for research and analysis workflows where fast approximate prediction of simulated prevalence or cases is useful. They are not intended for direct clinical decision-making or for use on real-world surveillance data without additional validation. ## Installation Install StateMINT and the Hugging Face Hub client: ```bash pip install stateMINT huggingface-hub ``` If installing from source: ```bash git clone https://github.com/mrc-ide/stateMINT.git cd stateMINT pip install -e . ``` ## Loading A Model Recommended high-level API: ```python from stateMINT.model import Mamba2Regressor model = Mamba2Regressor.from_pretrained( "mrc-ide/stateMINT", predictor="prevalence", revision="v1.0.0", ) model.eval() ``` To load the cases model: ```python from stateMINT.model import Mamba2Regressor model = Mamba2Regressor.from_pretrained( "absternator/stateMINT", predictor="cases", revision="v1.0.0", ) model.eval() ``` If you need the preprocessing metadata as well: ```python artifact = Mamba2Regressor.from_pretrained( "absternator/stateMINT", predictor="prevalence", revision="v1.0.0", return_artifact=True, ) model = artifact.model preprocessing = artifact.preprocessing scaler = artifact.scaler ``` The model expects already-prepared arrays with shape: ```text (batch, time, input_size) ``` For the exported artifacts in this repository, `input_size` is `16`. ## Preprocessing Contract The model was trained on transformed inputs, not raw covariates. To reproduce training-time behavior, users must apply the same preprocessing described in `preprocessing_config.json`. The static covariates are expected in this order: ```text eir dn0_use dn0_future Q0 phi_bednets seasonal routine itn_use irs_use itn_future irs_future lsm ``` The following covariates are zeroed before the intervention day: ```text dn0_future itn_future irs_future lsm routine ``` The intervention day is: ```text 3285 ``` When `use_cyclical_time` is true, each timestep uses: ```text sin(day_of_year), cos(day_of_year), scaled_static_covariates, post_intervention_flag, years_since_intervention ``` The static covariates must be standardized using the fitted scaler stored in `preprocessing_config.json`: ```python scaled_static = (raw_static - scaler_mean) / scaler_scale ``` Do not refit the scaler for inference. The exported scaler is part of the trained model. ## Prediction Scale The model predicts in the transformed target space used during training. For prevalence: ```python prevalence = sigmoid(raw_prediction) ``` For cases: ```python cases = expm1(raw_prediction) ``` StateMINT utilities may perform this inverse transform for you depending on the prediction helper being used. ## General Notes - The `prevalence` and `cases` folders have separate checkpoints and separate fitted scalers. Always load the folder corresponding to the target being predicted. ## Citation If you use StateMINT in research, please cite the StateMINT repository and the underlying `malariasimulation` work used to generate the training data.