Learn R Programming

depower (version 2025.1.20)

mle_nb: MLE for NB

Description

Maximum likelihood estimates (MLE) for two independent negative binomial outcomes.

Usage

mle_nb_null(
  data,
  equal_dispersion = FALSE,
  ratio_null = 1,
  method = "nlm_constrained",
  ...
)

mle_nb_alt(data, equal_dispersion = FALSE, method = "nlm_constrained", ...)

Value

  • For mle_nb_alt(), a list with the following elements:

    SlotNameDescription
    1mean1MLE for mean of group 1.
    2mean2MLE for mean of group 2.
    3ratioMLE for ratio of means.
    4dispersion1MLE for dispersion of group 1.
    5dispersion2MLE for dispersion of group 2.
    6equal_dispersionWere equal dispersions assumed.
    7n1Sample size of group 1.
    8n2Sample size of group 2.
    9nllMinimum of negative log-likelihood.
    10nparamsNumber of estimated parameters.
    11methodMethod used for the results.
    12mle_methodMethod used for optimization.
    13mle_codeInteger indicating why the optimization process terminated.
    14mle_messageAdditional information from the optimizer.
  • For mle_nb_null(), a list with the following elements:

    SlotNameDescription
    1mean1MLE for mean of group 1.
    2mean2MLE for mean of group 2.
    3ratio_nullPopulation ratio of means assumed for null hypothesis. mean2 = mean1 * ratio_null.
    4dispersion1MLE for dispersion of group 1.
    5dispersion2MLE for dispersion of group 2.
    6equal_dispersionWere equal dispersions assumed.
    7n1Sample size of group 1.
    8n2Sample size of group 2.
    9nllMinimum of negative log-likelihood.
    10nparamsNumber of estimated parameters.
    11methodMethod used for the results.
    12mle_methodMethod used for optimization.
    13mle_codeInteger indicating why the optimization process terminated.
    14mle_messageAdditional information from the optimizer.

Arguments

data

(list)
A list whose first element is the vector of negative binomial values from group 1 and the second element is the vector of negative binomial values from group 2. NAs are silently excluded. The default output from sim_nb().

equal_dispersion

(Scalar logical: FALSE)
If TRUE, the MLEs are calculated assuming both groups have the same population dispersion parameter. If FALSE (default), the MLEs are calculated assuming different dispersions.

ratio_null

(Scalar numeric: 1; (0, Inf))
The ratio of means assumed under the null hypothesis (group 2 / group 1). Typically ratio_null = 1 (no difference).

method

(string: "nlm_constrained")
The optimization method. Must choose one of "nlm", "nlm_constrained", "optim", or "optim_constrained". The default bounds for constrained optimization are [1e-03, 1e06].

...

Optional arguments passed to the optimization method.

Details

These functions are primarily designed for speed in simulation. Missing values are silently excluded.

Suppose \(X_1 \sim \text{NB}(\mu, \theta_1)\) and \(X_2 \sim \text{NB}(r\mu, \theta_2)\), where \(X_1\) and \(X_2\) are independent, \(X_1\) is the count outcome for items in group 1, \(X_2\) is the count outcome for items in group 2, \(\mu\) is the arithmetic mean count in group 1, \(r\) is the ratio of arithmetic means for group 2 with respect to group 1, \(\theta_1\) is the dispersion parameter of group 1, and \(\theta_2\) is the dispersion parameter of group 2.

The MLEs of \(r\) and \(\mu\) are \(\hat{r} = \frac{\bar{x}_2}{\bar{x}_1}\) and \(\hat{\mu} = \bar{x}_1\). The MLEs of \(\theta_1\) and \(\theta_2\) are found by maximizing the profile log-likelihood \(l(\hat{r}, \hat{\mu}, \theta_1, \theta_2)\) with respect to \(\theta_1\) and \(\theta_2\). When \(r = r_{null}\) is known, the MLE of \(\mu\) is \(\tilde{\mu} = \frac{n_1 \bar{x}_1 + n_2 \bar{x}_2}{n_1 + n_2}\) and \(\tilde{\theta}_1\) and \(\tilde{\theta}_2\) are obtained by maximizing the profile log-likelihood \(l(r_{null}, \tilde{\mu}, \theta_1, \theta_2)\).

The backend method for numerical optimization is controlled by argument method which refers to stats::nlm(), stats::nlminb(), or stats::optim(). If you would like to see warnings from the optimizer, include argument warnings = TRUE.

References

rettiganti_2012depower

aban_2009depower

See Also

sim_nb(), nll_nb

Examples

Run this code
#----------------------------------------------------------------------------
# mle_nb() examples
#----------------------------------------------------------------------------
library(depower)

d <- sim_nb(
  n1 = 60,
  n2 = 40,
  mean1 = 10,
  ratio = 1.5,
  dispersion1 = 2,
  dispersion2 = 8
)

mle_alt <- d |>
  mle_nb_alt()

mle_null <- d |>
  mle_nb_null()

mle_alt
mle_null

Run the code above in your browser using DataLab