5.4: Моделювання розподілів за допомогою R
- Page ID
- 17676
Базова установка R включає в себе безліч функцій для роботи з рівномірними розподілами, біноміальними розподілами, розподілами Пуассона та нормальними розподілами. Ці функції бувають чотирьох форм, які приймають загальну форму distribution), а де xdist, де dist - це тип розподілу (одиниця для рівномірного розподілу, біном для біноміального розподілу, pois для розподілу Пуассона та норма для нормального.x визначає інформацію, яку ми витягуємо з дистрибутива. Наприклад, функція dunif () повертає ймовірність отримання конкретного значення, отриманого з рівномірного розподілу, функція pbinom () повертає ймовірність отримання результату менше визначеного значення з біноміального розподілу, функція qpois () повертає верхню межу, яка включає певний відсоток результатів з розподілу Пуассона, а функція rnomr () повертає результати, отримані випадковим чином з нормального розподілу.
Моделювання рівномірного розподілу за допомогою R
Коли ви купуєте об'ємний піпет класу А 10,00 мл, він поставляється з допуском ± 0,02 мл, що є способом виробника сказати, що справжній об'єм піпетки становить не менше 9,98 мл і не більше 10,02 мл. Припустимо, виробник виробляє 10 000 піпетів, скільки ми можемо очікувати об'єму між 9,990 мл і 9,992 мл? Рівномірний розподіл - це вибір, коли виробник забезпечує діапазон допуску без вказівки рівня довіри і коли немає підстав вважати, що результати поблизу центру діапазону є більш імовірними, ніж результати на кінцях діапазону.
Для моделювання рівномірного розподілу використовується функція R runif (n, min, max), яка повертає n випадкових значень, отриманих з рівномірного розподілу, визначеного його мінімумом (min) та максимальними (max) межами. Результат показаний на малюнку\(\PageIndex{1}\), де точки, додані за допомогою функції points (), показують теоретичний рівномірний розподіл в середній точці кожного з бункерів гістограми.
# створити вектор томів для 10000 піпетів, намальованих випадковим чином з рівномірного розподілу
піпет = руніф (10000, 9,98, 10.02)
# створити гістограму за допомогою 20 бункерів розміром 0.002 mL
pipet_hist = hist (піпет, перерви = seq (9,98, 10.02, 0,002), col = c («синій», «світло-блакитний»), ylab = «кількість піпетів», xlab = «обсяг піпетки (мл)», основний = NULL)
# точки накладання, що показують очікувані значення для рівномірного розподілу
точки (піпетка_гіст$ середні, реп (10000/20, 20), ПЧ = 19)
Збереження гістограми до об'єкта pipet_hist дозволяє нам отримати кількість піпетів у кожному з інтервалів гістограми; таким чином, існує 476 піпетів з обсягами між 9,990 мл і 9,992 мл, що є шостим рядком від лівого краю рисунка\(\PageIndex{1}\).
піпетка_гіста$ кількість [6]
[1] 476
Моделювання біноміального розподілу за допомогою R
Вуглець має два стабільних, нерадіоактивних ізотопу, 12 С і 13 С, з відносною ізотопною кількістю відповідно 98,89% і 1,11%. Припустимо, ми працюємо з холестерином, C 27 H 44 O, який має 27 атомів вуглецю. Ми можемо використовувати біноміальний розподіл для моделювання очікуваного розподілу кількості атомів 13 С у 1000 молекулах холестерину.
Для моделювання розподілу ми використовуємо функцію rbinom (n, size, prob) R, яка повертає n випадкових значень, отриманих з біноміального розподілу, визначеного розміром нашого зразка, який є кількістю можливих атомів вуглецю, і ізотопним достатком 13 С, що це його зонд або ймовірність. Результат показаний на малюнку\(\PageIndex{2}\), де точки, додані за допомогою функції points (), показують теоретичний біноміальний розподіл. Ці теоретичні значення обчислюються за допомогою функції dbinom (). Штриховий графік призначається об'єкту chol.bar, щоб забезпечити доступ до значень x при побудові точок.
# створити вектор з 1000 значень, намальованих у випадковому порядку з біноміального розподілу
холестерин = ребіном (1000, 27, 0,0111)
# створити барний графік результатів; таблиця (холестерин) визначає кількість холестерину
# молекули з 0, 1, 2... атомами вуглецю-13; ділення на 1000 дає ймовірність
chol_bar = барплот (таблиця (холестерин) /1000, col = «світло-блакитний», ylim = c (0,1), xlab = «кількість атомів вуглецю-13", ylab = «ймовірність»)
# Теоретичні результати для біноміального розподілу вуглецю-13 в холестерин
чол_біном = дбіном (морське (0,27,1), 27, 0,0111)
# накладення теоретичних результатів для біноміального розподілу
точки (х = чол_бар, у = чол.біном [1:довжина (холь_бар)], секс = 1,25, пч = 19)
Моделювання розподілу Пуассона за допомогою R
Однією з показників якості води в озерах, що використовуються в рекреаційних цілях, є фекальна кишкова паличка. У типовому тесті зразок води пропускають через мембранний фільтр, який потім поміщають на середовище для стимулювання росту бактерій і інкубують протягом 24 годин при 44,5° C, повідомляють про кількість колоній бактерій. Припустимо, озеро має природний фоновий рівень 5 колоній на 50 мл випробуваної води і має бути закритим для купання, якщо він перевищує 10 колоній на 50 мл випробуваної води. Ми можемо використовувати розподіл Пуассона, щоб визначити протягом року щоденного тестування ймовірність того, що тест перевищить цю межу, навіть якщо справжня кількість фекальних коліформ озера залишається на природному фоновому рівні.
Для моделювання розподілу ми використовуємо функцію rpois (n, lambda) R, яка повертає n випадкових значень, отриманих з розподілу Пуассона, визначеного лямбдою, яка є його середньою випадковістю. Тому що ми зацікавлені в моделюванні на рік, n встановлюється на 365 днів. Результат показаний на малюнку\(\PageIndex{3}\), де точки, додані за допомогою функції points (), показують теоретичний розподіл Пуассона. Ці теоретичні значення обчислюються за допомогою функції dpois (). Штриховий графік призначається об'єкту choliform.bar, щоб забезпечити доступ до значень x при побудові точок.
# створити вектор результатів, намальованих у випадковому порядку з розподілу Пуассона
коліформи = проїс (365,5)
# створити таблицю змодельованих результатів
coliform_table = таблиця (коліформи)
# створити барну ділянку; ylim гарантує, що над найвищою планкою ділянки є деякий простір
coliform_bar = barplot (коліформа_таблиця, ylim = c (0, 1.2 * макс (coliform_table)), col = «світло-блакитний»)
# Теоретичні результати розподілу Пуассона
d_коліформ = dois (seq (0, довжина (коліформ_бар) - 1), 5) * 365
# накладення теоретичних результатів для розподілу Пуассона
точки (коліформ_бар, d_коліформи, pch = 19)
Щоб знайти кількість разів, коли наші змодельовані результати перевищують межу 10 колоній коліформ на 50 мл, ми використовуємо функцію R which (), щоб ідентифікувати в коліформах значення, які перевищують 10
кишкові палички [які (коліформи > 10)]
виявивши, що це відбувається 2 рази протягом року.
Теоретична ймовірність того, що один тест перевищить межу 10 колоній на 50 мл води, ми використовуємо функцію R pois (q, лямбда), де q - значення, яке ми хочемо перевірити, яке повертає сукупну ймовірність отримання результату менше або дорівнює q on в будь-який день; протягом 365 днів
(1 - поли (10,5) * 365
[1] 4.998773
очікуємо, що на 5 днів кількість фекальних коліформ перевищить межу в 10.
Моделювання нормального розподілу за допомогою R
Якщо помістити мідний метал і надлишок порошкоподібної сірки в тигель і запалити його, утворюється сульфід міді з емпіричною формулою Cu x S. Значення х визначають шляхом зважування Cu і S перед запалюванням і знаходження маси Cu x S, коли реакція завершена (будь-який надлишок сірки йде як газ SO 2). Нижче наведені співвідношення Cu/S з 62 таких експериментів, з яких тільки 3 більше 2. Через центральну граничну теорему ми можемо використовувати нормальний розподіл для моделювання даних.
| 1.764 | 1,838 | 1.890 | 1.891 | 1.906 | 1.908 |
| 1.920 | 1,922 | 1,936 | 1.937 | 1,941 | 1,942 |
| 1,957 | 1,957 | 1,963 | 1,963 | 1,975 | 1.976 |
| 1.993 | 1.993 | 2.029 | 2.042 | 1.866 | 1,872 |
| 1.891 | 1.897 | 1.899 | 1.910 | 1.911 | 1.916 |
| 1.927 | 1.931 | 1,935 | 1,939 | 1,939 | 1.940 |
| 1,943 | 1,948 | 1,953 | 1,957 | 1,959 | 1,962 |
| 1.966 | 1,968 | 1,969 | 1,977 | 1,981 | 1,981 |
| 1,995 | 1,995 | 1,865 | 1,995 | 1.877 | 1.900 |
| 1.919 | 1,936 | 1,941 | 1,955 | 1,963 | 1,973 |
| 1.988 | 2.017 |
\(\PageIndex{4}\)На малюнку показано розподіл експериментальних результатів у вигляді гістограми, накладеної з теоретичним нормальним розподілом,\(\mu\) розрахованим на припущення, що\(\sigma\) дорівнює середньому 62 вибірки і що дорівнює стандартному відхиленню 62 зразків. Як експериментальні дані, так і теоретичний нормальний розподіл дозволяють припустити, що більшість значень x знаходяться між 1,85 і 2,03.
# введіть дані у вектор з назвою cuxs
кукс = с (1,764, 1,920, 1,957, 1,93, 1.891, 1.927, 1.943, 1.966, 1.919, 1.919, 1.988, 1.838, 1.922, 1.957, 1.993, 1.897, 1.931, 1.948, 1.968, 1.995, 1.936, 2.017, 890, 1.936, 1.963, 2.029, 1.899, 1.935, 1.953, 1.969, 1.865, 1.941, 1.891, 1.937, 1.963, 2.042, 1.910, 1.939, 1.957, 1.977, 1.995, 1.955, 1 906, 1.941, 1.975, 1.866, 1.911, 1.939, 1.959, 1.981, 1.877, 1.963, 1.908, 1.942, 1.976, 1.872, 1.916, 1.940, 1.962, 1.981, 1.900, 1.973)
# послідовність співвідношень, над якими відображати експериментальні результати та теоретичний розподіл
х = морський (1,7,2,2,0,02)
# створити гістограму для експериментальних результатів
cuss_hist = hist (cuxs, перерви = x, col = c («синій», «блакитний»), xlab = «значення для x», ylab = «частота», основний = NULL)
# Обчислити теоретичні результати для нормального розподілу, використовуючи середнє і стандартне відхилення
# для 62 зразків як предикторів для му та сигми
cuss_theo = dnorm (cuss_hist$ середні, середнє = середнє (cuxs), сд = сд (cuxs))
# результати накладення для теоретичного нормального розподілу
точки (cuss_hist$ середні, cuss_theo, pch = 19)
