Comment utiliser fitdistr() dans R pour ajuster les distributions



Vous pouvez utiliser la fonction fitdistr() du package MASS dans R pour estimer les paramètres d’une distribution en maximisant la fonction de vraisemblance.

Cette fonction utilise la syntaxe de base suivante :

fitdistr(x, densefun, …)

où:

  • x : Un vecteur numérique représentant les valeurs de la distribution
  • densefun : la distribution pour estimer les paramètres pour

Notez que l’argument densefun accepte les noms de distribution potentiels suivants : bêta , cauchy , chi carré , exponentiel , gamma , géométrique , lognormal , logistique , binôme négatif , normal , Poisson , t et Weibull .

L’exemple suivant montre comment utiliser la fonction fitdistr() dans la pratique.

Exemple : comment utiliser la fonction fitdistr() pour ajuster les distributions dans R

Supposons que nous utilisions la fonction rnorm() dans R pour générer un vecteur de 200 valeurs qui suivent une distribution normale :

#make this example reproducible
set.seed(1)

#generate sample of 200 observations that follows normal dist with mean=10 and sd=3
data <- rnorm(200, mean=10, sd=3)

#view first 6 observations in sample
head(data)

[1]  8.120639 10.550930  7.493114 14.785842 10.988523  7.538595

Nous pouvons utiliser la fonction hist() pour créer un histogramme afin de visualiser la distribution des valeurs des données :

hist(data, col='steelblue')

Générer une distribution normale dans R

Nous pouvons voir que les données semblent effectivement distribuées normalement.

On peut alors utiliser la fonction fitdistr() pour estimer les paramètres de cette distribution :

library(MASS)

#estimate parameters of distribution
fitdistr(data, "normal")

      mean          sd    
  10.1066189    2.7803148 
 ( 0.1965979) ( 0.1390157)

La fonction fitdistr() estime que le vecteur de valeurs suit une distribution normale avec une moyenne de 10,1066189 et un écart type de 2,7803148 .

Ces valeurs ne devraient pas être surprenantes puisque nous avons généré les données à l’aide de la fonction rnorm() avec une valeur moyenne de 10 et un écart type de 3.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment tracer une distribution normale dans R
Comment générer une distribution normale dans R
Comment effectuer un test de Shapiro-Wilk pour la normalité dans R

Ajouter un commentaire

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