diff --git a/docs/statespace/filters.rst b/docs/statespace/filters.rst index 7186081b..3c30fa12 100644 --- a/docs/statespace/filters.rst +++ b/docs/statespace/filters.rst @@ -11,5 +11,4 @@ Kalman Filters SteadyStateFilter KalmanSmoother SingleTimeseriesFilter - CholeskyFilter LinearGaussianStateSpace diff --git a/pymc_extras/statespace/core/statespace.py b/pymc_extras/statespace/core/statespace.py index 84e54c93..d01b1c9a 100644 --- a/pymc_extras/statespace/core/statespace.py +++ b/pymc_extras/statespace/core/statespace.py @@ -18,7 +18,6 @@ from pymc_extras.statespace.core.representation import PytensorRepresentation from pymc_extras.statespace.filters import ( - CholeskyFilter, KalmanSmoother, StandardFilter, SteadyStateFilter, @@ -52,7 +51,6 @@ FILTER_FACTORY = { "standard": StandardFilter, "univariate": UnivariateFilter, - "cholesky": CholeskyFilter, "steady_state": SteadyStateFilter, } diff --git a/pymc_extras/statespace/filters/__init__.py b/pymc_extras/statespace/filters/__init__.py index 31e9393b..76ff830d 100644 --- a/pymc_extras/statespace/filters/__init__.py +++ b/pymc_extras/statespace/filters/__init__.py @@ -1,6 +1,5 @@ from pymc_extras.statespace.filters.distributions import LinearGaussianStateSpace from pymc_extras.statespace.filters.kalman_filter import ( - CholeskyFilter, SingleTimeseriesFilter, StandardFilter, SteadyStateFilter, @@ -14,6 +13,5 @@ "SteadyStateFilter", "KalmanSmoother", "SingleTimeseriesFilter", - "CholeskyFilter", "LinearGaussianStateSpace", ] diff --git a/tests/statespace/test_kalman_filter.py b/tests/statespace/test_kalman_filter.py index e56a2d8f..173e4edd 100644 --- a/tests/statespace/test_kalman_filter.py +++ b/tests/statespace/test_kalman_filter.py @@ -6,7 +6,6 @@ from numpy.testing import assert_allclose, assert_array_less from pymc_extras.statespace.filters import ( - CholeskyFilter, KalmanSmoother, SingleTimeseriesFilter, StandardFilter, @@ -33,18 +32,17 @@ RTOL = 1e-6 if floatX.endswith("64") else 1e-3 standard_inout = initialize_filter(StandardFilter()) -cholesky_inout = initialize_filter(CholeskyFilter()) +# cholesky_inout = initialize_filter(CholeskyFilter()) univariate_inout = initialize_filter(UnivariateFilter()) f_standard = pytensor.function(*standard_inout, on_unused_input="ignore") -f_cholesky = pytensor.function(*cholesky_inout, on_unused_input="ignore") +# f_cholesky = pytensor.function(*cholesky_inout, on_unused_input="ignore") f_univariate = pytensor.function(*univariate_inout, on_unused_input="ignore") -filter_funcs = [f_standard, f_cholesky, f_univariate] +filter_funcs = [f_standard, f_univariate] filter_names = [ "StandardFilter", - "CholeskyFilter", "UnivariateFilter", ] @@ -233,8 +231,8 @@ def test_last_smoother_is_last_filtered(filter_func, output_idx, rng): @pytest.mark.skipif(floatX == "float32", reason="Tests are too sensitive for float32") def test_filters_match_statsmodel_output(filter_func, filter_name, n_missing, rng): fit_sm_mod, [data, a0, P0, c, d, T, Z, R, H, Q] = nile_test_test_helper(rng, n_missing) - if filter_name == "CholeskyFilter": - P0 = np.linalg.cholesky(P0) + # if filter_name == "CholeskyFilter": + # P0 = np.linalg.cholesky(P0) inputs = [data, a0, P0, c, d, T, Z, R, H, Q] outputs = filter_func(*inputs) @@ -282,8 +280,8 @@ def test_all_covariance_matrices_are_PSD(filter_func, filter_name, n_missing, ob pytest.skip("Univariate filter not stable at half precision without measurement error") fit_sm_mod, [data, a0, P0, c, d, T, Z, R, H, Q] = nile_test_test_helper(rng, n_missing) - if filter_name == "CholeskyFilter": - P0 = np.linalg.cholesky(P0) + # if filter_name == "CholeskyFilter": + # P0 = np.linalg.cholesky(P0) H *= int(obs_noise) inputs = [data, a0, P0, c, d, T, Z, R, H, Q] @@ -305,8 +303,8 @@ def test_all_covariance_matrices_are_PSD(filter_func, filter_name, n_missing, ob @pytest.mark.parametrize( "filter", - [StandardFilter, CholeskyFilter], - ids=["standard", "cholesky"], + [StandardFilter], + ids=["standard"], ) def test_kalman_filter_jax(filter): pytest.importorskip("jax")