Come utilizzare fitdistr() in r per adattare le distribuzioni


È possibile utilizzare la funzione fitdistr() del pacchetto MASS in R per stimare i parametri di una distribuzione massimizzando la funzione di verosimiglianza.

Questa funzione utilizza la seguente sintassi di base:

fitdistr(x, densefun, …)

Oro:

  • x : Un vettore numerico che rappresenta i valori della distribuzione
  • densefun : la distribuzione per la quale stimare i parametri

Tieni presente che l’argomento densefun accetta i seguenti nomi di distribuzione potenziale: beta , cauchy , chi quadrato , esponenziale , gamma , geometrica , lognormale , logistica , binomiale negativa , normale , Poisson , t e Weibull .

L’esempio seguente mostra come utilizzare nella pratica la funzione fitdistr() .

Esempio: come utilizzare la funzione fitdistr() per adattare le distribuzioni in R

Supponiamo di utilizzare la funzione rnorm() in R per generare un vettore di 200 valori che segue una distribuzione normale:

 #make this example reproducible
set. seeds (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

Possiamo usare la funzione hist() per creare un istogramma per visualizzare la distribuzione dei valori dei dati:

 hist(data, col=' steelblue ')

Generare una distribuzione normale in R

Possiamo vedere che i dati appaiono effettivamente distribuiti normalmente.

Possiamo quindi utilizzare la funzione fitdistr() per stimare i parametri di questa distribuzione:

 library (MASS)

#estimate parameters of distribution
fitdistr(data, “ normal ”)

      mean sd    
  10.1066189 2.7803148 
 (0.1965979) (0.1390157)

La funzione fitdistr() stima che il vettore dei valori segua una distribuzione normale con una media di 10.1066189 e una deviazione standard di 2.7803148 .

Questi valori non dovrebbero sorprendere poiché abbiamo generato i dati utilizzando la funzione rnorm() con un valore medio di 10 e una deviazione standard di 3.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come tracciare una distribuzione normale in R
Come generare una distribuzione normale in R
Come eseguire un test di Shapiro-Wilk per la normalità in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *