在这篇笔记中,将继续分享tutorial的第五部分内容,即如何估计Hawkes Process的参数。Tutorial最后的建模应用部分留到下一篇笔记。
通常在使用Hawkes Process进行建模时的一个挑战是,需要从观测数据中估计参数,确定基础强度以及包含在记忆核函数
中的参数值。我们可以使用最大化观测数据的似然函数来进行估计。在这个部分,我们将首先推导Hawkes Process的似然函数,然后讨论一些使用似然函数进行估计的实际问题。
1 Hawkes Process的似然函数
假设是一个在
上的点过程,
,用
表示一系列事件发生的时间。那么作为参数集合
的似然是:
这个公式的推导如下:
令为给定历史事件的条件下在下一个时间
发生下一个事件的条件概率密度函数。因此我们有:
由指数分布的概率密度函数和累积分布函数可得:
由于,可得:
将 之前的最后一个已知事件时间表示为
,对
的两边进行积分,我们得到
注意因为,所以
(已知在
发生了一件事情,在同样的时间点再发生一件事的概率为0,即
的情况下,几乎不可能再发生另一个事件了)
因此,上式可以转化为
对这个式子进行变换则可以得到:
将这个导出的式子代入之前的似然函数中可以得到:
2 最大似然估计
我们可以通过最大化似然函数来估计Hawkes Process的一系列参数。更为具体的说,若存在一组参数,使得
,那么
就是我们要求的极大似然估计值。其中,最大值对应的点一般是驻点,满足方程
,因此我们需要最大化的似然函数转换为:
至此,我们就可以使用python或R语言中对应的优化package对似然函数进行求解。
接下来,我们将简要说一下求解似然函数中可能会遇到的问题
- 局部最大值:由于对数似然可能具有非凸性质,执行最大似然估计将导致估计是局部最大值而不是全局最大值。一个常用的解决方法是尝试多组初始值进行最大似然估计,但这不能从根本上解决问题。或者,可以将不同的优化方法与几组不同的初始值结合使用。 如果不同的优化能够算出同样一组一致的校准参数,那么我们可以更确定校准点是实际的全局最大值。
- 边缘效应:在之前的讲解中,我们一直是假定事件是以cluster的方式出现的,即先出现immigrant再出现后代。但在实际应用中,可能immigrant在我们的观测事件之前就已经发生了,但是我们没有办法获知准确的时间。因此这种未知的事件可能会影响我们在观测期的估计。解决这个问题的一个可能途径是假设强度的初始值等于基础强度并忽略观察期之前发生的事件时间的边缘效应。 这通常是 Hawkes 文献中大多数应用程序中的建模设置。 也有论文指出,如果使用的数据集足够大,则估计模型的边缘效应可以忽略不计。
- 计算瓶颈:Hawkes最大似然估计的一个主要问题是评估对数似然的计算成本,特别是强度函数的计算。例如在上述似然函数的计算中,会出现对函数值进行累加后,再次进行累加,复杂度通常在
,
为事件发生的数量。因此当
很大的时候,对于参数的估计会很慢。
最后还有最重要但最难的一部分,基于实际数据进行Hawkes Process的建模以及参数估计!>_<