数据流的密度估计

时间:2015-01-12 06:47:28

标签: kernel-density probability-density

哪些统计方法会估计数据在时间到达时的概率密度?

我需要估算多变量数据集的pdf;但是,新数据会随着时间的推移而到达,当数据到达时,密度估算必须更新。

到目前为止,我一直在使用的是通过存储数据缓冲区并在每次更新新数据时计算新的核密度估计来进行内核估计。但是,我无法再跟上需要存储的数据量。因此,我需要一种方法来跟踪整体pdf /密度估计而不是单个数据。任何建议都会非常有用。我在Python工作,但由于这是冗长的,任何算法建议也会有所帮助。

1 个答案:

答案 0 :(得分:3)

Scipy's implementation of KDE包括按每个数据而不是每个点递增KDE的功能。这嵌套在“如果比数据更多的点”循环中,但您可能会根据需要重新设置它。

if m >= self.n:
    # there are more points than data, so loop over data
    for i in range(self.n):
        diff = self.dataset[:, i, newaxis] - points
        tdiff = dot(self.inv_cov, diff)
        energy = sum(diff*tdiff,axis=0) / 2.0
        result = result + exp(-energy)

在这种情况下,您可以将kde的结果存储为result,每次获得新点时,您都​​可以计算新的高斯并将其添加到结果中。可以根据需要删除数据,只存储KDE。