# 100-year flood: Binomial distribution

The Binomial distribution applies when there are trials with two outcomes (‘success’ and ‘failure’).  The standard example is coin tossing; a coin can come up heads or tails and the probability of success e.g. a head, is the same in every trial.  The probability of tossing a head with an unbiased coin is 50% but the binomial distribution also applies where the probability of success differs from 50%.  In the case of a 100-year flood, the probability of ‘success’ – having a 100-year flood, is 1% in any year.

The Binomial distribution can be used to calculate the probability of experiencing a certain number of 100-year floods in a specified number of years.  The probability of  experiencing 0, 1, 2, 3, 4 or 5 100-year floods in 100 years is shown in the table and figure below.  Having one flood is the most likely outcome but there is also a good chance of having zero, or 2, or more.  There is a 63.4% change of having at least 1.

 Number of floods Probability 0 36.6% 1 37.0% 2 18.5% 3 6.1% 4 1.4% 5 0.3% At least 1 63.4%

Probability of experiencing 0, 1, 2, 3, 4 or 5 100-year (1%) floods in 100 years

Lets do a sample calculation.  The probability of k successes from n trials, where the probability of success from an individual trial is p, is given by:

${n\choose k}p^{k}\left( 1-p\right) ^{n-k}$

So the probability of exactly two, 100-year floods in 100 years is:

${100\choose 2}0.01^{2}\left( 1-0.01\right) ^{98} = 0.185$ or 18.5%

The probability of at least one flood is the same as 1 – the probability of zero floods. So the probability of at least one 100-year flood in 100 years is:

$1-(1-0.01)^{100} = 0.6339677 \approx 1 - \frac{1}{e}$

We can also use a Binomial random variable to simulate the occurrence of floods.  Check the help for ?rbinom.

To simulate the number of 100-year floods in 100 years:

rbinom(1, 100, 0.01)

To do this in 10, 100-year sequences:

rbinom(10, 100, 0.01)

See the code below for an example.

R code (also available as a gist)

dbinom(0,100,0.01) # zero 1% floods in 100 years
dbinom(1,100,0.01)
dbinom(2,100,0.01)
dbinom(3,100,0.01)
dbinom(4,100,0.01)
dbinom(5,100,0.01) # five 1% floods in 100 years

# at least 1 1% flood in 100 years
1 - pbinom(0,100, 0.01)

# Sample calculation
# Exactly 2 1% floods in 100 year
choose(100,2) * 0.01^2 * (1 - 0.01)^98
#[1] 0.1848648

par(oma = c(1, 2, 0, 0))
barplot(dbinom(0:5,100,0.01),
ylim = c(0, 0.4),
las = 1,
names.arg = 0:5,
ylab = 'Probability',
xlab = 'Number of 100-year floods in 100 years')

set.seed(2000)
rbinom(10, 100, 0.01)
#[1] 0 1 0 1 2 1 3 1 2 1
# number of 100-year floods in each of 10 100-year sequences



## One thought on “100-year flood: Binomial distribution”

1. Michael Porretta

I am looking for advice on calculation of probabilities of floods of different return periods an numbers of occurrences in range of time. This is very helpful.