Skip to contents

Expresses pooled responder results as absolute effects per 1000 patients at an assumed control (baseline) responder risk, as in a GRADE summary-of-findings table: the control risk, the corresponding intervention risk and the difference, each with a confidence interval, and the relative effect. As GRADE recommends, the absolute effect is derived from the pooled relative effect applied to a representative control risk (Guyatt and colleagues, 2013).

Usage

responder_sof(
  x,
  control_risk = NULL,
  measure = c("OR", "RR", "RD"),
  per = 1000
)

Arguments

x

A result from responder_analysis() or responder_from_effect().

control_risk

Assumed control responder risk(s) in (0, 1). Defaults to the median control-arm responder probability stored in x.

measure

Relative measure used for the conversion: "OR" (default), "RR" or "RD".

per

Denominator for the absolute effects (default 1000).

Value

A responder_sof data frame with one row per method and control risk: method, measure, control_risk, the per-per columns control, intervention, intervention_lb, intervention_ub, difference, difference_lb, difference_ub, and the relative effect relative, relative_lb, relative_ub. Its print() method shows the GRADE wording ("255 more per 1000 (187 more to 324 more)").

Details

The default relative measure is the odds ratio. The cut-point model behind a responder analysis implies a roughly constant effect on the logit (probit) scale, not a constant risk ratio, so the odds ratio transfers across baseline risks best and always yields a valid risk. When responders are common in the control arms, a pooled responder risk ratio is compressed toward 1 and understates the absolute effect at lower baseline risks; use measure = "RR" when a risk ratio is required.

The assumed control risk defaults to the median control-arm responder probability across the studies at the analysis MID. Supply one or more values in control_risk (for example low, moderate and high baseline risk) to get a row for each. The intervention risk is control_risk * RR (measure = "RR"), plogis(qlogis(control_risk) + log(OR)) ("OR") or control_risk + RD ("RD"); its interval applies the measure's bounds to the same control risk. A risk-ratio conversion that would exceed a risk of 1 is reported as NA with a warning (use the odds ratio instead). Certainty ratings are a reviewer judgment and are not produced here.

References

Guyatt GH, Oxman AD, Santesso N, and colleagues (2013). GRADE guidelines: 12. Preparing summary of findings tables: binary outcomes. Journal of Clinical Epidemiology, 66(2), 158 to 172. doi:10.1016/j.jclinepi.2012.01.012

Examples

res <- responder_analysis(sample_responder_data, mid = 1, method = "individual")
responder_sof(res)
#> Summary of findings (responders)
#> 
#>      Method Control risk         Intervention risk
#>  individual 226 per 1000 483 per 1000 (417 to 549)
#>                                Difference        Relative effect
#>  257 more per 1000 (191 more to 324 more) OR 3.20 (2.45 to 4.18)
responder_sof(res, control_risk = c(0.1, 0.3))
#> Summary of findings (responders)
#> 
#>      Method Control risk         Intervention risk
#>  individual 100 per 1000 262 per 1000 (214 to 317)
#>  individual 300 per 1000 578 per 1000 (512 to 642)
#>                                Difference        Relative effect
#>  162 more per 1000 (114 more to 217 more) OR 3.20 (2.45 to 4.18)
#>  278 more per 1000 (212 more to 342 more) OR 3.20 (2.45 to 4.18)
responder_sof(res, measure = "RR")
#> Summary of findings (responders)
#> 
#>      Method Control risk         Intervention risk
#>  individual 226 per 1000 485 per 1000 (404 to 583)
#>                                Difference        Relative effect
#>  259 more per 1000 (178 more to 357 more) RR 2.15 (1.79 to 2.58)