Multinomial Distribution in R
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Introduction
The multinomial distribution is a probability distribution that describes the probability of obtaining a specific number of counts for k different outcomes, when each outcome has a fixed probability of occurring.
In R, we can use the rmultinom()
function to simulate random samples from a multinomial distribution, and the dmultinom()
function to calculate the probability of a specific outcome.
Examples
Example 1
Suppose we have a fair die, and we want to simulate rolling the die 10 times. We can use the rmultinom()
function to do this as follows:
# Simulate rolling a fair die 10 times die_rolls <- rmultinom( n = 10, size = 1, prob = c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6) ) # Print the results print(die_rolls)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 0 0 0 0 0 0 0 0 0 0 [2,] 0 1 0 0 0 0 0 0 0 0 [3,] 1 0 0 0 0 0 0 1 0 0 [4,] 0 0 0 0 0 0 0 0 0 0 [5,] 0 0 0 0 0 1 1 0 1 0 [6,] 0 0 1 1 1 0 0 0 0 1
Example 2
Suppose we want to calculate the probability of getting exactly two ones, two threes, two fours, two fives, and two sixes when rolling a fair die 10 times. We can use the dmultinom()
function to do this as follows:
# Calculate the probability of getting exactly two ones, two threes, two fours, two fives, and two sixes when rolling a fair die 10 times probability <- dmultinom( x = c(2, 2, 2, 2, 2), size = 10, prob = c(1/6, 1/6, 1/6, 1/6, 1/6) ) # Print the result print(probability)
[1] 0.01161216
Try it on your own!
I encourage readers to try using the rmultinom()
and dmultinom()
functions on their own data. For example, you could simulate rolling a die 100 times and see how often each outcome occurs. Or, you could calculate the probability of getting a certain number of heads and tails when flipping a coin 10 times.
Here is an example of how to use the rmultinom()
function to simulate flipping a coin 10 times and calculate the probability of getting exactly five heads and five tails:
# Simulate flipping a coin 10 times coin_flips <- rmultinom(n = 10, size = 1, prob = c(0.5, 0.5)) # Calculate the probability of getting exactly five heads and five tails probability <- dmultinom(x = c(5, 5), size = 10, prob = c(0.5, 0.5)) # Print the result print(probability)
[1] 0.2460938
I hope this blog post has helped you learn how to use the multinomial distribution in R. Please feel free to leave a comment if you have any questions.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.