Beispiel #1
0
 def setUp(self):
     self.kf1 = kalmanFilter(discount=[1])
     self.kf0 = kalmanFilter(discount=[1e-10])
     self.kf11 = kalmanFilter(discount=[1, 1])
     self.trend0 = trend(degree=0, discount=1, w=1.0)
     self.trend0_90 = trend(degree=0, discount=0.9, w=1.0)
     self.trend0_98 = trend(degree=0, discount=0.98, w=1.0, name='a')
     self.trend1 = trend(degree=1, discount=1, w=1.0)
Beispiel #2
0
    def testPredictionNotChangeModel(self):
        timeSeries = [1, 2, 1, 5, 3, 5, 4, 8, 1, 2]

        dlm1 = dlm(timeSeries) + trend(degree=2, discount=0.95)
        dlm1.fitForwardFilter()
        (obs1, var1) = dlm1.predictN(N=1, date=dlm1.n - 1)

        dlm2 = dlm([]) + trend(degree=2, discount=0.95)
        for d in timeSeries:
            dlm2.append([d], component='main')
            dlm2.fitForwardFilter()
            (obs2, var2) = dlm2.predictN(N=1, date=dlm2.n - 1)

        self.assertAlmostEqual(obs1, obs2)
        self.assertAlmostEqual(var1, var2)
Beispiel #3
0
 def setUp(self):
     self.data = np.random.rand(10).tolist()
     self.features = np.random.rand(10, 2).tolist()
     self.trend = trend(degree=2, w=1.0)
     self.seasonality = seasonality(period=7, w=1.0)
     self.dynamic = dynamic(self.features, w=1.0)
     self.autoReg = autoReg(degree=3, w=1.0)
     self.builder1 = builder()
Beispiel #4
0
    def testAdd(self):
        trend2 = trend(2, name='trend2')
        self.dlm1 = self.dlm1 + trend2
        self.assertEqual(self.dlm1.builder.staticComponents['trend2'], trend2)

        dynamic2 = dynamic(features=self.features, name='d2')
        self.dlm1 = self.dlm1 + dynamic2
        self.assertEqual(self.dlm1.builder.dynamicComponents['d2'], dynamic2)

        ar3 = autoReg(degree=3, name='ar3')
        self.dlm1 = self.dlm1 + ar3
        self.assertEqual(self.dlm1.builder.automaticComponents['ar3'], ar3)
Beispiel #5
0
 def setUp(self):
     self.data = [0] * 9 + [1] + [0] * 10
     self.data5 = range(100)
     self.features = np.random.random((20, 2)).tolist()
     self.trend0 = trend(degree=0, discount=1.0, w=1.0)
     self.trend1 = trend(degree=0, discount=1.0)
     self.dlm1 = dlm(self.data)
     self.dlm2 = dlm(self.data)
     self.dlm3 = dlm([-1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1])
     self.dlm4 = dlm([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
     self.dlm5 = dlm(self.data5)
     self.dlm6 = dlm(self.data5)
     self.dlm1 + trend(degree=0, discount=1, w=1.0)
     self.dlm2 + trend(degree=0, discount=1e-12, w=1.0)
     self.dlm3 + seasonality(period=2, discount=1, w=1.0)
     self.dlm4 + dynamic(features=[[0]
                                   for i in range(5)] + [[1]
                                                         for i in range(5)],
                         discount=1,
                         w=1.0)
     self.dlm5 + trend(degree=0, discount=1, w=1.0) + \
         autoReg(degree=1, discount=1, w=1.0)
     self.dlm6 + trend(degree=0, discount=1, w=1.0) + \
         autoReg(degree=2, discount=1, w=1.0)
     self.dlm1.evolveMode('dependent')
     self.dlm2.evolveMode('dependent')
     self.dlm3.evolveMode('dependent')
     self.dlm4.evolveMode('dependent')
     self.dlm5.evolveMode('dependent')
     self.dlm6.evolveMode('dependent')
Beispiel #6
0
 def setUp(self):
     self.data = [0] * 9 + [1] + [0] * 10
     self.data5 = range(100)
     self.dlm1 = _dlm(self.data)
     self.dlm2 = _dlm(self.data)
     self.dlm3 = _dlm([-1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1])
     self.dlm4 = _dlm([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
     self.dlm5 = _dlm(self.data5)
     self.dlm6 = _dlm(self.data5)
     self.dlm7 = _dlm([0, 1, None, 1, 0, 1, -1])
     self.dlm1.builder + trend(degree=0, discount=1, w=1.0)
     self.dlm2.builder + trend(degree=0, discount=1e-12, w=1.0)
     self.dlm3.builder + seasonality(period=2, discount=1, w=1.0)
     self.dlm4.builder + dynamic(
         features=[[0] for i in range(5)] + [[1] for i in range(5)],
         discount=1,
         w=1.0)
     self.dlm5.builder + trend(degree=0, discount=1, w=1.0) + \
         autoReg(degree=1, discount=1, w=1.0)
     self.dlm6.builder + trend(degree=0, discount=0.9, w=1.0) + \
         seasonality(period=2, discount=0.8, w=1.0) + \
         autoReg(degree=3, discount=1.0)
     self.dlm7.builder + trend(degree=0, discount=1, w=1.0)
     self.dlm1._initialize()
     self.dlm2._initialize()
     self.dlm3._initialize()
     self.dlm4._initialize()
     self.dlm5._initialize()
     self.dlm6._initialize()
     self.dlm7._initialize()
     self.dlm1.options.innovationType = 'whole'
     self.dlm2.options.innovationType = 'whole'
     self.dlm3.options.innovationType = 'whole'
     self.dlm4.options.innovationType = 'whole'
     self.dlm5.options.innovationType = 'whole'
     self.dlm6.options.innovationType = 'whole'
     self.dlm7.options.innovationType = 'whole'
Beispiel #7
0
 def testDelete(self):
     trend2 = trend(2, name='trend2')
     self.dlm1 = self.dlm1 + trend2
     self.dlm1.delete('trend2')
     self.assertEqual(len(self.dlm1.builder.staticComponents), 1)