How to compute probabilities from a distribution (in Julia)
Task
There are many famous continuous probability distributions, such as the normal and exponential distributions. How can we get access to them in software, to compute the probability of a value/values occurring?
Related tasks:
- How to generate random values from a distribution
- How to plot continuous probability distributions
- How to plot discrete probability distributions
Solution
You can import many different random variables from Julia’s Distributions
package.
The full list of them is online here.
If you don’t have that package installed, first run using Pkg
and then
Pkg.add( "Distributions" )
from within Julia.
To compute a probability from a discrete distribution, create a random
variable, then use the pdf
function. (This is a slight misnomer, because PDF
stands for Probability Density Function, which is a concept related to continuous random
variables, but it’s the function Julia uses.)
1
2
3
4
5
6
7
8
using Distributions
# Create a binomial random variable with 10 trials
# and probability 0.5 of success on each trial
X = Binomial( 10, 0.5 )
# What is the probability of exactly 3 successes?
pdf( X, 3 )
1
0.1171875000000004
To compute a probability from a continuous distribution, create a random
variable, then use its Cumulative Density Function, cdf
. You can only
compute the probability that a random value will fall in an interval $[a,b]$,
not the probability that it will equal a specific value.
1
2
3
4
5
6
7
using Distributions
# Create a normal random variable with mean μ=10 and standard deviation σ=5
X = Normal( 10, 5 )
# What is the probability of the value lying in the interval [12,13]?
cdf( X, 13 ) - cdf( X, 12 )
1
0.07032514063960227
Content last modified on 24 July 2023.
See a problem? Tell us or edit the source.
Contributed by Nathan Carter (ncarter@bentley.edu)