Як підібрати гамма-розподіл до набору даних у r


У цьому посібнику пояснюється, як підігнати гамма-розподіл до набору даних у R.

Підгонка гамма-розподілу в R

Припустімо, у вас є набір даних z , створений за допомогою наведеного нижче підходу:

 #generate 50 random values that follow a gamma distribution with shape parameter = 3
#and shape parameter = 10 combined with some gaussian noise
z <- rgamma(50, 3, 10) + rnorm(50, 0, .02)

#view first 6 values
head(z)
[1] 0.07730 0.02495 0.12788 0.15011 0.08839 0.09941

Щоб побачити, наскільки добре гамма-розподіл відповідає цьому набору даних z , ми можемо використати пакет fitdistrplus у R:

 #install 'fitdistrplus' package if not already installed
install. packages ('fitdistrplus')

#load package
library(fitdistrplus)

Загальний синтаксис для адаптації дистрибутива за допомогою цього пакета:

fitdist(dataset, distr = «ваш вибір розподілу», method = «ваш метод підгонки даних»)

У цьому випадку ми будемо відповідати набору даних z , який ми згенерували раніше, використовуючи підхід гамма-розподілу та оцінки максимальної правдоподібності, щоб відповідати даним:

 #fit our dataset to a gamma distribution using mle
fit <- fitdist(z, distr = "gamma", method = "male")

#view the summary of the fit
summary(fit)

Це дає такий результат:

Тоді ми можемо створювати графіки, які показують, наскільки добре гамма-розподіл відповідає набору даних, використовуючи такий синтаксис:

 #produce plots
plot(fit)

Це створює такі ділянки:

Ось повний код, який ми використовували для підгонки гамма-розподілу до набору даних у R:

 #install 'fitdistrplus' package if not already installed
install. packages ('fitdistrplus')

#load package
library(fitdistrplus)

#generate 50 random values that follow a gamma distribution with shape parameter = 3
#and shape parameter = 10 combined with some gaussian noise
z <- rgamma(50, 3, 10) + rnorm(50, 0, .02)

#fit our dataset to a gamma distribution using mle
fit <- fitdist(z, distr = "gamma", method = "male")

#view the summary of the fit
summary(fit)

#produce plots to visualize the fit
plot(fit)

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *