Skip to content

Commit

Permalink
Merge pull request #5781 from jbrockmendel/stests
Browse files Browse the repository at this point in the history
CLN: Replace #5779
  • Loading branch information
ChadFulton committed May 25, 2019
2 parents 22aaef4 + 388d1d4 commit 17ac842
Show file tree
Hide file tree
Showing 12 changed files with 918 additions and 598 deletions.
5 changes: 1 addition & 4 deletions lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,7 @@ if [ "$LINT" == true ]; then
statsmodels/tsa/regime_switching/ \
statsmodels/tsa/vector_ar/dynamic.py \
statsmodels/tsa/vector_ar/tests/results/ \
statsmodels/tsa/statespace/*.py \
statsmodels/tsa/statespace/tests/results/ \
statsmodels/tsa/statespace/tests/test_var.py \
statsmodels/tsa/statespace/tests/test_varmax.py \
statsmodels/tsa/statespace/ \
statsmodels/tsa/tests/results/ \
statsmodels/conftest.py \
statsmodels/tools/sm_exceptions.py \
Expand Down
78 changes: 47 additions & 31 deletions statsmodels/tsa/statespace/tests/test_collapsed.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ def setup_class(cls, dtype=float, alternate_timing=False, **kwargs):

# Update matrices with test parameters
cls.model['design'] = np.array([[0.5, 0.2],
[0, 0.8],
[1, -0.5]])
[0, 0.8],
[1, -0.5]])
cls.model['transition'] = np.array([[0.4, 0.5],
[1, 0]])
[1, 0]])
cls.model['obs_cov'] = np.diag([0.2, 1.1, 0.5])
cls.model['state_cov'] = np.diag([2., 1])

Expand All @@ -82,20 +82,20 @@ def test_using_collapsed(self):

def test_forecasts(self):
assert_allclose(
self.results_a.forecasts[0,:],
self.results_b.forecasts[0,:],
self.results_a.forecasts[0, :],
self.results_b.forecasts[0, :],
)

def test_forecasts_error(self):
assert_allclose(
self.results_a.forecasts_error[0,:],
self.results_b.forecasts_error[0,:]
self.results_a.forecasts_error[0, :],
self.results_b.forecasts_error[0, :]
)

def test_forecasts_error_cov(self):
assert_allclose(
self.results_a.forecasts_error_cov[0,0,:],
self.results_b.forecasts_error_cov[0,0,:]
self.results_a.forecasts_error_cov[0, 0, :],
self.results_b.forecasts_error_cov[0, 0, :]
)

def test_filtered_state(self):
Expand Down Expand Up @@ -226,7 +226,8 @@ def setup_class(cls, dtype=float, **kwargs):
class TestTrivariateConventionalAlternate(TestTrivariateConventional):
@classmethod
def setup_class(cls, *args, **kwargs):
super(TestTrivariateConventionalAlternate, cls).setup_class(alternate_timing=True, *args, **kwargs)
super(TestTrivariateConventionalAlternate, cls).setup_class(
alternate_timing=True, *args, **kwargs)

def test_using_alterate(self):
assert(self.model._kalman_filter.filter_timing == 1)
Expand All @@ -235,7 +236,8 @@ def test_using_alterate(self):
class TestTrivariateConventionalPartialMissing(Trivariate):
@classmethod
def setup_class(cls, dtype=float, **kwargs):
super(TestTrivariateConventionalPartialMissing, cls).setup_class(dtype, **kwargs)
super(TestTrivariateConventionalPartialMissing, cls).setup_class(
dtype, **kwargs)
n_disturbance_variates = (
(cls.model.k_endog + cls.model.k_posdef) * cls.model.nobs
)
Expand All @@ -261,10 +263,12 @@ def setup_class(cls, dtype=float, **kwargs):
)


class TestTrivariateConventionalPartialMissingAlternate(TestTrivariateConventionalPartialMissing):
class TestTrivariateConventionalPartialMissingAlternate(
TestTrivariateConventionalPartialMissing):
@classmethod
def setup_class(cls, *args, **kwargs):
super(TestTrivariateConventionalPartialMissingAlternate, cls).setup_class(alternate_timing=True, *args, **kwargs)
super(TestTrivariateConventionalPartialMissingAlternate,
cls).setup_class(alternate_timing=True, *args, **kwargs)

def test_using_alterate(self):
assert(self.model._kalman_filter.filter_timing == 1)
Expand All @@ -273,7 +277,8 @@ def test_using_alterate(self):
class TestTrivariateConventionalAllMissing(Trivariate):
@classmethod
def setup_class(cls, dtype=float, **kwargs):
super(TestTrivariateConventionalAllMissing, cls).setup_class(dtype, **kwargs)
super(TestTrivariateConventionalAllMissing, cls).setup_class(
dtype, **kwargs)
n_disturbance_variates = (
(cls.model.k_endog + cls.model.k_posdef) * cls.model.nobs
)
Expand All @@ -299,10 +304,12 @@ def setup_class(cls, dtype=float, **kwargs):
)


class TestTrivariateConventionalAllMissingAlternate(TestTrivariateConventionalAllMissing):
class TestTrivariateConventionalAllMissingAlternate(
TestTrivariateConventionalAllMissing):
@classmethod
def setup_class(cls, *args, **kwargs):
super(TestTrivariateConventionalAllMissingAlternate, cls).setup_class(alternate_timing=True, *args, **kwargs)
super(TestTrivariateConventionalAllMissingAlternate, cls).setup_class(
alternate_timing=True, *args, **kwargs)

def test_using_alterate(self):
assert(self.model._kalman_filter.filter_timing == 1)
Expand Down Expand Up @@ -337,7 +344,8 @@ def setup_class(cls, dtype=float, **kwargs):
class TestTrivariateUnivariateAlternate(TestTrivariateUnivariate):
@classmethod
def setup_class(cls, *args, **kwargs):
super(TestTrivariateUnivariateAlternate, cls).setup_class(alternate_timing=True, *args, **kwargs)
super(TestTrivariateUnivariateAlternate, cls).setup_class(
alternate_timing=True, *args, **kwargs)

def test_using_alterate(self):
assert(self.model._kalman_filter.filter_timing == 1)
Expand All @@ -346,7 +354,8 @@ def test_using_alterate(self):
class TestTrivariateUnivariatePartialMissing(Trivariate):
@classmethod
def setup_class(cls, dtype=float, **kwargs):
super(TestTrivariateUnivariatePartialMissing, cls).setup_class(dtype, **kwargs)
super(TestTrivariateUnivariatePartialMissing, cls).setup_class(
dtype, **kwargs)
n_disturbance_variates = (
(cls.model.k_endog + cls.model.k_posdef) * cls.model.nobs
)
Expand All @@ -372,10 +381,12 @@ def setup_class(cls, dtype=float, **kwargs):
)


class TestTrivariateUnivariatePartialMissingAlternate(TestTrivariateUnivariatePartialMissing):
class TestTrivariateUnivariatePartialMissingAlternate(
TestTrivariateUnivariatePartialMissing):
@classmethod
def setup_class(cls, *args, **kwargs):
super(TestTrivariateUnivariatePartialMissingAlternate, cls).setup_class(alternate_timing=True, *args, **kwargs)
super(TestTrivariateUnivariatePartialMissingAlternate,
cls).setup_class(alternate_timing=True, *args, **kwargs)

def test_using_alterate(self):
assert(self.model._kalman_filter.filter_timing == 1)
Expand All @@ -384,7 +395,8 @@ def test_using_alterate(self):
class TestTrivariateUnivariateAllMissing(Trivariate):
@classmethod
def setup_class(cls, dtype=float, **kwargs):
super(TestTrivariateUnivariateAllMissing, cls).setup_class(dtype, **kwargs)
super(TestTrivariateUnivariateAllMissing, cls).setup_class(
dtype, **kwargs)
n_disturbance_variates = (
(cls.model.k_endog + cls.model.k_posdef) * cls.model.nobs
)
Expand All @@ -410,10 +422,12 @@ def setup_class(cls, dtype=float, **kwargs):
)


class TestTrivariateUnivariateAllMissingAlternate(TestTrivariateUnivariateAllMissing):
class TestTrivariateUnivariateAllMissingAlternate(
TestTrivariateUnivariateAllMissing):
@classmethod
def setup_class(cls, *args, **kwargs):
super(TestTrivariateUnivariateAllMissingAlternate, cls).setup_class(alternate_timing=True, *args, **kwargs)
super(TestTrivariateUnivariateAllMissingAlternate, cls).setup_class(
alternate_timing=True, *args, **kwargs)

def test_using_alterate(self):
assert(self.model._kalman_filter.filter_timing == 1)
Expand Down Expand Up @@ -453,8 +467,10 @@ def collapse(cls, obs, **kwargs):
def setup_class(cls, which='mixed', *args, **kwargs):
# Data
dta = datasets.macrodata.load_pandas().data
dta.index = pd.date_range(start='1959-01-01', end='2009-7-01', freq='QS')
obs = np.log(dta[['realgdp','realcons','realinv']]).diff().iloc[1:] * 400
dta.index = pd.date_range(start='1959-01-01',
end='2009-7-01', freq='QS')
levels = dta[['realgdp', 'realcons', 'realinv']]
obs = np.log(levels).diff().iloc[1:] * 400

if which == 'all':
obs.iloc[:50, :] = np.nan
Expand Down Expand Up @@ -526,20 +542,20 @@ def test_using_collapsed(self):

def test_forecasts(self):
assert_allclose(
self.results_a.forecasts[0,:],
self.results_b.forecasts[0,:],
self.results_a.forecasts[0, :],
self.results_b.forecasts[0, :],
)

def test_forecasts_error(self):
assert_allclose(
self.results_a.forecasts_error[0,:],
self.results_b.forecasts_error[0,:]
self.results_a.forecasts_error[0, :],
self.results_b.forecasts_error[0, :]
)

def test_forecasts_error_cov(self):
assert_allclose(
self.results_a.forecasts_error_cov[0,0,:],
self.results_b.forecasts_error_cov[0,0,:]
self.results_a.forecasts_error_cov[0, 0, :],
self.results_b.forecasts_error_cov[0, 0, :]
)

def test_filtered_state(self):
Expand Down
3 changes: 1 addition & 2 deletions statsmodels/tsa/statespace/tests/test_concentrated.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ def test_concentrated_predict_sarimax():
nobs = 30
np.random.seed(28953)
endog = np.random.normal(size=nobs)
kwargs = {}

# Typical model
out = get_sarimax_models(endog)
Expand Down Expand Up @@ -164,7 +163,7 @@ def check_concentrated_scale(filter_univariate=False, missing=False, **kwargs):
dta['dln_inc'] = np.log(dta['inc']).diff()
dta['dln_consump'] = np.log(dta['consump']).diff()

endog = dta.loc['1960-04-01':'1978-10-01',['dln_inv', 'dln_inc']]
endog = dta.loc['1960-04-01':'1978-10-01', ['dln_inv', 'dln_inc']]

# Optionally add some missing observations
if missing:
Expand Down

0 comments on commit 17ac842

Please sign in to comment.