Responder measures from a pooled relative effect
Source:R/responder-from-effect.R
responder_from_effect.RdConverts 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.
Arguments
- estimate
Single number: the pooled relative effect (Hedges' g for
measure = "SMD", or a mean difference formeasure = "MD"), experimental minus control.- se
Standard error of
estimate. IfNULLandciis alsoNULL, 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 withmeanandsd(and optionallyn) 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
baselineis 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
baselineis a mean and SD. The MD conversion requiresdist = "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 whenciis not supplied.- label
Optional label placed in the
methodcolumn 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.