Как подогнать гамма-распределение к набору данных в 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 = "mle")

#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 = "mle")

#view the summary of the fit
summary(fit)

#produce plots to visualize the fit
plot(fit)
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.