Maximum likelihood estimates (MLE) for two independent negative binomial outcomes.
mle_nb_null(
data,
equal_dispersion = FALSE,
ratio_null = 1,
method = "nlm_constrained",
...
)mle_nb_alt(data, equal_dispersion = FALSE, method = "nlm_constrained", ...)
For mle_nb_alt()
, a list with the following elements:
Slot | Name | Description |
1 | mean1 | MLE for mean of group 1. |
2 | mean2 | MLE for mean of group 2. |
3 | ratio | MLE for ratio of means. |
4 | dispersion1 | MLE for dispersion of group 1. |
5 | dispersion2 | MLE for dispersion of group 2. |
6 | equal_dispersion | Were equal dispersions assumed. |
7 | n1 | Sample size of group 1. |
8 | n2 | Sample size of group 2. |
9 | nll | Minimum of negative log-likelihood. |
10 | nparams | Number of estimated parameters. |
11 | method | Method used for the results. |
12 | mle_method | Method used for optimization. |
13 | mle_code | Integer indicating why the optimization process terminated. |
14 | mle_message | Additional information from the optimizer. |
For mle_nb_null()
, a list with the following elements:
Slot | Name | Description |
1 | mean1 | MLE for mean of group 1. |
2 | mean2 | MLE for mean of group 2. |
3 | ratio_null | Population ratio of means assumed for null hypothesis.
mean2 = mean1 * ratio_null . |
4 | dispersion1 | MLE for dispersion of group 1. |
5 | dispersion2 | MLE for dispersion of group 2. |
6 | equal_dispersion | Were equal dispersions assumed. |
7 | n1 | Sample size of group 1. |
8 | n2 | Sample size of group 2. |
9 | nll | Minimum of negative log-likelihood. |
10 | nparams | Number of estimated parameters. |
11 | method | Method used for the results. |
12 | mle_method | Method used for optimization. |
13 | mle_code | Integer indicating why the optimization process terminated. |
14 | mle_message | Additional information from the optimizer. |
(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()
.
(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.
(Scalar numeric: 1
; (0, Inf)
)
The ratio of means assumed under the null hypothesis (group 2 / group 1).
Typically ratio_null = 1
(no difference).
(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.
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
.
rettiganti_2012depower
aban_2009depower
sim_nb()
, nll_nb
#----------------------------------------------------------------------------
# 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