def gen_two_X(self): ''' Given the info supplied in variable `order`, generate two separate X data arrays for the two separate regimes. Careful: no constants are being added here yet. ''' k_upper = self.k_upper k_lower = self.k_lower max_upper = self.lag_upper max_lower = self.lag_lower max_both = self.lag_both max_lag = self.max_lag XX = self._X upper_clag = k_upper[0] X_upper = add_lag(XX[:,0],lags=upper_clag)[(max_lag-upper_clag):,1:] lower_clag = k_lower[0] X_lower = add_lag(XX[:,0],lags=lower_clag)[(max_lag-lower_clag):,1:] for i1,lago in enumerate(k_upper[1:]): if lago > upper_clag: upper_clag = lago X_upper = np.hstack((X_upper, add_lag(XX[(max_lag-upper_clag):,i1+1],lags=upper_clag)[:,1:])) upper_clag = lago for i1,lago in enumerate(k_lower[1:]): if lago > lower_clag: lower_clag = lago X_lower = np.hstack((X_lower, add_lag(XX[(max_lag-lower_clag):,i1+1],lags=lower_clag)[:,1:])) self.X_upper = X_upper self.X_lower = X_lower
def test_add_lag1d_drop(self): data = self.random_data lagmat = stattools.lagmat(data, 3, trim="Both") lag_data = tools.add_lag(data, lags=3, drop=True, insert=True) assert_equal(lagmat, lag_data) # no insert, should be the same lag_data = tools.add_lag(data, lags=3, drop=True, insert=False) assert_equal(lagmat, lag_data)
def test_add_lag_noinsertatend_ndarray(self): data = self.macro_df.values nddata = data.astype(float) lagmat = stattools.lagmat(nddata[:, -1], 3, trim="Both") results = np.column_stack((nddata[3:, :], lagmat)) lag_data = tools.add_lag(nddata, 3, 3, insert=False) assert_equal(lag_data, results) # should be the same as insert also check negative col number lag_data2 = tools.add_lag(nddata, -1, 3, insert=True) assert_equal(lag_data2, results)
def test_add_lag_noinsert_atend(self): data = self.macro_df.values nddata = data.astype(float) lagmat = stattools.lagmat(nddata[:, -1], 3, trim="Both") results = np.column_stack((nddata[3:, :], lagmat)) lag_data = tools.add_lag(data, self.cpi_loc, 3, insert=False) assert_equal(lag_data, results) # should be the same as insert lag_data2 = tools.add_lag(data, self.cpi_loc, 3, insert=True) assert_equal(lag_data2, results)
def test_add_lag1d(self): data = self.random_data lagmat = stattools.lagmat(data, 3, trim="Both") results = np.column_stack((data[3:], lagmat)) lag_data = tools.add_lag(data, lags=3, insert=True) assert_equal(results, lag_data) # add index data = data[:, None] lagmat = stattools.lagmat(data, 3, trim="Both") # test for lagmat too results = np.column_stack((data[3:], lagmat)) lag_data = tools.add_lag(data, lags=3, insert=True) assert_equal(results, lag_data)
def test_add_lag1d_struct(self): data = np.zeros(100, dtype=[("variable", float)]) nddata = self.random_data data["variable"] = nddata lagmat = stattools.lagmat(nddata, 3, trim="Both", original="in") lag_data = tools.add_lag(data, 0, lags=3, insert=True) assert_equal(lagmat, lag_data) lag_data = tools.add_lag(data, 0, lags=3, insert=False) assert_equal(lagmat, lag_data) lag_data = tools.add_lag(data, lags=3, insert=True) assert_equal(lagmat, lag_data)
def test_add_lag_drop_insert(self): data = self.macro_df.values nddata = data.astype(float) lagmat = stattools.lagmat(nddata[:, 2], 3, trim="Both") results = np.column_stack((nddata[3:, :2], lagmat, nddata[3:, -1])) lag_data = tools.add_lag(data, self.realgdp_loc, 3, drop=True) assert_equal(lag_data, results)
def test_add_lag_noinsert_ndarray(self): data = self.macro_df.values nddata = data.astype(float) lagmat = stattools.lagmat(nddata[:, 2], 3, trim="Both") results = np.column_stack((nddata[3:, :], lagmat)) lag_data = tools.add_lag(nddata, 2, 3, insert=False) assert_equal(lag_data, results)
def test_add_lag_1d_drop_struct(self): data = np.zeros(100, dtype=[("variable", float)]) nddata = self.random_data data["variable"] = nddata lagmat = stattools.lagmat(nddata, 3, trim="Both") lag_data = tools.add_lag(data, lags=3, drop=True) assert_equal(lagmat, lag_data)