Як використовувати fitdistr() у r для підгонки розподілів
Ви можете використовувати функцію fitdistr() із пакету MASS у R, щоб оцінити параметри розподілу шляхом максимізації функції правдоподібності.
Ця функція використовує такий базовий синтаксис:
fitdistr(x, densefun, …)
золото:
- x : числовий вектор, що представляє значення розподілу
- densefun : розподіл для оцінки параметрів
Зауважте, що аргумент densefun приймає такі потенційні назви розподілу: бета , Коші , хі-квадрат , експоненціальний , гамма , геометричний , логнормальний , логістичний , негативний біноміальний , нормальний , Пуассона , t і Вейбулла .
У наступному прикладі показано, як використовувати функцію fitdistr() на практиці.
Приклад: як використовувати функцію fitdistr() для підгонки розподілу в R
Припустімо, що ми використовуємо функцію rnorm() в R, щоб створити вектор із 200 значень, який відповідає нормальному розподілу:
#make this example reproducible set. seeds (1) #generate sample of 200 observations that follows normal dist with mean=10 and sd=3 data <- rnorm(200, mean=10, sd=3) #view first 6 observations in sample head(data) [1] 8.120639 10.550930 7.493114 14.785842 10.988523 7.538595
Ми можемо використовувати функцію hist() для створення гістограми для візуалізації розподілу значень даних:
hist(data, col=' steelblue ')
Ми бачимо, що дані справді виглядають нормально розподіленими.
Потім ми можемо використати функцію fitdistr() , щоб оцінити параметри цього розподілу:
library (MASS)
#estimate parameters of distribution
fitdistr(data, “ normal ”)
mean sd
10.1066189 2.7803148
(0.1965979) (0.1390157)
Функція fitdistr() визначає, що вектор значень відповідає нормальному розподілу із середнім значенням 10,1066189 і стандартним відхиленням 2,7803148 .
Ці значення не повинні дивувати, оскільки ми генерували дані за допомогою функції rnorm() із середнім значенням 10 і стандартним відхиленням 3.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як побудувати графік нормального розподілу в R
Як створити нормальний розподіл у R
Як виконати тест Шапіро-Вілка на нормальність у R