Likelihood ratio test for the ratio of means from two independent negative binomial outcomes.
lrt_nb(data, equal_dispersion = FALSE, ratio_null = 1, ...)
A list with the following elements:
Slot | Subslot | Name | Description |
1 | chisq | \(\chi^2\) test statistic for the ratio of means. | |
2 | df | Degrees of freedom. | |
3 | p | p-value. | |
4 | ratio | Estimated ratio of means (group 2 / group 1). | |
5 | alternative | Point estimates under the alternative hypothesis. | |
5 | 1 | mean1 | Estimated mean of group 1. |
5 | 2 | mean2 | Estimated mean of group 2. |
5 | 3 | dispersion1 | Estimated dispersion of group 1. |
5 | 4 | dispersion2 | Estimated dispersion of group 2. |
6 | null | Point estimates under the null hypothesis. | |
6 | 1 | mean1 | Estimated mean of group 1. |
6 | 2 | mean2 | Estimated mean of group 2. |
6 | 3 | dispersion1 | Estimated dispersion of group 1. |
6 | 4 | dispersion2 | Estimated dispersion of group 2. |
7 | n1 | Sample size of group 1. | |
8 | n2 | Sample size of group 2. | |
9 | method | Method used for the results. | |
10 | equal_dispersion | Whether or not equal dispersions were assumed. | |
11 | ratio_null | Assumed population ratio of means. | |
12 | mle_code | Integer indicating why the optimization process terminated. | |
13 | mle_message | 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 LRT is calculated assuming both groups have the same
population dispersion parameter. If FALSE
(default), the LRT is
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). See 'Details' for
additional information.
Optional arguments passed to the MLE function mle_nb()
.
This function is primarily designed for speed in simulation. Missing values are silently excluded.
Suppose \(X_1 \sim NB(\mu, \theta_1)\) and \(X_2 \sim 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 hypotheses for the LRT of \(r\) are
$$ \begin{aligned} H_{null} &: r = r_{null} \\ H_{alt} &: r \neq r_{null} \end{aligned} $$
where \(r = \frac{\bar{X}_2}{\bar{X}_1}\) is the population ratio of arithmetic means for group 2 with respect to group 1 and \(r_{null}\) is a constant for the assumed null population ratio of means (typically \(r_{null} = 1\)).
The LRT statistic is
$$ \begin{aligned} \lambda &= -2 \ln \frac{\text{sup}_{\Theta_{null}} L(r, \mu, \theta_1, \theta_2)}{\text{sup}_{\Theta} L(r, \mu, \theta_1, \theta_2)} \\ &= -2 \left[ \ln \text{sup}_{\Theta_{null}} L(r, \mu, \theta_1, \theta_2) - \ln \text{sup}_{\Theta} L(r, \mu, \theta_1, \theta_2) \right] \\ &= -2(l(r_{null}, \tilde{\mu}, \tilde{\theta}_1, \tilde{\theta}_2) - l(\hat{r}, \hat{\mu}, \hat{\theta}_1, \hat{\theta}_2)) \end{aligned} $$
Under \(H_{null}\), the LRT test statistic is asymptotically distributed as \(\chi^2_1\). The approximate level \(\alpha\) test rejects \(H_{null}\) if \(\lambda \geq \chi^2_1(1 - \alpha)\). Note that the asymptotic critical value is known to underestimate the exact critical value. Hence, the nominal significance level may not be achieved for small sample sizes (possibly \(n \leq 10\) or \(n \leq 50\)).
rettiganti_2012depower
aban_2009depower
#----------------------------------------------------------------------------
# lrt_nb() examples
#----------------------------------------------------------------------------
library(depower)
set.seed(1234)
sim_nb(
n1 = 60,
n2 = 40,
mean1 = 10,
ratio = 1.5,
dispersion1 = 2,
dispersion2 = 8
) |>
lrt_nb()
Run the code above in your browser using DataLab