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.
Statistics Globe Newsletter