MRMCbinary: Multi-reader multi-case analysis of binary diagnostic tests

View source: R/MRMCbinary.R View source: R/MRMCbinary.R

MRMCbinaryR Documentation

Multi-reader multi-case analysis of binary diagnostic tests

Description

MRMCbinary() is the main function of the MRMCbinary package and can be used to compare modality effects (as well as reader effects and modality effects together), as measured by sensitivity and specificity, in multi-reader multi-case (MRMC) studies with binary diagnostic test results.

Usage

MRMCbinary(
  data,
  Modality,
  Reader,
  Case,
  D,
  Y,
  measure,
  effect,
  interaction = NULL,
  reference.Modality = NULL,
  reference.Reader = NULL
)

Arguments

data

A data frame in which contains the modality identifiers (Modality), the reader identifiers (Reader), the case identifiers (Case), the true disease status (D), and the binary diagnostic test result (Y) from a multi-reader multi-case (MRMC) study.

Modality

Variable specifying the modality identifiers.

Reader

Variable specifying the reader identifiers.

Case

Variable specifying the case identifiers.

D

Variable specifying the true disease status, coded as 1 for diseased cases and 0 for non-diseased cases.

Y

Variable specifying the binary diagnostic test result, coded as 1 for test-positive results and 0 for test-negative results.

measure

Diagnostic accuracy measure to be analyzed (one of "All", "Sensitivity", and "Specificity"). "All" analyzes both sensitivity and specificity.

effect

Effect of interest to be evaluated (one of "Modality", "Reader", and "Both"). "Both" evaluates modality effects and reader effects together. See Details.

interaction

Logical indicating whether to include the reader-by-modality interaction effect. Specify this argument only when effect is "Both"; set interaction = TRUE to fit the model with interaction and interaction = FALSE to fit the model without interaction. Default: NULL. See Details.

reference.Modality

Reference level for the modality identifier variable.

reference.Reader

Reference level for the reader identifier variable.

Details

There are three effects that can be evaluated:

  • effect = "Modality": Used when the goal is to evaluate modality effects only. In this case, Cochran's Q test is reported, or McNemar's test when comparing two modalities only. When effect = "Modality", interaction must be NULL.

  • effect = "Reader": Used when the goal is to evaluate reader effects only. In this case, Cochran's Q test is reported, or McNemar's test when comparing two readers only. When effect = "Reader", interaction must be NULL.

  • effect = "Both": Used when the goal is to evaluate modality effects and reader effects together. In this case, interaction must be specified as TRUE or FALSE. Set interaction = FALSE to fit the additive model without reader-by-modality interaction, and set interaction = TRUE to fit the model including the reader-by-modality interaction effect. When interaction = TRUE, Cochran's Q test is reported. When interaction = FALSE, Cochran's Q test or McNemar's test is not reported, because the corresponding Cochran's Q test is linked to the model with interaction rather than the additive model.

See Lee et al. (2026) for details.

Value

An object of class MRMCbinary containing the following components:

CLR_sen

Conditional logistic regression results for sensitivity.

CLR_LRT_sen

Likelihood ratio test results from the conditional logistic regression for sensitivity.

CLR_Score_sen

Score test results from the conditional logistic regression for sensitivity.

CLR_Wald_sen

Wald test results from the conditional logistic regression for sensitivity.

Q_MN_sen

Additional nonparametric test results for sensitivity, when available. For effect = "Modality", this is Cochran's Q test, or McNemar's test when comparing two modalities only. For effect = "Reader", this is Cochran's Q test, or McNemar's test when comparing two readers only. For effect = "Both" with interaction = TRUE, this is Cochran's Q test for reader effects, modality effects, and their interaction together. This component is not reported when effect = "Both" and interaction = FALSE.

CLR_spe

Conditional logistic regression results for specificity.

CLR_LRT_spe

Likelihood ratio test results from the conditional logistic regression for specificity.

CLR_Score_spe

Score test results from the conditional logistic regression for specificity.

CLR_Wald_spe

Wald test results from the conditional logistic regression for specificity.

Q_MN_spe

Additional nonparametric test results for specificity, when available. For effect = "Modality", this is Cochran's Q test, or McNemar's test when comparing two modalities only. For effect = "Reader", this is Cochran's Q test, or McNemar's test when comparing two readers only. For effect = "Both" with interaction = TRUE, this is Cochran's Q test for reader effects, modality effects, and their interaction together. This component is not reported when effect = "Both" and interaction = FALSE.

formula

Formula used in the conditional logistic regression.

args

List of arguments used in the MRMCbinary function.

n.modality

Total number of modalities.

n.reader

Total number of readers.

n.case

Total number of cases.

effect

Effect evaluated in the analysis.

measure

Diagnostic accuracy measure analyzed.

interaction

Interaction setting used in the analysis. This is TRUE or FALSE when effect = "Both", and NULL otherwise.

reference.Modality

Reference level for the modality identifier variable.

reference.Reader

Reference level for the reader identifier variable.

n.diseased

Number of diseased cases. If measure = "Specificity", this is NULL.

n.nondiseased

Number of non-diseased cases. If measure = "Sensitivity", this is NULL.

n.pos.diseased

Number of test-positive cases among diseased cases. If measure = "Specificity", this is NULL.

n.pos.nondiseased

Number of test-positive cases among non-diseased cases. If measure = "Sensitivity", this is NULL.

The results for MRMCbinary objects can be printed with print.MRMCbinary and summarized with summary.MRMCbinary.

Note: When comparing specificities, the reported estimates are based on the false positive fraction (FPF), because the model for non-diseased cases targets \mbox{logit}(\mbox{FPF}). Hence, a positive coefficient implies lower specificity than the reference. For the Estimate and confidence interval reported by print.MRMCbinary, interpretation on the specificity scale requires reversing the sign of the reported log odds ratio and confidence interval limits. Equivalently, for the odds ratio and confidence interval reported by summary.MRMCbinary, if the reported values are OR and (L, U), then the corresponding specificity odds ratio and confidence interval are 1/OR and (1/U, 1/L), respectively.

References

Lee, S., Jang, S., and Lee, W. (2026). Evaluating Diagnostic Accuracy of Binary Medical Tests in Multi-Reader Multi-Case Study. Statistics in Medicine, 45(6–7), e70471. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/sim.70471")}

See Also

print.MRMCbinary, summary.MRMCbinary

Examples

## Load example data
data(VanDyke)

## Return the first parts of an object
head(VanDyke)

## See unique readers
unique(VanDyke$reader)

## See unique modalities
unique(VanDyke$treatment)

## Create binary test results (Y_ijk)
VanDyke$Y <- as.numeric(VanDyke$rating >= 3)

## Example usage of MRMCbinary function:
# When comparing the sensitivities and specificities between modalities
modality_result <- MRMCbinary(data = VanDyke, Modality = treatment, Reader = reader,
                              Case = case, D = truth, Y = Y, measure = "All",
                              effect = "Modality", interaction = NULL,
                              reference.Modality = "1", reference.Reader = NULL)

# When comparing the sensitivities and specificities between readers
reader_result <- MRMCbinary(data = VanDyke, Modality = treatment, Reader = reader,
                            Case = case, D = truth, Y = Y, measure = "All",
                            effect = "Reader", interaction = NULL,
                            reference.Modality = NULL, reference.Reader = "1")

# When comparing the sensitivities and specificities
#  between modalities and between readers together
#  not considering interaction between modalities and readers
both_result_wo_int <- MRMCbinary(data = VanDyke, Modality = treatment, Reader = reader,
                                 Case = case, D = truth, Y = Y, measure = "All",
                                 effect = "Both", interaction = FALSE,
                                 reference.Modality = "1", reference.Reader = "1")

# When comparing the sensitivities and specificities
#  between modalities and between readers together
#  considering interaction between modalities and readers
both_result_with_int <- MRMCbinary(data = VanDyke, Modality = treatment, Reader = reader,
                                   Case = case, D = truth, Y = Y, measure = "All",
                                   effect = "Both", interaction = TRUE,
                                   reference.Modality = "1", reference.Reader = "1")


MRMCbinary documentation built on March 23, 2026, 5:07 p.m.