def test_simulate(self): noisefunc = lambda: [1, 1] # use deterministic function instead of noise num_samples = 100 b = np.array([[0.2, 0.1, 0.4, -0.1], [0.3, -0.2, 0.1, 0]]) var = VAR(2) var.coef = b x = var.simulate(num_samples, noisefunc) # make sure we got expected values within reasonable accuracy for n in range(10, num_samples): self.assertTrue( np.all( np.abs(x[n, :] - 1 - np.dot(b[:, 0::2], x[n - 1, :]) - np.dot(b[:, 1::2], x[n - 2, :])) < epsilon ) )
def generate_data(self): var = VAR(2) var.coef = np.array([[0.2, 0.1, 0.4, -0.1], [0.3, -0.2, 0.1, 0]]) l = (1000, 100) x = var.simulate(l) return x, var