from statsmodels.tsa.innovations import arma_innovations
from statsmodels.tsa.statespace.sarimax import SARIMAX
+from statsmodels.tsa.statespace.representation import warn_kalman
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
@pytest.mark.parametrize("ar_params,ma_params,sigma2", [
(np.array([]), np.array([]), 1),
(np.array([0.]), np.array([0.]), 1),
)
from .initialization import Initialization
from . import tools
+import platform
+import warnings
+import sys
+warn_kalman = "Representation/KalmanFilter (and hence much of tsa.statespace) can give wrong results on armhf (armv7) and hppa - https://bugs.debian.org/924036" if ((platform.uname()[4].startswith('arm') or platform.uname()[4].startswith('aarch') or platform.uname()[4].startswith('hppa')) and np.log2(sys.maxsize)<=32) else False # test results at end of https://buildd.debian.org/status/fetch.php?pkg=statsmodels&arch=armhf&ver=0.8.0-8&stamp=1551488279&raw=0 ; the use of log2 rather than 2**32 is to avoid overflow on Python 2
class OptionWrapper(object):
design=None, obs_intercept=None, obs_cov=None,
transition=None, state_intercept=None, selection=None,
state_cov=None, statespace_classes=None, **kwargs):
+ if warn_kalman:
+ warnings.warn(warn_kalman)
self.shapes = {}
# Check if k_endog is actually the endog array
from statsmodels.tsa.statespace import dynamic_factor
from .results import results_varmax, results_dynamic_factor
from statsmodels.iolib.summary import forg
+from statsmodels.tsa.statespace.representation import warn_kalman
+import pytest
current_path = os.path.dirname(os.path.abspath(__file__))
output_path = os.path.join('results', 'results_dynamic_factor_stata.csv')
output_results = pd.read_csv(os.path.join(current_path, output_path))
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class CheckDynamicFactor(object):
@classmethod
def setup_class(cls, true, k_factors, factor_order, cov_type='approx',
import numpy as np
import pandas as pd
import os
+from statsmodels.tsa.statespace.representation import warn_kalman
import pytest
from scipy.linalg.blas import find_best_blas_type
atol=1e-2
)
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class TestClark1987DoubleComplex(Clark1987):
"""
Basic double precision complex test for the loglikelihood and filtered
cls.model, cls.filter = cls.init_filter()
cls.result = cls.run_filter()
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class TestClark1987ForecastDoubleComplex(Clark1987Forecast):
"""
Basic double complex forecasting test for the loglikelihood and filtered
cls.model, cls.filter = cls.init_filter()
cls.result = cls.run_filter()
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class TestClark1989ForecastDoubleComplex(Clark1989Forecast):
"""
Basic double complex forecasting test for the loglikelihood and filtered
import os
import re
import warnings
+from statsmodels.tsa.statespace.representation import warn_kalman
import numpy as np
import pandas as pd
def test_from_formula():
assert_raises(NotImplementedError, lambda: MLEModel.from_formula(1, 2, 3))
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_score_analytic_ar1():
# Test the score against the analytic score for an AR(1) model with 2
# observations
mod.fit(res.params, disp=-1, cov_type='invalid_cov_type')
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_transform():
# The transforms in MLEModel are noops
mod = MLEModel([1, 2], **kwargs)
import numpy as np
import pandas as pd
from numpy.testing import assert_equal, assert_allclose
+from statsmodels.tsa.statespace.representation import warn_kalman
import pytest
from statsmodels.tsa.statespace import sarimax
return data_
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_pickle_fit_sarimax(data):
# Fit an ARIMA(1,1,0) to log GDP
mod = sarimax.SARIMAX(data['lgdp'], order=(1, 1, 0))
assert_allclose(res.impulse_responses(10), res.impulse_responses(10))
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_unobserved_components_pickle():
# Tests for missing data
nobs = 20
assert_allclose(res.impulse_responses(10), res.impulse_responses(10))
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_kalman_filter_pickle(data):
# Construct the statespace representation
true = results_kalman_filter.uc_uni
pkl_results.filtered_state[3][true['start']:])
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_representation_pickle():
nobs = 10
k_endog = 2
import os
import warnings
+from statsmodels.tsa.statespace.representation import warn_kalman
import numpy as np
import pandas as pd
import pytest
super(TestClark1987ForecastDouble, cls).setup_class()
cls.results = cls.run_filter()
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class TestClark1987ForecastDoubleComplex(Clark1987Forecast):
"""
Basic double complex forecasting test for the loglikelihood and filtered
super(TestClark1989ForecastDouble, cls).setup_class()
cls.results = cls.run_filter()
-
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class TestClark1989ForecastDoubleComplex(Clark1989Forecast):
"""
Basic double complex forecasting test for the loglikelihood and filtered
from statsmodels.compat.platform import PLATFORM_WIN
+from statsmodels.tsa.statespace.representation import warn_kalman
import numpy as np
import pandas as pd
import pytest
coverage_results = pd.read_csv(os.path.join(current_path, coverage_path))
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class TestSARIMAXStatsmodels(object):
"""
Test ARIMA model using SARIMAX class against statsmodels ARIMA class
)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class SARIMAXStataTests(object):
def test_loglike(self):
assert_almost_equal(
model.enforce_stationarity = stat
model.enforce_invertibility = inv
+ @pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_results(self):
self.result = self.model.filter(self.true_params)
tps = cls.true_params
cls.true_params[:2] = (1 - tps[2:5].sum()) * tps[:2]
+ @pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_results(self):
self.result = self.model.filter(self.true_params)
super(Test_seasonal_arma_diff_seasonal_diff, cls).setup_class(
47, *args, **kwargs)
+ @pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_results(self):
self.result = self.model.filter(self.true_params)
assert_almost_equal(res.maparams, [-0.5])
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_misc_exog():
# Tests for missing data
nobs = 20
import os
import tempfile
+from statsmodels.tsa.statespace.representation import warn_kalman
import pytest
from statsmodels import datasets
"{filename}.".format(filename=filename))
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_sarimax(temp_filename):
mod = sarimax.SARIMAX(macrodata['realgdp'].values, order=(4, 1, 0))
res = mod.smooth(mod.start_params)
assert_allclose(res.llf, res2.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_sarimax_pickle():
mod = sarimax.SARIMAX(macrodata['realgdp'].values, order=(4, 1, 0))
pkl_mod = pickle.loads(pickle.dumps(mod))
assert_allclose(res.llf, pkl_res.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_structural(temp_filename):
mod = structural.UnobservedComponents(
macrodata['realgdp'].values, 'llevel')
assert_allclose(res.llf, res2.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_structural_pickle():
mod = structural.UnobservedComponents(
macrodata['realgdp'].values, 'llevel')
assert_allclose(res.llf, pkl_res.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_dynamic_factor(temp_filename):
mod = dynamic_factor.DynamicFactor(
macrodata[['realgdp', 'realcons']].diff().iloc[1:].values, k_factors=1,
assert_allclose(res.llf, res2.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_dynamic_factor_pickle(temp_filename):
mod = varmax.VARMAX(
macrodata[['realgdp', 'realcons']].diff().iloc[1:].values,
assert_allclose(res.llf, res2.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_varmax(temp_filename):
mod = varmax.VARMAX(
macrodata[['realgdp', 'realcons']].diff().iloc[1:].values,
assert_allclose(res.llf, res2.llf)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_varmax_pickle(temp_filename):
mod = varmax.VARMAX(
macrodata[['realgdp', 'realcons']].diff().iloc[1:].values,
import numpy as np
from numpy.testing import assert_equal, assert_allclose, assert_raises
import pandas as pd
+from statsmodels.tsa.statespace.representation import warn_kalman
import pytest
from statsmodels.datasets import macrodata
run_ucm('local_linear_deterministic_trend', use_exact_diffuse=True)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_local_linear_trend(close_figures):
run_ucm('local_linear_trend')
run_ucm('local_linear_trend', use_exact_diffuse=True)
run_ucm('random_trend', use_exact_diffuse=True)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_cycle(close_figures):
run_ucm('cycle_approx_diffuse')
run_ucm('cycle', use_exact_diffuse=True)
run_ucm('reg', use_exact_diffuse=True)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_rtrend_ar1(close_figures):
run_ucm('rtrend_ar1')
run_ucm('rtrend_ar1', use_exact_diffuse=True)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
@pytest.mark.slow
def test_lltrend_cycle_seasonal_reg_ar1(close_figures):
run_ucm('lltrend_cycle_seasonal_reg_ar1_approx_diffuse')
assert_allclose(actual, desired)
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_misc_exog():
# Tests for missing data
nobs = 20
import numpy as np
from numpy.testing import assert_allclose
import pandas as pd
+from statsmodels.tsa.statespace.representation import warn_kalman
+import pytest
from statsmodels.tsa.statespace import varmax
from .results import results_var_R
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_c():
test = 'c'
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_ct():
test = 'ct'
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_ct_as_exog0():
test = 'ct_as_exog0'
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_ct_as_exog1():
test = 'ct'
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_ctt():
test = 'ctt_as_exog1'
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_ct_exog():
test = 'ct_exog'
# FEVD: TODO
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_var_c_2exog():
test = 'c_2exog'
from statsmodels.tsa.statespace import varmax, sarimax
from statsmodels.iolib.summary import forg
+from statsmodels.tsa.statespace.representation import warn_kalman
from .results import results_varmax
varmax_results = pd.read_csv(os.path.join(current_path, varmax_path))
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
class CheckVARMAX(object):
"""
Test Vector Autoregression against Stata's `dfactor` code (Stata's
warnings.resetwarnings()
+@pytest.mark.xfail(condition=bool(warn_kalman),reason='https://bugs.debian.org/924036',strict=False)
def test_misc_exog():
# Tests for missing data
nobs = 20