Gamma Distribution in R (4 Examples) | dgamma, pgamma, qgamma & rgamma Functions
This article illustrates how to apply the gamma functions in the R programming language.
The post is structured as follows:
- Example 1: Gamma Density in R (dgamma Function)
- Example 2: Gamma Cumulative Distribution Function (pgamma Function)
- Example 3: Gamma Quantile Function (qgamma Function)
- Example 4: Random Number Generation (rgamma Function)
- Video & Further Resources
Let’s dive right in:
Example 1: Gamma Density in R (dgamma Function)
Let’s start with a density plot of the gamma distribution. For this task, we first need to create an input vector containing of a sequence of quantiles:
x_dgamma <- seq(0, 1, by = 0.02) # Specify x-values for gamma function
We can now use this vector as input for the dgamma function as you can see below. In the examples of this tutorial, we’ll use a shape of 5:
y_dgamma <- dgamma(x_dgamma, shape = 5) # Apply dgamma function
In order to create a plot of the output of the dgamma function, we can apply the plot function as follows:
plot(y_dgamma) # Plot dgamma values
Figure 1: Gamma Density in R.
Figure 1 illustrates the output of the previous R syntax – A plot of the gamma distribution in R!
Let’s move on to the next example…
Example 2: Gamma Cumulative Distribution Function (pgamma Function)
In Example 2, I’ll show you how to create a cumulative distribution function (CDF) of the gamma distribution. As in Example 1, we first need to create a sequence of quantiles:
x_pgamma <- seq(0, 1, by = 0.02) # Specify x-values for pgamma function
We can now use the pgamma function to convert our sequence of quantiles to its corresponding CDF values of the gamma distribution:
y_pgamma <- pgamma(x_pgamma, shape = 5) # Apply pgamma function
We can also create a graphic of this data with the plot function in R:
plot(y_pgamma) # Plot pgamma values
Figure 2: Gamma Cumulative Distribution Function.
Example 3: Gamma Quantile Function (qgamma Function)
If we want to create a plot reflecting the quantile function of the gamma distribution, we need to create a vector of probabilities:
x_qgamma <- seq(0, 1, by = 0.02) # Specify x-values for qgamma function
We now can use the qgamma command of the R programming language…
y_qgamma <- qgamma(x_qgamma, shape = 5) # Apply qgamma function
…and create a scatterplot as follows:
plot(y_qgamma) # Plot qgamma values
Figure 3: Gamma Quantile Function.
Example 4: Random Number Generation (rgamma Function)
In order to generate a set of random numbers, which is distributed as the gamma distribution, we need to specify a seed (for reproducibility)…
set.seed(13579) # Set seed for reproducibility
…and we also need to specify the sample size of random numbers that we want to draw (i.e. 10000):
N <- 10000 # Specify sample size
Random numbers can now be simulated with the rgamma function:
y_rgamma <- rgamma(N, shape = 5) # Draw N gamma distributed values y_rgamma # Print values to RStudio console
Let’s have a look at a histogram of our values:
hist(y_rgamma, # Plot of randomly drawn gamma density breaks = 1000, main = "")
Figure 4: Random Numbers with Gamma Distribution.
Figure 4 shows the result of our random number simulation – Looks like the gamma distribution!
Video & Further Resources
Have a look at the following video of my YouTube channel. I’m explaining the content of this post in the video:
The YouTube video will be added soon.
You might also have a look at the other tutorials on distributions and the simulation of random numbers in the R programming language:
- Bernoulli Distribution in R
- Beta Distribution in R
- Binomial Distribution in R
- Bivariate & Multivariate Distributions in R
- Cauchy Distribution in R
- Chi-Squred Distribution in R
- Exponential Distribution in R
- F Distribution in R
- Gamma Distribution in R
- Geometric Distribution in R
- Hypergeometric Distribution in R
- Log Normal Distribution in R
- Logistic Distribution in R
- Negative Binomial Distribution in R
- Normal Distribution in R
- Poisson Distribution in R
- Student t Distribution in R
- Studentized Range Distribution in R
- Uniform Distribution in R
- Weibull Distribution in R
- Wilcoxon Signedank Statistic Distribution in R
- Wilcoxonank Sum Statistic Distribution in R
Furthermore, you could read the other posts on this homepage. You can find some tutorials below:
Summary: You learned in this tutorial how to use the different gamma functions in R. Please let me know in the comments, if you have additional questions or comments.