Simplify the distribution of the sum of multiple logistic responses

I wonder if there is a name for distribution of k as the sum of n logistic outcomes, i.e.

k=\Sigma_i k_i,\quad k_i=0, 1\\ p(k_i=1) = \frac{1}{1+\exp(-(x-b_i))}

assume b_i's are known. If b_i's are the same k would be binomial, but I don’t know any named distribution when they are different. Another way to see this is the collapse of a multivariate logistic regression’s responses.

The context is to make inference of subject ability x given an IRT model’s item difficulties b_i's and total scores k.

Sounds like a Poisson binomial to me for the outcome, but idk about there being a name for one that specifically has the logit link for the individual probabilities. By naming convention it would be like a “logit Poisson binomial”? edit: though that seems like it would refer not to a probability distribution, per se, but to a parameterization of a Poisson binomial – you’d otherwise need something like “logit-blah Poisson binomial”, where blah is a distribution, eg a normal (if your bᵢ and x are normally distributed).

2 Likes

I agree with @NikVetr that this is the Poisson Binomial distribution. I like the name “logit Poisson binomial”, but like @NikVetr hinted at, where the probabilities come from doesn’t really matter for whether this is called the Poisson binomial (in the same way that the regular binomial distribution is called the binomial regardless of whether the probabilities come from the logistic function, a normal CDF, or anything else that yields a probability).

1 Like

Thanks!

I do want to exploit the underneath dist being logit or probit, beyond the fact that each trial is not identical, and seek a way to simplify it. No luck so far.

I posted the dynamic programming algorithm for the Poisson binomial here:

There might be some mileage for dropping in that theta has a log odds structure. We have a log_inv_logit function and log1m_inv_logit built in.

If people really use this, we could code it as a built-in for Stan.

1 Like

It looks like we already have the poisson_binomial in the Math library, it just needs to be exposed: math/stan/math/prim/prob/poisson_binomial_lpmf.hpp at develop · stan-dev/math · GitHub

1 Like

Nice. I created an issue:

1 Like