I have a process that is currently being effectively modelled by a Poisson Binomial distribution (wiki link). We have access to all of the constituent probability values of the independent trials; however, the number of trials can be large (500-1000+). There are also many processes modelled in this way, so imagine making any calculation based off of the above many times.

For each such process, is there an efficient way to construct a probability representing k+ successful events?

The linked wikipedia article goes into much discussion on "The probability of having k successful trials out of a total of n", but I take this to be the probability of getting "exactly k successful trials". For my case, I am interested in "k or more successes."

Is there a reasonable (ideally closed-form) efficient solution to this? Pardon also if I misunderstood the mass function section on the wiki as well. My maths background is not nearly as great as it could be, so it would be appreciated to help my understanding by breaking down any solution if possible.

  • $\begingroup$ Two algorithms to find the probability mass function are described at stats.stackexchange.com/questions/41247. Either use similar approaches or just accumulate the values of the PMF to obtain the distribution function. There isn't any shortcut when the individual probabilities are arbitrary. $\endgroup$
    – whuber
    Commented Dec 13, 2022 at 20:34

1 Answer 1


The probability of getting exactly $k$ success is described by the probability mass function (PMF) evaluated at $k$. The probability of $k$ or fewer success is described by the cumulative mass function (CMF), which is written on the linked page. So, the quantity you want is the complement of the CMF for one fewer than the number of interest. For example, if you want to know the probability of 4 or more successes, you would take $1 - CMF(3)$, which is 1 minus the probability of 3 or fewer successes.

The bottom of the linked page includes software for computing the CMF, including the {poibin} package in R.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.