R/utility.R
gammaGetShapeRate.RdConvert gamma mean and dispersion parameters to shape and rate parameters
gammaGetShapeRate(mean, dispersion)A list that includes the shape and rate parameters of the gamma distribution
In simstudy, users specify the gamma distribution as a function of two parameters - a mean and dispersion. In this case, the variance of the specified distribution is (mean^2)*dispersion. The base R function rgamma uses the shape and rate parameters to specify the gamma distribution. This function converts the mean and dispersion into the shape and rate.
set.seed(12345)
mean <- 5
dispersion <- 1.5
rs <- gammaGetShapeRate(mean, dispersion)
c(rs$shape, rs$rate)
#> [1] 0.6666667 0.1333333
vec <- rgamma(1000, shape = rs$shape, rate = rs$rate)
(estMoments <- c(mean(vec), var(vec)))
#> [1] 4.806329 36.893163
(theoryMoments <- c(mean, mean^2 * dispersion))
#> [1] 5.0 37.5
(theoryMoments <- c(rs$shape / rs$rate, rs$shape / rs$rate^2))
#> [1] 5.0 37.5