pymc를 사용하여 시계열에서 변경 지점을 찾으려고합니다. 내가 바라는 가치는 "변환"가능성이 매우 낮아서 평균 0.009이고 범위는 0.001-0.016입니다.작은 확률에 대한 pymc python 변화 지점 탐지. ZeroProbability Error
나는 2 개의 확률에 0과 최대 관측 사이의 사전 확률 분포를 제공한다. 이 코드를 실행하면
alpha = df.cnvrs.max() # Set upper uniform
center_1_c = pm.Uniform("center_1_c", 0, alpha)
center_2_c = pm.Uniform("center_2_c", 0, alpha)
day_c = pm.DiscreteUniform("day_c", lower=1, upper=n_days)
@pm.deterministic
def lambda_(day_c=day_c, center_1_c=center_1_c, center_2_c=center_2_c):
out = np.zeros(n_days)
out[:day_c] = center_1_c
out[day_c:] = center_2_c
return out
observation = pm.Uniform("obs", lambda_, value=df.cnvrs.values, observed=True)
내가 얻을 :
ZeroProbability을 : 확률 OBS의 가치는 그것의 지원 외부 또는 그것의 부모의 현재 값을 금지한다.
나는 분명히 pymc에 익숙하지 않기 때문에 확실하지 않은 것이 있는지 확실하지 않습니다. 내 추측으로는 작은 확률을 모델링하기위한 적절한 분포가 없을 수도 있습니다.
관찰 된 값의 한계로 균일 분포의 한계를 설정할 때 관측치가 분포 외부에있는 것은 확실하지 않습니다. – dstancan