reconnect moved files to git repo
This commit is contained in:
@ -0,0 +1,65 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Handle inconsistencies in the statsmodels API versions
|
||||
|
||||
from collections.abc import Iterable
|
||||
from packaging.version import Version
|
||||
import statsmodels as sm
|
||||
|
||||
__all__ = [
|
||||
'bind_df_model'
|
||||
]
|
||||
|
||||
_sm_version = sm.__version__
|
||||
|
||||
|
||||
def bind_df_model(model_fit, arima_results):
|
||||
"""Set model degrees of freedom.
|
||||
|
||||
Older versions of statsmodels don't handle this issue. Sets the
|
||||
model degrees of freedom in place if not already present.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
model_fit : ARMA, ARIMA or SARIMAX
|
||||
The fitted model.
|
||||
|
||||
arima_results : ModelResultsWrapper
|
||||
The results wrapper.
|
||||
"""
|
||||
if not hasattr(arima_results, 'df_model'):
|
||||
df_model = model_fit.k_exog + model_fit.k_trend + \
|
||||
model_fit.k_ar + model_fit.k_ma + \
|
||||
model_fit.k_seasonal_ar + model_fit.k_seasonal_ma
|
||||
setattr(arima_results, 'df_model', df_model)
|
||||
|
||||
|
||||
def check_seasonal_order(order):
|
||||
"""Check the seasonal order
|
||||
|
||||
Statsmodels 0.11.0 introduced a check for seasonal order == 1 that can
|
||||
raise a ValueError, but some of our old defaults allow for m == 1 in an
|
||||
otherwise null seasonal order.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
order : tuple
|
||||
The existing seasonal order
|
||||
"""
|
||||
|
||||
# If order[0] is an iterable, but not a string then we don't perform check.
|
||||
# Otherwise we perform the check and override order if it satisfies check.
|
||||
# See issue#370: https://github.com/alkaline-ml/pmdarima/issues/370
|
||||
if isinstance(order[0], Iterable) and not isinstance(order[0], str):
|
||||
return order
|
||||
else:
|
||||
if sum(order[:3]) == 0 and order[-1] == 1:
|
||||
order = (0, 0, 0, 0)
|
||||
|
||||
# user's order may be invalid, but we'll let statsmodels' validation
|
||||
# handle that.
|
||||
return order
|
||||
|
||||
|
||||
def _use_sm13():
|
||||
return Version(sm.__version__) >= Version("0.13.0")
|
||||
Reference in New Issue
Block a user