R/utility.R
negbinomGetSizeProb.RdConvert negative binomial mean and dispersion parameters to size and prob parameters
negbinomGetSizeProb(mean, dispersion)A list that includes the size and prob parameters of the neg binom distribution
In simstudy, users specify the negative binomial distribution as a function of two parameters - a mean and dispersion. In this case, the variance of the specified distribution is mean + (mean^2)*dispersion. The base R function rnbinom uses the size and prob parameters to specify the negative binomial distribution. This function converts the mean and dispersion into the size and probability parameters.
set.seed(12345)
mean <- 5
dispersion <- 0.5
sp <- negbinomGetSizeProb(mean, dispersion)
c(sp$size, sp$prob)
#> [1] 2.0000000 0.2857143
vec <- rnbinom(1000, size = sp$size, prob = sp$prob)
(estMoments <- c(mean(vec), var(vec)))
#> [1] 5.08500 18.87865
(theoryMoments <- c(mean, mean + mean^2 * dispersion))
#> [1] 5.0 17.5
(theoryMoments <- c(sp$size * (1 - sp$prob) / sp$prob, sp$size * (1 - sp$prob) / sp$prob^2))
#> [1] 5.0 17.5