Skip to content

Commit

Permalink
Merge 98ea129 into 497819e
Browse files Browse the repository at this point in the history
  • Loading branch information
bashtage committed Jun 11, 2019
2 parents 497819e + 98ea129 commit 0541529
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 3 deletions.
5 changes: 4 additions & 1 deletion arch/tests/univariate/test_mean.py
Expand Up @@ -14,6 +14,7 @@
from pandas.util.testing import assert_frame_equal, assert_series_equal
import pytest
from scipy import stats
from scipy.optimize import OptimizeResult
import statsmodels.regression.linear_model as smlm
import statsmodels.tools as smtools

Expand Down Expand Up @@ -439,7 +440,9 @@ def test_arch_arx(self):
y = x.sum(1) + 3 * self.rng.randn(500)

am = ARX(y=y, x=x)
am.fit(disp=DISPLAY).summary()
res = am.fit(disp=DISPLAY)
res.summary()
assert isinstance(res.optimization_result, OptimizeResult)
am.volatility = ARCH(p=2)
results = am.fit(update_freq=0, disp=DISPLAY)
assert isinstance(results.pvalues, pd.Series)
Expand Down
2 changes: 1 addition & 1 deletion arch/univariate/__init__.py
@@ -1,5 +1,6 @@
from __future__ import absolute_import

from arch.univariate import recursions_python
from arch.univariate.distribution import (Distribution, GeneralizedError,
Normal, SkewStudent, StudentsT)
from arch.univariate.mean import (ARX, HARX, LS, ConstantMean, ZeroMean,
Expand All @@ -9,7 +10,6 @@
FixedVariance, MIDASHyperbolic,
RiskMetrics2006)

from arch.univariate import recursions_python
try:
from arch.univariate import recursions
except ImportError:
Expand Down
14 changes: 14 additions & 0 deletions arch/univariate/base.py
Expand Up @@ -1355,6 +1355,8 @@ class ARCHModelResult(ARCHModelFixedResult):
Loglikelihood at estimated parameters
is_pandas : bool
Whether the original input was pandas
optim_output : OptimizeResult
Result of log-likelihood optimization
fit_start : int
Integer index of the first observation used to fit the model
fit_stop : int
Expand Down Expand Up @@ -1607,6 +1609,18 @@ def convergence_flag(self):
"""
return self._optim_output.status

@property
def optimization_result(self):
"""
Information about the covergence of theloglikelihood optimization
Returns
-------
optim_result : OptimizeResult
Result from numerical optimization of the log-likelihood.
"""
return self._optim_output


def _align_forecast(f, align):
if align == 'origin':
Expand Down
3 changes: 2 additions & 1 deletion arch/utility/array.py
Expand Up @@ -10,7 +10,8 @@
import datetime as dt

import numpy as np
from pandas import DataFrame, NaT, Series, Timestamp, to_datetime, DatetimeIndex
from pandas import (DataFrame, DatetimeIndex, NaT, Series, Timestamp,
to_datetime)

__all__ = ['ensure1d', 'parse_dataframe', 'DocStringInheritor',
'date_to_index', 'cutoff_to_index', 'ensure2d', 'AbstractDocStringInheritor']
Expand Down
2 changes: 2 additions & 0 deletions doc/source/changes/4.0.txt
@@ -1,5 +1,7 @@
Changes since 4.8.1
===================
- Added :func:`~arch.univariate.base.ARCHModelResult.optimization_result` to
simplify checking for convergence of the numerical optimizer (:issue:`292`).
- Added `random_state` argument to :func:`~arch.univariate.HARX.forecast`
to allow a :class:`~numpy.random.RandomState` object to be passed in when
forecasting when `method='bootstrap'`. This allows the repeatable forecast to
Expand Down

0 comments on commit 0541529

Please sign in to comment.