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:

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

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:

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

### Like this:

Like Loading...

*Related*

Michael PorrettaI 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.