예제 #1
0
 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
예제 #2
0
    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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
    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)