From c3bd39d79ad9839aab3c79baa52eabba30afbccb Mon Sep 17 00:00:00 2001 From: Josef Perktold Date: Tue, 22 Sep 2020 13:08:56 -0400 Subject: [PATCH] ENH: add Results wrapper --- statsmodels/miscmodels/ordinal_model.py | 14 +++++++++++++- statsmodels/miscmodels/tests/test_ordinal_model.py | 4 ++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/statsmodels/miscmodels/ordinal_model.py b/statsmodels/miscmodels/ordinal_model.py index 611cd270011..c4347d71c44 100644 --- a/statsmodels/miscmodels/ordinal_model.py +++ b/statsmodels/miscmodels/ordinal_model.py @@ -15,6 +15,9 @@ from statsmodels.base.model import ( GenericLikelihoodModel, GenericLikelihoodModelResults) from statsmodels.compat.pandas import Appender +# for results wrapper: +import statsmodels.regression.linear_model as lm +import statsmodels.base.wrapper as wrap class OrderedModel(GenericLikelihoodModel): @@ -371,7 +374,9 @@ def fit(self, start_params=None, method='nm', maxiter=500, full_output=1, # TODO: temporary, needs better fix, modelwc adds 1 by default ordmlefit.hasconst = 0 - return ordmlefit + result = OrderedResultsWrapper(ordmlefit) + + return result class OrderedResults(GenericLikelihoodModelResults): @@ -423,3 +428,10 @@ def llr_pvalue(self): """ # number of restrictions is number of exog return stats.distributions.chi2.sf(self.llr, self.model.k_vars) + + +class OrderedResultsWrapper(lm.RegressionResultsWrapper): + pass + + +wrap.populate_wrapper(OrderedResultsWrapper, OrderedResults) diff --git a/statsmodels/miscmodels/tests/test_ordinal_model.py b/statsmodels/miscmodels/tests/test_ordinal_model.py index dc227a4a4cc..9a79478cdac 100644 --- a/statsmodels/miscmodels/tests/test_ordinal_model.py +++ b/statsmodels/miscmodels/tests/test_ordinal_model.py @@ -122,6 +122,10 @@ def test_results_other(self): n, k = res1.model.exog.shape assert_equal(self.resf.df_resid, n - (k + 2)) + # check wrapper + assert resp.params.index.tolist() == resp.model.exog_names + assert resp.bse.index.tolist() == resp.model.exog_names + class TestLogitModel(CheckOrdinalModelMixin):