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

В этом случае мы подгоним набор данных 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)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *