Maximum likelihood estimates (MLE) for bivariate negative binomial outcomes.
mle_bnb_null(data, ratio_null = 1, method = "nlm_constrained", ...)mle_bnb_alt(data, method = "nlm_constrained", ...)
For mle_bnb_alt, a list with the following elements:
| Slot | Name | Description |
| 1 | mean1 | MLE for mean of sample 1. |
| 2 | mean2 | MLE for mean of sample 2. |
| 3 | ratio | MLE for ratio of means. |
| 4 | dispersion | MLE for BNB dispersion. |
| 5 | nll | Minimum of negative log-likelihood. |
| 6 | nparams | Number of estimated parameters. |
| 7 | n1 | Sample size of sample 1. |
| 8 | n2 | Sample size of sample 2. |
| 9 | method | Method used for the results. |
| 10 | mle_method | Method used for optimization. |
| 11 | mle_code | Integer indicating why the optimization process terminated. |
| 12 | mle_message | Additional information from the optimizer. |
For mle_bnb_null, a list with the following elements:
| Slot | Name | Description |
| 1 | mean1 | MLE for mean of sample 1. |
| 2 | mean2 | MLE for mean of sample 2. |
| 3 | ratio_null | Population ratio of means assumed for null hypothesis.
mean2 = mean1 * ratio_null. |
| 4 | dispersion | MLE for BNB dispersion. |
| 5 | nll | Minimum of negative log-likelihood. |
| 6 | nparams | Number of estimated parameters. |
| 7 | n1 | Sample size of sample 1. |
| 8 | n2 | Sample size of sample 2. |
| 9 | method | Method used for the results. |
| 10 | mle_method | Method used for optimization. |
| 11 | mle_code | Integer indicating why the optimization process terminated. |
| 12 | mle_message | Additional information from the optimizer. |
(list)
A list whose first element is the vector of negative binomial values
from sample 1 and the second element is the vector of negative
binomial values from sample 2.
Each vector must be sorted by the subject/item index and must be the
same sample size. NAs are silently excluded. The default
output from sim_bnb().
(Scalar numeric: 1; (0, Inf))
The ratio of means assumed under the null hypothesis (sample 2 / sample 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 \mid G = g \sim \text{Poisson}(\mu g)\) and \(X_2 \mid G = g \sim \text{Poisson}(r \mu g)\) where \(G \sim \text{Gamma}(\theta, \theta^{-1})\) is the random item (subject) effect. Then \(X_1, X_2 \sim \text{BNB}(\mu, r, \theta)\) is the joint distribution where \(X_1\) and \(X_2\) are dependent (though conditionally independent), \(X_1\) is the count outcome for sample 1 of the items (subjects), \(X_2\) is the count outcome for sample 2 of the items (subjects), \(\mu\) is the conditional mean of sample 1, \(r\) is the ratio of the conditional means of sample 2 with respect to sample 1, and \(\theta\) is the gamma distribution shape parameter which controls the dispersion and the correlation between sample 1 and 2.
The MLEs of \(r\) and \(\mu\) are \(\hat{r} = \frac{\bar{x}_2}{\bar{x}_1}\) and \(\hat{\mu} = \bar{x}_1\). The MLE of \(\theta\) is found by maximizing the profile log-likelihood \(l(\hat{r}, \hat{\mu}, \theta)\) with respect to \(\theta\). When \(r = r_{null}\) is known, the MLE of \(\mu\) is \(\tilde{\mu} = \frac{\bar{x}_1 + \bar{x}_2}{1 + r_{null}}\) and \(\tilde{\theta}\) is obtained by maximizing the profile log-likelihood \(l(r_{null}, \tilde{\mu}, \theta)\) with respect to \(\theta\).
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_bnb(), nll_bnb
#----------------------------------------------------------------------------
# mle_bnb() examples
#----------------------------------------------------------------------------
library(depower)
set.seed(1234)
d <- sim_bnb(
n = 40,
mean1 = 10,
ratio = 1.2,
dispersion = 2
)
mle_alt <- d |>
mle_bnb_alt()
mle_null <- d |>
mle_bnb_null()
mle_alt
mle_null
Run the code above in your browser using DataLab