Hoe een gammaverdeling aan een dataset in r past
In deze tutorial wordt uitgelegd hoe u een gammaverdeling aan een dataset in R kunt aanpassen.
Het passen van een gammaverdeling in R
Stel dat u een dataset z hebt gegenereerd met behulp van de onderstaande aanpak:
#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
Om te zien hoe goed een gammaverdeling bij deze dataset z past, kunnen we het fitdistrplus- pakket in R gebruiken:
#install 'fitdistrplus' package if not already installed install. packages ('fitdistrplus') #load package library(fitdistrplus)
De algemene syntaxis die gebruikt moet worden om een distributie aan te passen met behulp van dit pakket is:
fitdist(dataset, distr = “uw distributiekeuze”, method = “uw methode voor het aanpassen van gegevens”)
In dit geval passen we de z- dataset aan die we eerder hebben gegenereerd met behulp van de gammaverdeling en de maximale waarschijnlijkheidsschatting om in de gegevens te passen:
#fit our dataset to a gamma distribution using mle fit <- fitdist(z, distr = "gamma", method = "male") #view the summary of the fit summary(fit)
Dit levert het volgende resultaat op:
Vervolgens kunnen we grafieken maken die laten zien hoe goed de gammaverdeling bij de dataset past, met behulp van de volgende syntaxis:
#produce plots
plot(fit)
Dit levert de volgende plots op:
Hier is de volledige code die we hebben gebruikt om een gammaverdeling in een dataset in R te passen:
#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)