Learn R Programming

DMAR (version 1.0.0)

nnt_from_smd: Number Needed to Treat (NNT) From Cohen's d

Description

Converts a standardized mean difference (Cohen's d) into the number needed to treat (NNT) using the Kraemer-Kupfer (2006) framework, which connects d to the success-rate difference (SRD) under the assumption of a continuous, normally distributed outcome with equal variances and a hypothetical median-cut criterion for treatment success. When a confidence interval on d is supplied (or noncentrality parameters / sample sizes are provided so that one can be constructed), the bounds are propagated through the same conversion to give a CI on the NNT.

Usage

nnt_from_smd(
  smd,
  n_1 = NULL,
  n_2 = NULL,
  conf_level = 0.95,
  smd_lower = NULL,
  smd_upper = NULL
)

Value

A data.frame with rows for the success-rate difference (srd), the point estimate of NNT (nnt), and (when an interval is constructable) the lower and upper NNT limits. When the lower CI on d is exactly zero, the corresponding NNT bound is reported as Inf; when it is negative, that bound is a finite negative value (the NNT to harm), so a CI on d that spans zero yields an NNT interval passing through the infinite point that separates benefit from harm.

Arguments

smd

Sample standardized mean difference (Cohen's d); a numeric scalar. Positive values correspond to the treatment group exceeding the control group.

n_1, n_2

Sample sizes in the treatment and control groups; both required when a noncentral t-based CI on the NNT is desired.

conf_level

Confidence level for the CI on the NNT (when n_1 and n_2 are supplied). Default 0.95.

smd_lower, smd_upper

Optional pre-computed confidence limits on d. If supplied, these are used directly to propagate the interval through the SRD-to-NNT map and the noncentral t computation is skipped.

Author

Ken Kelley [email protected]

Details

The conversion. Under bivariate normality with equal variances, Kraemer & Kupfer (2006) showed that the proportion of times a randomly drawn treatment-group observation exceeds a randomly drawn control-group observation is $$p \;=\; \Pr(Y_T > Y_C) \;=\; \Phi\!\bigl(d / \sqrt{2}\bigr),$$ from which the success-rate difference (their effect size) is $$\mathrm{SRD} \;=\; 2 p - 1 \;=\; 2 \Phi\!\bigl(d / \sqrt{2}\bigr) - 1,$$ and the number needed to treat is its reciprocal, $$\mathrm{NNT} \;=\; 1 / \mathrm{SRD}.$$ Larger d produces smaller NNT; \(d = 0\) produces \(\mathrm{NNT} = \infty\) (no advantage). The conversion is monotone, so the SRD/NNT confidence interval is obtained by applying the same transformation to the endpoints of the CI on d; the lower NNT limit comes from the upper d limit and vice versa (Furukawa & Leucht, 2011).

When NNT becomes infinite or negative. If the lower CI on d is exactly zero, the corresponding upper NNT bound is Inf: the data do not exclude the possibility that the treatment produces no advantage (or even harm). Negative values of d are allowed; the function returns negative NNT values which are conventionally read as the NNT to harm.

Assumption check. The Kraemer-Kupfer conversion assumes a continuous, normally distributed outcome with equal variances across groups. For skewed outcomes, ordinal outcomes, or unequal variances, the empirical common-language effect size cles or the Vargha-Delaney A statistic is more defensible. Furukawa & Leucht (2011) compare four methods and recommend the Kraemer-Kupfer formula as the most accurate under normality.

References

Furukawa, T. A., & Leucht, S. (2011). How to obtain NNT from Cohen's d: Comparison of four methods. PLoS ONE, 6(4), e19070. tools:::Rd_expr_doi("10.1371/journal.pone.0019070")

Kelley, K. (2007). Confidence intervals for standardized effect sizes: Theory, application, and implementation. Journal of Statistical Software, 20(8), 1--24. (The noncentral t interval on the standardized mean difference that is mapped to the NNT here.) tools:::Rd_expr_doi("10.18637/jss.v020.i08")

Kraemer, H. C., & Kupfer, D. J. (2006). Size of treatment effects and their importance to clinical research and practice. Biological Psychiatry, 59(11), 990--996. tools:::Rd_expr_doi("10.1016/j.biopsych.2005.09.014")

See Also

smd, ci_smd, cles

Other effect size estimates: cles(), cliff_delta(), correction_for_attenuation(), eta_squared(), eta_squared_generalized(), eta_squared_partial(), expected_partial_r(), expected_r(), expected_smd(), omega_squared(), omega_squared_partial(), probability_of_superiority_paired(), proportion_of_superiority(), responder_analysis(), smd_trimmed()

Examples

Run this code
# 1. Point estimate only.
nnt_from_smd(smd = 0.5)

# 2. With a noncentral t CI from sample sizes:
nnt_from_smd(smd = 0.5, n_1 = 50, n_2 = 50, conf_level = 0.95)

# 3. With pre-computed CI on d:
nnt_from_smd(smd = 0.5, smd_lower = 0.20, smd_upper = 0.80)

# 4. Lower d below zero: upper NNT bound is a finite negative value (NNT to harm).
nnt_from_smd(smd = 0.3, smd_lower = -0.10, smd_upper = 0.70)

Run the code above in your browser using DataLab