Come adattare una distribuzione gamma a un set di dati in r


Questo tutorial spiega come adattare una distribuzione gamma a un set di dati in R.

Adattare una distribuzione gamma in R

Supponiamo di avere un set di dati z generato utilizzando l’approccio seguente:

 #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

Per vedere quanto bene una distribuzione gamma si adatta a questo set di dati z , possiamo usare il pacchetto fitdistrplus in R:

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

#load package
library(fitdistrplus)

La sintassi generale da utilizzare per adattare una distribuzione utilizzando questo pacchetto è:

fitdist(dataset, distr = “la tua scelta di distribuzione”, metodo = “il tuo metodo di adattamento dei dati”)

In questo caso, adatteremo il set di dati z che abbiamo generato in precedenza utilizzando la distribuzione gamma e l’approccio di stima della massima verosimiglianza per adattare i dati:

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

#view the summary of the fit
summary(fit)

Ciò produce il seguente risultato:

Quindi possiamo produrre grafici che mostrano quanto bene la distribuzione gamma si adatta al set di dati utilizzando la seguente sintassi:

 #produce plots
plot(fit)

Ciò produce i seguenti grafici:

Ecco il codice completo che abbiamo utilizzato per adattare una distribuzione gamma a un set di dati in 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)

Aggiungi un commento

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