Installation

Requirements

  • Python 3.11 or higher

  • JAX and JAXlib

  • NumPy and SciPy

  • Equinox (for functional architecture)

Basic Installation

Install the core package with minimal dependencies:

pip install bellman-filter-dfsv

This installs only the essential dependencies needed for core filtering functionality.

Optional Dependencies

For additional functionality, you can install optional dependency groups:

Data Analysis and Visualization Examples

pip install bellman-filter-dfsv[examples]

Includes: matplotlib, seaborn, pandas, yfinance (used in example scripts)

Development Tools

pip install bellman-filter-dfsv[dev]

Includes: pytest, pytest-cov, hypothesis, ruff, basedpyright

Documentation Tools

pip install bellman-filter-dfsv[docs]

Includes: sphinx, sphinx-rtd-theme

All Optional Dependencies

pip install bellman-filter-dfsv[all]

Development Installation

For development, clone the repository and install in editable mode:

git clone https://github.com/givani30/BellmanFilterDFSV.git
cd BellmanFilterDFSV
pip install -e .[dev,all]

Or using uv (recommended):

git clone https://github.com/givani30/BellmanFilterDFSV.git
cd BellmanFilterDFSV
uv sync
uv run pytest  # Run tests

Verification

Verify your installation by running:

import bellman_filter_dfsv
print(f"BellmanFilterDFSV version: {bellman_filter_dfsv.__version__}")

# Test core functionality
import jax.numpy as jnp
from bellman_filter_dfsv import DFSVParams, simulate_dfsv

params = DFSVParams(
    lambda_r=jnp.array([[0.8], [0.7]]),
    Phi_f=jnp.array([[0.7]]),
    Phi_h=jnp.array([[0.95]]),
    mu=jnp.array([-1.2]),
    sigma2=jnp.array([0.3, 0.25]),
    Q_h=jnp.array([[0.01]])
)
returns, factors, log_vols = simulate_dfsv(params, T=100)
print("✅ Installation successful!")

Troubleshooting

JAX Installation Issues

If you encounter JAX-related errors, ensure you have the correct JAX version (>=0.4.35):

pip install --upgrade jax jaxlib

Import Errors

If you get import errors, make sure you’ve installed the package correctly and are using a supported Python version (>=3.11):

pip install --upgrade bellman-filter-dfsv

GPU Support

The package uses CPU-only JAX by default for better compatibility. For GPU support, install JAX with CUDA:

pip install -U "jax[cuda12]"