Это было решено для не взаимоисключающих событий , из которых Бруно Мелло сделал короткую работу, но с тех пор я понял, что задал неправильный вопрос, так как моя математика была неправильной: события являются взаимоисключающими и независимыми.
Существуют различные события, которые могут иметь место в течение последовательных периодов. Может произойти только один тип события. Я пытаюсь показать вероятность того, что событие произойдет, по крайней мере, один раз за n периодов, если не происходит никакого другого события. Обратите внимание, что события определяются через несколько столбцов, не показанных в этом примере. Это df у меня сейчас, который будет n = 1:
event | period | probability
A | period 1 | 0.10
A | period 2 | 0.11
A | period 3 | 0.12
A | period 4 | 0.13
A | period 5 | 0.14
... rows of other events ...
no_event | period 1 | 0.85
no_event | period 2 | 0.83
no_event | period 3 | 0.81
no_event | period 4 | 0.79
no_event | period 5 | 0.75
df = DataFrame({'event': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'no_event', 'no_event', 'no_event', 'no_event', 'no_event'],
'period': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
'probability': [.1, .11, .12, .13, .14, .05, .06, .07, .08, .11, .85, .83, .81, .79, .75]})
И я думаю (моя математика может быть неправильной) n = 2 будет:
Pr (заданное событие в 1-м периоде) + Pr (отсутствие события в 1-м периоде) * Pr (заданное событие в 1-м периоде)
event | period | probability
A | period 1 | 0.10 + 0.85*0.11 , or P(A1) + no_event1 * P(A2)
A | period 2 | 0.11 + 0.83*0.12
A | period 3 | 0.12 + 0.81*0.13
A | period 4 | 0.13 + 0.79*0.14
... rows of other events ...
И n = 3:
event | period | probability
A | period 1 | 0.10 + 0.85*0.11 + 0.85*0.83*0.12
A | period 2 | 0.11 + 0.83*0.12 + 0.83*0.81*0.13
A | period 3 | 0.12 + 0.81*0.13 + 0.81*0.79*0.13
... rows of other events ...
Возможно ли это в Pandas / Python?