# Given an outcome distribution, how to predict summed outcome of N trials

If I have a game that has a know distribution of outcomes, for example,

• 5% of the time the outcome is 0
• 10% of the time the outcome is 1
• 15% of the time the outcome is 5
• 8% of the time the outcome is 10
• 62% of the time the outcome is -1

The expected value of the game is 1.03.

I am trying to figure out, given N trials (say 500), what % of the time will the result be above or below a given value.

For example, what % of 500 game trials will the result be negative?

My background is computer science, not statistics. I could easily write a simulator to figure this out, but I am trying to learn other methods, and this seems like something that would be easy to do with excel.

Here are three reasonably doable approaches:

• you could do numerical convolution, e.g. via fast Fourier transform

• With a large sample size like 500 you could use a normal approximation

• you could do simulation (as you mention)

Here's a quick simulation, done in R:

x=c(0,1,5,10,-1)
p=c(.05,.1,.15,.08,.62)
rsum=replicate(10000,sum(sample(x,500,replace=TRUE,p)))


(increasing that to 100000 simulations still only takes about 3 seconds to run on my laptop)

Now look at a normal Q-Q plot of the outcomes. If the outcome is close to normal with mean $$1.03\times 500$$ and standard deviation $$3.377736\times \sqrt{500}$$ (i.e. the population mean and standard deviation), this should look close to straight and sit around the red line (which marks the normal approximation):

That's about what it should look like if the outcome were actually normal. It looks like the normal approximation will be quite adequate for this case, except in cases where you require high accuracy many standard deviations from the mean.

[For example, while you could correctly discern that negative outcomes will be astronomically unlikely, the actual value for the probability you'd get from the normal approximation (several trillionths) will not necessarily be accurate; it might be out by several orders of magnitude. If you need tail bounds, naturally that would be a different question.]

• Hmm. I wonder if shifting everything right 1 unit and taking a zero-inflated normal approximation (for which the cdf of the convolution is a straightforward sum of terms) might do a bit better somewhat further into the left tail while still being easier/quicker to evaluate than the convolution. Naturally the corresponding evaluation points also shift right. – Glen_b -Reinstate Monica Feb 17 at 15:40
• Thanks for this. I went ahead a did a simulation. In the real-world problem I was trying to solve the standard deviation was much higher, and as you pointed out, it only takes a few seconds to execute. – jopke Feb 17 at 18:18