# R - Poisson Distribution

Poisson Distribution is a discrete probability distribution and it expresses the probability of a given number of events occurring in a fixed interval of time or space if these events occur with a known constant mean rate and independently of the time since the last event.

The probability mass function (pmf) of poisson distribution is defined as:

Where, k is the number of occurrences (k=0,1,2...), λ is average number of events.

An poisson distribution has mean λ and variance λ.

The cumulative distribution function (cdf) evaluated at k, is the probability that the random variable (X) will take a value less than or equal to k. The cdf of poisson distribution is defined as:

Where, [k] is the greatest integer less than or equal to k.

In R, there are four functions which can be used to generate poisson distribution.

### Syntax

```dpois(x, lambda)
ppois(q, lambda)
qpois(p, lambda)
rpois(n, lambda)
```

### Parameters

 `x` `Required. `Specify a vector of numbers. `q` `Required. `Specify a vector of numbers. `p` `Required. `Specify a vector of probabilities. `n` `Required. `Specify number of observation (sample size). `lambda` `Required. `Specify a vector of (non-negative) means.

## dpois()

The dpois() function measures probability mass function (pmf) of the distribution.

```#creating a sequence of values between
#0 to 20 with a difference of 1
x <- seq(0, 20, by=1)

y <- dpois(x, 10)

#naming the file
png(file = "poisson.png")

#plotting the graph
plot(x, y, col="blue")

#saving the file
dev.off()
```

The output of the above code will be:

## ppois()

The ppois() function returns cumulative distribution function (cdf) of the distribution.

```#creating a sequence of values between
#0 to 20 with a difference of 0.1
x <- seq(0, 20, by=0.1)

y <- ppois(x, 10)

#naming the file
png(file = "poisson.png")

#plotting the graph
plot(x, y, col="blue")

#saving the file
dev.off()
```

The output of the above code will be:

## qpois()

The qpois() function takes the probability value and returns cumulative value corresponding to probability value of the distribution.

```#creating a sequence of probability from
#0 to 1 with a difference of 0.01
x <- seq(0, 1, by=0.01)

y <- qpois(x, 10)

#naming the file
png(file = "poisson.png")

#plotting the graph
plot(x, y, col="blue")

#saving the file
dev.off()
```

The output of the above code will be:

## rpois()

The rpois() function generates a vector containing specified number of random values from the given poisson distribution. In the example below, a histogram is plotted to visualize the result.

```#fixing the seed to maintain the
#reproducibility of the result
set.seed(10)
x <- 10000

#creating a vector containing 10000 random
#values from the given poisson distribution
y <- rpois(x, 10)

#naming the file
png(file = "poisson.png")

#plotting the graph
hist(y, col="blue")

#saving the file
dev.off()
```

The output of the above code will be:

5