Como ajustar uma distribuição gama a um conjunto de dados em r


Este tutorial explica como ajustar uma distribuição gama a um conjunto de dados em R.

Ajustando uma distribuição gama em R

Suponha que você tenha um conjunto de dados z gerado usando a abordagem abaixo:

 #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

Para ver quão bem uma distribuição gama se ajusta a este conjunto de dados z , podemos usar o pacote fitdistrplus em R:

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

#load package
library(fitdistrplus)

A sintaxe geral a ser usada para adaptar uma distribuição usando este pacote é:

fitdist(dataset, distr = “sua escolha de distribuição”, método = “seu método de ajuste de dados”)

Nesse caso, ajustaremos o conjunto de dados z que geramos anteriormente usando a distribuição gama e a abordagem de estimativa de máxima verossimilhança para ajustar os dados:

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

#view the summary of the fit
summary(fit)

Isso produz o seguinte resultado:

Então podemos produzir gráficos que mostram quão bem a distribuição gama se ajusta ao conjunto de dados usando a seguinte sintaxe:

 #produce plots
plot(fit)

Isso produz os seguintes gráficos:

Aqui está o código completo que usamos para ajustar uma distribuição gama a um conjunto de dados em 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)

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *