Generating discrete random variables

Monte Carlo Simulations in Python

Izzy Weber

Curriculum Manager, DataCamp

Required imports

import scipy.stats as st

import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt
Monte Carlo Simulations in Python

Discrete uniform distribution

Theoretical probability mass function (PMF): Theoretical probability mass function for discrete uniform distribution

Monte Carlo Simulations in Python

Sampling from the discrete uniform distribution

low = 3 
high = 21
samples = st.randint.rvs(low, high, size=1000)
samples_dict = {"nums":samples}
sns.histplot(x="nums", data=samples_dict, bins=6, binwidth=0.3)

graph of sample results from discrete uniform distribution

Monte Carlo Simulations in Python

Geometric distribution

The probability distribution of the number of trials, $X$, needed to get one success, given the success probability, $p$.

Probability Mass Function, p = 0.5 Theoretical probability mass function for geometric distribution where p = 0.5

Monte Carlo Simulations in Python

Geometric distribution

Probability Mass Function, p = 0.3 Theoretical probability mass function for geometric distribution where p = 0.3

Monte Carlo Simulations in Python

Sampling from geometric distribution

p = 0.2
samples = st.geom.rvs(p, size=1000)
samples_dict = {"nums":samples}
sns.histplot(x="nums", data=samples_dict)

graph of sample results from geometric distribution

Monte Carlo Simulations in Python

More discrete probability distributions

  • Poisson (scipy.stats.poisson)
    • Expresses the probability of a given number of events occurring in a fixed interval of time or space
  • Binomial (scipy.stats.binom)
    • Expresses probability of the number of successes in a sequence of $n$ independent experiments.
  • And more!
1 https://docs.scipy.org/doc/scipy/reference/stats.html#discrete-distributions
Monte Carlo Simulations in Python

Let's practice!

Monte Carlo Simulations in Python

Preparing Video For Download...