def test_3d_error(self): data = np.array(2) with pytest.raises(ValueError): stattools.lagmat2ds(data, 5) data = np.zeros((100, 2, 2)) with pytest.raises(ValueError): stattools.lagmat2ds(data, 5)
def test_lagmat2ds_pandas(self): data = self.macro_df lagmat = stattools.lagmat2ds(data, 2) expected = self._prepare_expected(data.values, 2) assert_array_equal(lagmat, expected) lagmat = stattools.lagmat2ds(data.iloc[:, :2], 3, trim="both") expected = self._prepare_expected(data.values[:, :2], 3) expected = expected[3:] assert_array_equal(lagmat, expected) data = self.series lagmat = stattools.lagmat2ds(data, 5) expected = self._prepare_expected(data.values[:, None], 5) assert_array_equal(lagmat, expected)
def test_lagmat2ds_numpy(self): data = self.macro_df npdata = data.values lagmat = stattools.lagmat2ds(npdata, 2) expected = self._prepare_expected(npdata, 2) assert_array_equal(lagmat, expected) lagmat = stattools.lagmat2ds(npdata[:, :2], 3) expected = self._prepare_expected(npdata[:, :2], 3) assert_array_equal(lagmat, expected) npdata = self.series.values lagmat = stattools.lagmat2ds(npdata, 5) expected = self._prepare_expected(npdata[:, None], 5) assert_array_equal(lagmat, expected)
def get_lagged_data(x, lag, addconst, verbose): x = np.asarray(x) # print x.shape[0] # print x.shape if x.shape[0] <= 3 * lag + int(addconst): raise ValueError("Insufficient observations. Maximum allowable " "lag is {0}".format(int((x.shape[0] - int(addconst)) / 3) - 1)) if verbose: print('\nGranger Causality') print('number of lags (no zero)', lag) # create lagmat of both time series dta = lagmat2ds(x, lag, trim='both', dropex=1) #add constant if addconst: dtaown = add_constant(dta[:, 1:(lag + 1)], prepend=False, has_constant = 'add') dtajoint = add_constant(dta[:, 1:], prepend=False, has_constant = 'add') else: dtaown = dta[:, 1:(lag+1)] dtajoint = dta[:, 1:] return dta, dtaown, dtajoint
def test_lagmat2ds_use_pandas(self): data = self.macro_df lagmat = stattools.lagmat2ds(data, 2, use_pandas=True) expected = self._prepare_expected(data.values, 2) cols = [] for c in data: for lags in range(3): if lags == 0: cols.append(c) else: cols.append(c + ".L." + str(lags)) expected = pd.DataFrame(expected, index=data.index, columns=cols) assert_frame_equal(lagmat, expected) lagmat = stattools.lagmat2ds(data.iloc[:, :2], 3, use_pandas=True, trim="both") expected = self._prepare_expected(data.values[:, :2], 3) cols = [] for c in data.iloc[:, :2]: for lags in range(4): if lags == 0: cols.append(c) else: cols.append(c + ".L." + str(lags)) expected = pd.DataFrame(expected, index=data.index, columns=cols) expected = expected.iloc[3:] assert_frame_equal(lagmat, expected) data = self.series lagmat = stattools.lagmat2ds(data, 5, use_pandas=True) expected = self._prepare_expected(data.values[:, None], 5) cols = [] c = data.name for lags in range(6): if lags == 0: cols.append(c) else: cols.append(c + ".L." + str(lags)) expected = pd.DataFrame(expected, index=data.index, columns=cols) assert_frame_equal(lagmat, expected)