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)