Псевдовипадкова генерація чисел

Вибірка в R

Richie Cotton

Data Evangelist at DataCamp

Що означає «випадковий»?

{adjective} створене, зроблене, відбувається або обране без методу чи свідомого рішення.

  • Oxford Languages
Вибірка в R

Справді випадкові числа

  • Згенеровано фізичними процесами, як-от підкиданням монети.
  • Hotbits використовує радіоактивний розпад.
  • RANDOM.ORG використовує атмосферний шум.
    • Доступно в R через пакет random.
  • Справжня випадковість коштовна.
1 https://www.fourmilab.ch/hotbits 2 https://www.random.org
Вибірка в R

Псевдовипадкова генерація чисел

  • Наступне «випадкове» число обчислюють з попереднього «випадкового» числа.
  • Перше «випадкове» число обчислюють зі seed (початкового значення).
  • Якщо почати з того самого seed, усі наступні випадкові числа збігатимуться.
seed <- 1
calc_next_random(seed)
3
calc_next_random(3)
2
calc_next_random(2)
6
Вибірка в R

Функції генерації випадкових чисел

function distribution function distribution function distribution
rbeta Бета rgeom Геометричний rsignrank Знаковий ранґ Вілкоксона
rbinom Біноміальний rhyper Гіпергеометричний rt t
rcauchy Коші rlnorm Логнормальний runif Рівномірний
rchisq Хі‑квадрат rlogis Логістичний rweibull Вейбулла
rexp Експоненційний rnbinom Негативний біноміальний rwilcox Сума рангів Вілкоксона
rf F rnorm Нормальний
rgamma Гамма rpois Пуассонівський
Вибірка в R

Візуалізація випадкових чисел

rbeta(5000, shape1 = 2, shape2 = 2)
[1] 0.2788 0.7495 0.6485 0.6665 0.6546 0.1575
...

[4996] 0.84719 0.35177 0.92796 0.67603 0.53960
randoms <- data.frame(
  beta = rbeta(5000, shape1 = 2, shape2 = 2)
)
ggplot(randoms, aes(beta)) +
  geom_histogram(binwidth = 0.1)

hist-beta.png

Вибірка в R

Зерна для випадкових чисел

set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
Вибірка в R

Використання іншого seed

set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
set.seed(20041004)
rnorm(5)
-0.6547 -0.7854 -0.0152  0.1514  0.5285
rnorm(5)
0.748  0.974  0.174 -0.781 -0.930
Вибірка в R

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

Вибірка в R

Preparing Video For Download...