Skip to contents

Converts a single pooled relative effect, a standardized mean difference (Hedges' g) or a mean difference, into absolute responder measures: the experimental responder proportion and the between-arm risk difference, risk ratio, odds ratio and number needed to treat. This is the engine used by the meta-analysis-object methods of responder_analysis() and is also useful on its own when you only have a pooled estimate (for example, lifted from a published meta-analysis) and a baseline control responder risk.

Usage

responder_from_effect(
  estimate,
  se = NULL,
  measure = c("SMD", "MD"),
  baseline,
  mid = NULL,
  direction = c("higher", "lower"),
  sd_ref = NULL,
  dist = c("normal", "lognormal", "t"),
  df = NULL,
  ci = NULL,
  conf_level = 0.95,
  label = NULL
)

Arguments

estimate

Single number: the pooled relative effect (Hedges' g for measure = "SMD", or a mean difference for measure = "MD"), experimental minus control.

se

Standard error of estimate. If NULL and ci is also NULL, only point estimates are returned (no intervals).

measure

"SMD" (default) or "MD".

baseline

The control (baseline) responder risk, supplied as either a single probability in (0, 1), or a list with mean and sd (and optionally n) giving the control-arm mean change and SD, from which the control responder proportion is computed at the threshold.

mid

Minimal important difference threshold. Required when baseline is given as a mean and SD.

direction

"higher" (a larger change indicates response) or "lower".

sd_ref

Reference within-arm standard deviation on the original scale. Required for measure = "MD".

dist, df

Change-score distribution and degrees of freedom for the control responder probability when baseline is a mean and SD. The MD conversion requires dist = "normal".

ci

Optional confidence interval for estimate (a length-2 numeric vector), for example a t-based interval from a fitted model. When given, it sets the critical value, so the interval method of the source analysis is kept.

conf_level

Confidence level (default 0.95); used when ci is not supplied.

label

Optional label placed in the method column of the result.

Value

A one-row responder_result in the same schema as responder_analysis().

Details

estimate is the effect as experimental minus control on the outcome's own scale, as reported by meta and metafor; direction says whether a higher change means response, and the effect is oriented accordingly (so a pain reduction, a negative difference with direction = "lower", raises the responder risk).

For a standardized mean difference the effect is mapped to an odds ratio through the logistic distribution, lnOR = (pi / sqrt(3)) * g (Hasselblad and Hedges, 1995; Chinn, 2000; Anzures-Cabrera, Sarpatwari and Higgins, 2011), and combined with the control proportion to recover risks. For a mean difference the experimental proportion is obtained by shifting the control responder probability along the Normal cut-point (Thorlund and colleagues, 2011), which requires a reference within-arm standard deviation sd_ref; this conversion assumes Normal change scores.

When baseline is a fixed probability the intervals are conditional on that assumed control risk (as in a GRADE summary-of-findings table). When it is estimated (a mean and SD with n), its sampling uncertainty is propagated jointly with that of the effect.

References

Thorlund K, Walter SD, Johnston BC, Furukawa TA, Guyatt GH (2011). Pooling health-related quality of life outcomes in meta-analysis: a tutorial and review of methods for enhancing interpretability. Research Synthesis Methods, 2(3), 188 to 203. doi:10.1002/jrsm.46

Anzures-Cabrera J, Sarpatwari A, Higgins JPT (2011). Expressing findings from meta-analyses of continuous outcomes in terms of risks. Statistics in Medicine, 30(25), 2967 to 2985. doi:10.1002/sim.4298

Chinn S (2000). A simple method for converting an odds ratio to effect size for use in meta-analysis. Statistics in Medicine, 19(22), 3127 to 3131.

Examples

# A pooled SMD of 0.5 (SE 0.1) against a 25% control responder rate:
responder_from_effect(0.5, se = 0.1, measure = "SMD", baseline = 0.25)
#> Responder analysis (respondeR)
#>   Percentages; 95% confidence intervals.
#> 
#>  Method   PE   PC                  RD                  RR                  OR
#>     SMD 45.2 25.0 20.2 (11.7 to 29.1) 1.81 (1.47 to 2.16) 2.48 (1.74 to 3.53)
#>                    NNT
#>  NNTB 4.9 (3.4 to 8.6)
#> 
#> Use as.data.frame() for every column, summary() for details, plot() for a forest plot.

# A pooled mean difference of 1.2 (SE 0.3), control mean 0.2, SD 1.3, MID 1:
responder_from_effect(1.2, se = 0.3, measure = "MD",
  baseline = list(mean = 0.2, sd = 1.3), mid = 1, sd_ref = 1.3)
#> Responder analysis (respondeR)
#>   MID = 1 (a higher change is a response)
#>   Percentages; 95% confidence intervals.
#> 
#>  Method   PE   PC                  RD                  RR                  OR
#>      MD 62.1 26.9 35.2 (18.0 to 52.4) 2.31 (1.75 to 3.04) 4.45 (2.14 to 9.24)
#>                    NNT
#>  NNTB 2.8 (1.9 to 5.6)
#> 
#> Use as.data.frame() for every column, summary() for details, plot() for a forest plot.

# Pain (lower is better): a negative SMD is a benefit.
responder_from_effect(-0.5, se = 0.1, baseline = 0.25, direction = "lower")
#> Responder analysis (respondeR)
#>   Percentages; 95% confidence intervals.
#> 
#>  Method   PE   PC                  RD                  RR                  OR
#>     SMD 45.2 25.0 20.2 (11.7 to 29.1) 1.81 (1.47 to 2.16) 2.48 (1.74 to 3.53)
#>                    NNT
#>  NNTB 4.9 (3.4 to 8.6)
#> 
#> Use as.data.frame() for every column, summary() for details, plot() for a forest plot.