Esempio n. 1
0
    def test_likelihood_kalman(self):
        ma_model = PureARMA(theta=[0.5])
        ma_data = [0, 1]
        ma_ts = ARMA(ma_data, subtract_mean=False)

        likelihood = (2 * np.pi) ** -1 * np.exp(-0.5)

        self.assertAlmostEqual(ma_ts.get_likelihood(model=ma_model, method="kalman"), likelihood)
Esempio n. 2
0
    def test_likelihood_inno(self):
        ma_model = PureARMA(theta=[-0.9], sigma_sq=1)
        ma_data = [-2.58, 1.62, -0.96, 2.62, -1.36]
        ma = ARMA(ma_data, subtract_mean=False)

        model_arma11 = PureARMA([0.2], [0.4], sigma_sq=1)
        zeros = np.zeros(6)
        non_zeros = [0, 0, 0, 0, 0, 1]
        zero_ts = ARMA(zeros)
        non_zero_ts = ARMA(non_zeros, subtract_mean=False)

        likelihood_zeros = (2 * np.pi) ** -3 * (1.375 * 1.0436 * 1.0067 * 1.0011 * 1.0002) ** -0.5
        likelihood_non_zeros = likelihood_zeros * np.exp(-0.5 * (1 / 1.0002))

        # self.assertAlmostEqual(ma.get_likelihood(ma_model), 0.0035943790355147075, 4)
        self.assertAlmostEqual(zero_ts.get_likelihood(model_arma11, method="innovations_algo"), likelihood_zeros)
        self.assertAlmostEqual(
            non_zero_ts.get_likelihood(model_arma11, method="innovations_algo"), likelihood_non_zeros, 6
        )