def test_HawkesKernelSumExp_pickle(self):
        """...Test pickling ability of HawkesKernelSumExp
        """
        obj = HawkesKernelSumExp(decays=np.arange(1., 2., 0.2),
                                 intensities=np.arange(0.3, 2.3, .4))

        pickled = pickle.loads(pickle.dumps(obj))

        self.assertTrue(str(obj) == str(pickled))
        self.assertTrue(np.array_equal(obj.decays, pickled.decays))
        self.assertTrue(np.array_equal(obj.intensities, pickled.intensities))
        np.testing.assert_array_equal(obj.get_values(self.random_times),
                                      obj.get_values(self.random_times))
Beispiel #2
0
class Test(unittest.TestCase):
    def setUp(self):
        self.decays = np.array([1., 2., 0.2])
        self.intensities = np.array([0.3, 4., 2.])
        self.hawkes_kernel_sumexp = HawkesKernelSumExp(self.intensities,
                                                       self.decays)

    def test_HawkesKernelSumExp_decays(self):
        """...Test HawkesKernelSumExp decays
        """
        np.testing.assert_array_equal(self.hawkes_kernel_sumexp.decays,
                                      self.decays)

    def test_HawkesKernelSumExp_intensities(self):
        """...Test HawkesKernelSumExp intensities
        """
        np.testing.assert_array_equal(self.hawkes_kernel_sumexp.intensities,
                                      self.intensities)

    def test_HawkesKernelSumExp_n_decays(self):
        """...Test HawkesKernelSumExp decay
        """
        self.assertEqual(self.hawkes_kernel_sumexp.n_decays, len(self.decays))

    def test_HawkesKernelSumExp_str(self):
        """...Test HawkesKernelSumExp string representation
        """
        self.assertEqual(
            str(self.hawkes_kernel_sumexp),
            "0.3 * 1 * exp(- 1 * t) + 4 * 2 * exp(- 2 * t) + "
            "2 * 0.2 * exp(- 0.2 * t)")

        self.assertEqual(
            str(self.hawkes_kernel_sumexp),
            "0.3 * 1 * exp(- 1 * t) + 4 * 2 * exp(- 2 * t) + "
            "2 * 0.2 * exp(- 0.2 * t)")

        self.decays[1] = 0
        self.intensities[2] = 0
        hawkes_kernel_sumexp = HawkesKernelSumExp(self.intensities,
                                                  self.decays)
        self.assertEqual(
            str(hawkes_kernel_sumexp), "0.3 * 1 * exp(- 1 * t) + 4 + 0")

    def test_HawkesKernelSumExp_repr(self):
        """...Test HawkesKernelSumExp string in list representation
        """
        self.assertEqual(
            str([self.hawkes_kernel_sumexp]),
            "[0.3*1*exp(-1*t) + 4*2*exp(-2*t) + "
            "2*0.2*exp(-0.2*t)]")

    def test_HawkesKernelSumExp_strtex(self):
        """...Test HawkesKernelSumExp latex string representation
        """
        self.assertEqual(self.hawkes_kernel_sumexp.__strtex__(),
                         "$0.3 e^{- t}$ + $8 e^{-2 t}$ + $0.4 e^{-0.2 t}$")
    def setUp(self):
        np.random.seed(28374)

        self.kernels = np.array([[HawkesKernel0(),
                                  HawkesKernelExp(0.1, 3)],
                                 [
                                     HawkesKernelPowerLaw(0.2, 4, 2),
                                     HawkesKernelSumExp([0.1, 0.4], [3, 4])
                                 ]])

        self.baseline = np.random.rand(2)
Beispiel #4
0
    def setUp(self):
        np.random.seed(28374)

        self.kernels = np.array([
            [HawkesKernel0(), HawkesKernelExp(0.1, 3)],
            [HawkesKernelPowerLaw(0.2, 4, 2),
             HawkesKernelSumExp([0.1, 0.4], [3, 4])]
        ])

        t_values = np.linspace(0, 10, 10)
        y_values = np.maximum(0.5 + np.sin(t_values), 0)
        self.time_func_kernel = HawkesKernelTimeFunc(t_values=t_values,
                                                     y_values=y_values)

        self.baseline = np.random.rand(2)
    def test_HawkesKernelSumExp_str(self):
        """...Test HawkesKernelSumExp string representation
        """
        self.assertEqual(str(self.hawkes_kernel_sumexp),
                         "0.3 * 1 * exp(- 1 * t) + 4 * 2 * exp(- 2 * t) + "
                         "2 * 0.2 * exp(- 0.2 * t)")

        self.assertEqual(str(self.hawkes_kernel_sumexp),
                         "0.3 * 1 * exp(- 1 * t) + 4 * 2 * exp(- 2 * t) + "
                         "2 * 0.2 * exp(- 0.2 * t)")

        self.decays[1] = 0
        self.intensities[2] = 0
        hawkes_kernel_sumexp = HawkesKernelSumExp(self.intensities,
                                                  self.decays)
        self.assertEqual(str(hawkes_kernel_sumexp),
                         "0.3 * 1 * exp(- 1 * t) + 4 + 0")
Beispiel #6
0
 def setUp(self):
     self.decays = np.array([1., 2., 0.2])
     self.intensities = np.array([0.3, 4., 2.])
     self.hawkes_kernel_sumexp = HawkesKernelSumExp(self.intensities,
                                                    self.decays)
Beispiel #7
0
"""
1 dimensional Hawkes process simulation
=======================================
"""

from tick.plot import plot_point_process
from tick.hawkes import SimuHawkes, HawkesKernelSumExp
import matplotlib.pyplot as plt

run_time = 40

hawkes = SimuHawkes(n_nodes=1, end_time=run_time, verbose=False, seed=1398)
kernel = HawkesKernelSumExp([.1, .4, .1, .3], [3., 3., 7., 31])
hawkes.set_kernel(0, 0, kernel)
hawkes.set_baseline(0, 1.)

dt = 0.01
hawkes.track_intensity(dt)
hawkes.simulate()
timestamps = hawkes.timestamps
intensity = hawkes.tracked_intensity
intensity_times = hawkes.intensity_tracked_times

_, ax = plt.subplots(1, figsize=(8, 4))
plot_point_process(hawkes, n_points=50000, t_min=2, max_jumps=10, ax=ax)
plt.show()
Beispiel #8
0
"""
1 dimensional Hawkes process simulation
=======================================
"""

from tick.plot import plot_point_process
from tick.hawkes import SimuHawkes, HawkesKernelSumExp
import matplotlib.pyplot as plt

run_time = 40

hawkes = SimuHawkes(n_nodes=1, end_time=run_time, verbose=False, seed=1398)
kernel = HawkesKernelSumExp([.1, .2, .1], [1., 3., 7.])
hawkes.set_kernel(0, 0, kernel)
hawkes.set_baseline(0, 1.)

dt = 0.01
hawkes.track_intensity(dt)
hawkes.simulate()
timestamps = hawkes.timestamps
intensity = hawkes.tracked_intensity
intensity_times = hawkes.intensity_tracked_times

_, ax = plt.subplots(1, 2, figsize=(16, 4))
plot_point_process(hawkes, n_points=50000, t_min=2, max_jumps=10, ax=ax[0])
plot_point_process(hawkes, n_points=50000, t_min=2, t_max=20, ax=ax[1])