假设你想预测船下次到来的概率。你从船周期的任意位置开始进行观测。当你进行观测时,你只能记录船是否可见(假设如果是周期中的正确点,船总是可见的)。在这个世界中,船的周期长度也是未知的,但具有周期性,船的停留时间未知但总是小于周期长度。还假设周期是一个固定的自然现象,可能不会改变。
情况1. 第一小时的观测中你没有看到船。因此,预测下一小时有船的概率是任意的。第二小时我们观察到船,我们预测第三小时的概率很高。第四小时我们观察到没有船,我们现在可以确定船通常可见的时间是2小时(第二和第三小时)。我们继续进行观测,在第七小时船再次可见。只有在这一点上我们才知道周期长度(5小时)和船可见的持续时间(2小时)。
情况2. 第一小时的观测中你看到了船。预测下一小时的概率很高。第四小时你观察到没有船。此时船的可见性至少为3小时。我们在第五、六、七、八小时再次观察到船,第九小时没有船。只有在第九小时之后我们才能安全地说周期是5小时,可见性是4小时。
情况3. 第一小时你看到了船。你睡了3小时。第五小时你没有看到船。你又睡了3小时。第九小时你看到了船。第十、十一、十二小时看到船的概率是多少?
我可以使用什么算法来解决这个问题?我在考虑使用隐马尔可夫模型,因为存在一个潜在的现象,但它不是直接可见的。但在这种情况下,这个现象并不是完全已知的。在我的特定情况下,我可以用平均周期长度来初始化算法。创建这个算法的真正动机是观测是稀少的。这个程序在训练阶段最有价值,因为如果周期长度和我们在周期中的位置是已知的,事情就变得简单了。
以下是给定0,1,2和3个连续观测的可能输出(X表示看到船的观测,O表示没有船),使用平均历史周期长度8小时,船的持续时间2小时。仔细观察图表,你会注意到在船可能返回的地方有一定的概率增加分布。
回答:
我不是这种建模的专家,但我建议你保持竞争理论。
情况1:
第1小时:没有船。所以“关闭”阶段的长度至少为1,“关闭”阶段的长度可以是任何值。我们可以将其写为[1+, 0+]。周期的长度是(1+) + (0+) = 1+。
第2小时:有船。现在模型是[1+, 1+],这不预测第3小时,但我们看到船的频率和没有看到的一样,所以我们计算出概率为1/2。周期的长度是2+。
第3小时:没有观测。理论分裂。如果没有船,我们会有[1+, 1](并预测1/3);如果有船,我们会有[1+, 2+](并预测2/3)。所以我们的模型是{[1+,1],[1+,2+]},我们预测1/2。
第4小时:没有船。我们修改理论:{[2+,1], [1+,2]},并预测3/8。
第5小时:没有观测。模型再次分叉:
[2+,1] -> [3+,1], [2,1]
[1+,2] -> [2+,2], [1,2]
注意,这两个理论声称是完整的(但对第6小时的预测相反)。预测是2/5或40%。
第6小时:没有观测。不完整的理论再次分叉:
[3+,1] -> [4+,1], [3,1]
[2,1]
[2+,2] -> [3+,2], [2,2]
[1,2]
预测是1/4。
第7小时:有船。这摧毁了三个理论,证实了一个,完成了一个,并导致一个分裂:
[4+,1] -> [4,1][3,1]
[2,1]
[3+,2] -> [3,2]
[2,2][1,2]
周期是5小时,可见性是1或2小时。第8小时的预测是1/3。
情况2:
第1小时:有船。[0+,1+]
第2小时:没有观测。[1+,1+], [0+,2+]。预测3/4。
第3小时:没有观测。[2+,1+], [1,1+], [1+,2+], [0+,3+]。概率2/3。
第4小时:没有船。[3+,1+], [1,1], [2+,2+], [1+,3+]。概率5/8。
第5小时:有船。[3,1+], [1,1], [2,2+], [1,3+]。概率3/5。
第6小时:有船。[3,2+], [2,2+], [1,3+]。概率2/3。
第7小时:有船。[3,3+], [2,3+], [1,3+]。概率5/7。
第8小时:有船。[3,4+], [2,4+], [1,4+]。概率3/4。
第9小时:没有船。[3,4], [2,4], [1,4]。概率1/3。可见性是4小时,但周期未知。
我不会详细分析情况3,但你应该明白了。