Генерування дискретних випадкових величин

Моделювання Монте-Карло в Python

Izzy Weber

Curriculum Manager, DataCamp

Необхідні імпорти

import scipy.stats as st

import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt
Моделювання Монте-Карло в Python

Дискретний рівномірний розподіл

Теоретична функція маси ймовірності (PMF): Теоретична функція маси ймовірності для дискретного рівномірного розподілу

Моделювання Монте-Карло в Python

Вибірка з дискретного рівномірного розподілу

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)

графік вибірки з дискретного рівномірного розподілу

Моделювання Монте-Карло в Python

Геометричний розподіл

Розподіл ймовірностей для кількості спроб $X$, потрібних для однієї успішної події за умови ймовірності успіху $p$.

Функція маси ймовірності, p = 0.5 Теоретична функція маси ймовірності для геометричного розподілу, де p = 0.5

Моделювання Монте-Карло в Python

Геометричний розподіл

Функція маси ймовірності, p = 0.3 Теоретична функція маси ймовірності для геометричного розподілу, де p = 0.3

Моделювання Монте-Карло в Python

Вибірка з геометричного розподілу

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

графік вибірки з геометричного розподілу

Моделювання Монте-Карло в Python

Більше дискретних розподілів ймовірностей

  • Пуассон (scipy.stats.poisson)
    • Описує ймовірність певної кількості подій у фіксованому інтервалі часу або простору
  • Біноміальний (scipy.stats.binom)
    • Описує ймовірність числа успіхів у послідовності з $n$ незалежних випробувань
  • Та інші!
1 https://docs.scipy.org/doc/scipy/reference/stats.html#discrete-distributions
Моделювання Монте-Карло в Python

Давайте потренуємось!

Моделювання Монте-Карло в Python

Preparing Video For Download...