Esempio n. 1
0
    def test_log_likelihood(self):
        model = GARCHModel(0.2, 0.3, 0.4, sc=self.sc)
        n = 10000

        ts = np.array(model.sample(n))
        logLikelihoodWithRightModel = model.log_likelihood(ts)

        logLikelihoodWithWrongModel1 = GARCHModel(
            0.3, 0.4, 0.5, sc=self.sc).log_likelihood(ts)
        logLikelihoodWithWrongModel2 = GARCHModel(
            0.25, 0.35, 0.45, sc=self.sc).log_likelihood(ts)
        logLikelihoodWithWrongModel3 = GARCHModel(
            0.1, 0.2, 0.3, sc=self.sc).log_likelihood(ts)

        self.assertTrue(
            logLikelihoodWithRightModel > logLikelihoodWithWrongModel1)
        self.assertTrue(
            logLikelihoodWithRightModel > logLikelihoodWithWrongModel2)
        self.assertTrue(
            logLikelihoodWithRightModel > logLikelihoodWithWrongModel3)
        self.assertTrue(
            logLikelihoodWithWrongModel2 > logLikelihoodWithWrongModel1)
Esempio n. 2
0
    def test_gradient(self):
        alpha = 0.3
        beta = 0.4
        omega = 0.2
        genModel = GARCHModel(omega, alpha, beta, sc=self.sc)
        n = 10000

        ts = np.array(genModel.sample(n))

        gradient1 = GARCHModel(omega + 0.1,
                               alpha + 0.05,
                               beta + 0.1,
                               sc=self.sc).gradient(ts)
        for g in gradient1:
            self.assertTrue(g < 0.0)

        gradient2 = GARCHModel(omega - 0.1,
                               alpha - 0.05,
                               beta - 0.1,
                               sc=self.sc).gradient(ts)
        for g in gradient2:
            self.assertTrue(g > 0.0)