Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _post_ppc_arima(a):
"""If there are no suitable models, raise a ValueError.
Otherwise, return ``a``. In the case that ``a`` is an iterable
(i.e., it made it to the end of the function), this method will
filter out the None values and assess whether the list is empty.
Parameters
----------
a : ARIMA or iterable
The list or ARIMAs, or an ARIMA
"""
# if it's a result of making it to the end, it will
# be a list of ARIMA models. Filter out the Nones
# (the failed models)...
if is_iterable(a):
a = [m for m in a if m is not None]
# if the list is empty, or if it was an ARIMA and it's None
if not a: # check for truthiness rather than None explicitly
raise ValueError('Could not successfully fit ARIMA to input data. '
'It is likely your data is non-stationary. Please '
'induce stationarity or try a different '
'range of model order params. If your data is '
'seasonal, check the period (m) of the data.')
# good to return
return a
def _post_ppc_arima(a):
"""If there are no suitable models, raise a ValueError.
Otherwise, return ``a``. In the case that ``a`` is an iterable
(i.e., it made it to the end of the function), this method will
filter out the None values and assess whether the list is empty.
Parameters
----------
a : ARIMA or iterable
The list or ARIMAs, or an ARIMA
"""
# if it's a result of making it to the end, it will
# be a list of ARIMA models. Filter out the Nones
# (the failed models)...
if is_iterable(a):
a = [m for m in a if m is not None]
# if the list is empty, or if it was an ARIMA and it's None
if not a: # check for truthiness rather than None explicitly
raise ValueError('Could not successfully fit ARIMA to input data. '
'It is likely your data is non-stationary. Please '
'induce stationarity or try a different '
'range of model order params. If your data is '
'seasonal, check the period (m) of the data.')
# good to return
return a
the model. If this is called from the end of the function, ``fits``
will already be a list.
We *know* that if a function call makes it here, ``fits`` is NOT None
or it would have thrown an exception in :func:`_post_ppc_arima`.
Parameters
----------
fits : iterable or ARIMA
The ARIMA(s)
return_all : bool
Whether to return all.
"""
# make sure it's an iterable
if not is_iterable(fits):
fits = [fits]
# whether to print the final runtime
if trace:
print('Total fit time: %.3f seconds' % (time.time() - start))
# which to return? if not all, then first index (assume sorted)
if not return_all:
return fits[0]
return fits
the model. If this is called from the end of the function, ``fits``
will already be a list.
We *know* that if a function call makes it here, ``fits`` is NOT None
or it would have thrown an exception in :func:`_post_ppc_arima`.
Parameters
----------
fits : iterable or ARIMA
The ARIMA(s)
return_all : bool
Whether to return all.
"""
# make sure it's an iterable
if not is_iterable(fits):
fits = [fits]
# whether to print the final runtime
if trace:
print('Total fit time: %.3f seconds' % (time.time() - start))
# which to return? if not all, then first index (assume sorted)
if not return_all:
return fits[0]
return fits
**kwargs : keyword args
Any keyword args that should be passed as ``**fit_kwargs`` in the
new model fit.
Notes
-----
* Internally, this calls ``fit`` again using the OLD model parameters
as the starting parameters for the new model's MLE computation.
"""
get_compatible_check_is_fitted(self, 'arima_res_')
model_res = self.arima_res_
# Allow updating with a scalar if the user is just adding a single
# sample.
if not is_iterable(y):
y = [y]
# validate the new samples to add
y = check_endog(y, dtype=DTYPE)
n_samples = y.shape[0]
# if exogenous is None and new exog provided, or vice versa, raise
exogenous = self._check_exog(exogenous) # type: np.ndarray
# ensure the k_exog matches
if exogenous is not None:
k_exog = model_res.model.k_exog
n_exog, exog_dim = exogenous.shape
if exogenous.shape[1] != k_exog:
raise ValueError("Dim mismatch in fit exogenous (%i) and new "