2015-01-12 6 views
1

시간적으로 도착할 때 데이터의 확률 밀도를 추정하는 통계 방법은 무엇입니까?데이터 스트림의 밀도 추정

다 변수 데이터 세트의 pdf를 추정해야합니다. 그러나 새로운 데이터는 시간이 지남에 따라 도착하고 데이터가 도착하면 밀도 추정이 업데이트되어야합니다.

내가 지금까지 사용해 왔던 것은 데이터의 버퍼를 저장하고 새로운 데이터의 모든 업데이트로 새로운 커널 밀도 추정을 계산함으로써 커널 추정치입니다. 그러나 더 이상 저장할 필요가있는 데이터의 양을 따라갈 수 없습니다. 따라서 개별 데이터가 아니라 전체 PDF/밀도 추정을 추적하는 방법이 필요합니다. 어떤 제안이라도 도움이 될 것입니다. 파이썬으로 작업하지만, 알고리즘의 제안이 도움이 될 것입니다.

답변

2

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) 

, 당신은 result로 KDE의 결과를 저장할 수 있으며, 때마다 당신은 방금 새로운 가우스을 계산하고 결과에 추가 할 수있는 새 점을 얻는다. 필요한 경우 데이터를 삭제할 수 있으며 KDE 만 저장합니다.