Skip to content

Commit

Permalink
BUG: Fix 1d exog in ARMA. Closes #248.
Browse files Browse the repository at this point in the history
  • Loading branch information
jseabold committed Jul 13, 2012
1 parent 5f789d4 commit aad3611
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
3 changes: 3 additions & 0 deletions statsmodels/tsa/arima_model.py
Expand Up @@ -219,6 +219,7 @@ class ARMA(tsbase.TimeSeriesModel):

def __init__(self, endog, order=None, exog=None, dates=None, freq=None):
super(ARMA, self).__init__(endog, exog, dates, freq)
exog = self._data.exog # get it after it's gone through processing
if order is None:
import warnings
warnings.warn("In the next release order will not be optional "
Expand All @@ -228,6 +229,8 @@ def __init__(self, endog, order=None, exog=None, dates=None, freq=None):
self.k_ma = k_ma = order[1]
self.k_lags = k_lags = max(k_ar,k_ma+1)
if exog is not None:
if exog.ndim == 1:
exog = exog[:,None]
k_exog = exog.shape[1] # number of exog. variables excl. const
else:
k_exog = 0
Expand Down
7 changes: 7 additions & 0 deletions statsmodels/tsa/tests/test_arima.py
Expand Up @@ -1583,6 +1583,13 @@ def test_arima_wrapper():
'ma.L1.D.cpi'])
assert_equal(res.model.endog_names, 'D.cpi')

def test_1dexog():
# smoke test, this will raise an error if broken
from statsmodels.datasets.macrodata import load_pandas
dta = load_pandas().data
endog = dta['realcons'].values
exog = dta['m1'].values.squeeze()
mod = ARMA(endog, (1,1), exog).fit(disp=-1)

if __name__ == "__main__":
import nose
Expand Down

0 comments on commit aad3611

Please sign in to comment.