def test_garch(self): T, resids, = self.T, self.resids sigma2, backcast = self.sigma2, self.backcast parameters = np.array([.1, .4, .3, .2]) fresids = resids**2.0 sresids = np.sign(resids) recpy.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, T, backcast, self.var_bounds) sigma2_numba = sigma2.copy() recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, T, backcast, self.var_bounds) sigma2_python = sigma2.copy() rec.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, T, backcast, self.var_bounds) assert_almost_equal(sigma2_numba, sigma2) assert_almost_equal(sigma2_python, sigma2)
def test_garch(self): T, resids, = self.T, self.resids sigma2, backcast = self.sigma2, self.backcast parameters = np.array([.1, .4, .3, .2]) fresids = resids ** 2.0 sresids = np.sign(resids) recpy.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, T, backcast, self.var_bounds) sigma2_numba = sigma2.copy() recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, T, backcast, self.var_bounds) sigma2_python = sigma2.copy() rec.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, T, backcast, self.var_bounds) assert_almost_equal(sigma2_numba, sigma2) assert_almost_equal(sigma2_python, sigma2)
def test_garch(self): nobs, resids, = self.nobs, self.resids sigma2, backcast = self.sigma2, self.backcast parameters = np.array([.1, .4, .3, .2]) fresids = resids**2.0 sresids = np.sign(resids) recpy.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) sigma2_numba = sigma2.copy() recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) sigma2_python = sigma2.copy() rec.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert_almost_equal(sigma2_numba, sigma2) assert_almost_equal(sigma2_python, sigma2) parameters = np.array([.1, -.4, .3, .2]) recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1]) parameters = np.array([.1, .4, 3, 2]) recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1]) parameters = np.array([.1, .4, .3, .2]) mod_fresids = fresids.copy() mod_fresids[:1] = np.inf recpy.garch_recursion_python(parameters, mod_fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1]) rec.garch_recursion(parameters, mod_fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1])
def test_garch(self): nobs, resids, = self.nobs, self.resids sigma2, backcast = self.sigma2, self.backcast parameters = np.array([.1, .4, .3, .2]) fresids = resids ** 2.0 sresids = np.sign(resids) recpy.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) sigma2_numba = sigma2.copy() recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) sigma2_python = sigma2.copy() rec.garch_recursion(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert_almost_equal(sigma2_numba, sigma2) assert_almost_equal(sigma2_python, sigma2) parameters = np.array([.1, -.4, .3, .2]) recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1]) parameters = np.array([.1, .4, 3, 2]) recpy.garch_recursion_python(parameters, fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1]) parameters = np.array([.1, .4, .3, .2]) mod_fresids = fresids.copy() mod_fresids[:1] = np.inf recpy.garch_recursion_python(parameters, mod_fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1]) rec.garch_recursion(parameters, mod_fresids, sresids, sigma2, 1, 1, 1, nobs, backcast, self.var_bounds) assert np.all(sigma2 >= self.var_bounds[:, 0]) assert np.all(sigma2 <= 2 * self.var_bounds[:, 1])
def test_garch_aparch_equiv(self): parameters = np.array([0.1, 0.1, 0.8]) fresids = self.resids**2 sresids = np.sign(self.resids) sigma2 = np.empty(1000) p = q = 1 o = 0 recpy.garch_recursion_python( parameters, fresids, sresids, sigma2, p, o, q, self.nobs, self.backcast, self.var_bounds, ) sigma2_garch = sigma2.copy() parameters = np.array([0.1, 0.1, 0.8, 2]) sigma2[:] = np.nan sigma2_delta = np.empty_like(sigma2) recpy.aparch_recursion_python( parameters, self.resids, np.abs(self.resids), sigma2, sigma2_delta, p, o, q, self.nobs, self.backcast, self.var_bounds, ) assert_allclose(sigma2_garch, sigma2, atol=1e-6) sigma2[:] = np.nan recpy.aparch_recursion( parameters, self.resids, np.abs(self.resids), sigma2, sigma2_delta, p, o, q, self.nobs, self.backcast, self.var_bounds, ) assert_allclose(sigma2_garch, sigma2, atol=1e-6) sigma2[:] = np.nan rec.aparch_recursion( parameters, self.resids, np.abs(self.resids), sigma2, sigma2_delta, p, o, q, self.nobs, self.backcast, self.var_bounds, ) assert_allclose(sigma2_garch, sigma2, atol=1e-6)