Comment adapter une distribution gamma à un ensemble de données dans R



Ce didacticiel explique comment ajuster une distribution gamma à un ensemble de données dans R.

Ajustement d’une distribution gamma dans R

Supposons que vous disposiez d’un ensemble de données z généré à l’aide de l’approche ci-dessous :

#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

Pour voir dans quelle mesure une distribution gamma s’adapte à cet ensemble de données z , nous pouvons utiliser le package fitdistrplus dans R :

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

#load package
library(fitdistrplus)

La syntaxe générale à utiliser pour adapter une distribution utilisant ce package est :

fitdist(dataset, distr = « votre choix de distribution », method = « votre méthode d’ajustement des données »)

Dans ce cas, nous ajusterons l’ensemble de données z que nous avons généré précédemment en utilisant la distribution gamma et l’approche d’estimation du maximum de vraisemblance pour ajuster les données :

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

#view the summary of the fit 
summary(fit)

Cela produit le résultat suivant :

Ensuite, nous pouvons produire des graphiques qui montrent dans quelle mesure la distribution gamma s’adapte à l’ensemble de données en utilisant la syntaxe suivante :

#produce plots
plot(fit)

Cela produit les tracés suivants :

Voici le code complet que nous avons utilisé pour adapter une distribution gamma à un ensemble de données dans 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)

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *