The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
The anchor-based approach is one of the most intuitive methods for evaluating clinical significance. It answers a straightforward question: “Did the patient’s change on an outcome measure meet or exceed a predefined threshold for what is considered meaningful?”
This threshold is known as the Minimal Important Difference (MID). The MID is the smallest change in a score that patients perceive as beneficial. It serves as an external “anchor” to determine if an observed change is practically relevant.
This vignette will guide you through using the
cs_anchor() function to perform both individual- and
group-level analyses using this approach.
At the individual level, we classify each participant based on whether their change score crosses the MID.
We will use the claus_2020 dataset, which contains data
from a study on enhancing the placebo effect of antidepressants. The
primary outcome was the Beck Depression Inventory (BDI-II), where lower
scores indicate improvement. For the BDI-II, a change of 7
points is often considered the MID.
The claus_2020 dataset has four measurements per
patient. For a pre-post analysis, we must specify which time points to
compare using the pre and post arguments.
# Analyze individual change from the first to the fourth measurement
anchor_individual <- claus_2020 |>
cs_anchor(
id = id,
time = time,
outcome = bdi,
pre = 1,
post = 4,
mid_improvement = 7
)
# Print the summary table
anchor_individual
#>
#> ---- Clinical Significance Results ----
#>
#> Approach: Anchor-based
#> MID Improvement: 7
#> MID Deterioration: 7
#> Better is: Lower
#>
#> Category | N | Percent
#> ---------------------------
#> Improved | 25 | 62.50%
#> Unchanged | 11 | 27.50%
#> Deteriorated | 4 | 10.00%The output shows that 62.5% of patients were classified as “Improved” (their BDI-II score decreased by 7 points or more), 27.5% were “Unchanged”, and 10% “Deteriorated”.
A clinical significance plot helps visualize these results. Each point represents a patient.
pre =
post). Points below this line represent improvement for the
BDI-II.post = pre ± MID.The claus_2020 study included a Treatment as Usual (TAU)
group and a Placebo-Amplification (PA) group. We can analyze the
clinical significance for each group by specifying the
group argument.
anchor_grouped <- claus_2020 |>
cs_anchor(
id = id,
time = time,
outcome = bdi,
pre = 1,
post = 4,
mid_improvement = 7,
group = treatment
)
# Print results by group
summary(anchor_grouped)
#>
#> ---- Clinical Significance Results ----
#>
#> Approach: Anchor-based
#> MID Improvement: 7
#> MID Deterioration: 7
#> N (original): 43
#> N (used): 40
#> Percent (used): 93.02%
#> Better is: Lower
#> Outcome: bdi
#>
#> Group | Category | N | Percent | Percent by Group
#> ------------------------------------------------------
#> TAU | Improved | 8 | 20.00% | 42.11%
#> TAU | Unchanged | 7 | 17.50% | 36.84%
#> TAU | Deteriorated | 4 | 10.00% | 21.05%
#> PA | Improved | 17 | 42.50% | 80.95%
#> PA | Unchanged | 4 | 10.00% | 19.05%
#> PA | Deteriorated | 0 | 0.00% | 0.00%
# Plot results by group
plot(anchor_grouped)
The plot clearly shows that more patients in the PA group (yellow
points) achieved a clinically significant improvement compared to the
TAU group (blue points).
Some instruments measure constructs where higher scores are better
(e.g., quality of life). For these, we must set
better_is = "higher". Let’s analyze the who
(WHO-5 Well-Being Index) outcome from the same dataset, assuming an MID
of 4.
anchor_positive <- claus_2020 |>
cs_anchor(
id = id,
time = time,
outcome = who,
pre = 1,
post = 4,
mid_improvement = 4,
better_is = "higher"
)
plot(anchor_positive)
#> Ignoring unknown labels:
#> • colour : "Group"
Now, points above the shaded area represent clinically
significant improvement.
The anchor-based approach can also be applied at the group level to
determine if the average change for a group was clinically
meaningful. cs_anchor() uses a Bayesian framework by
default to generate a credible interval for the mean difference.
We set target = "group" to perform this analysis.
First, let’s assess the average change within each treatment group separately.
anchor_group_within <- claus_2020 |>
cs_anchor(
id = id,
time = time,
outcome = bdi,
pre = 1,
post = 4,
mid_improvement = 7,
target = "group",
group = treatment
)
anchor_group_within
#>
#> ---- Clinical Significance Results ----
#>
#> Approach: Anchor-based (within groups)
#> MID Improvement: 7
#> Better is: Lower
#>
#> Group | Median Difference | Lower | Upper | Ci Level | N | Category
#> ------------------------------------------------------------------------------------------------
#> TAU | -4.18 | -9.20 | 0.53 | 0.95 | 19 | Statistically not significant
#> PA | -13.60 | -18.22 | -9.04 | 0.95 | 21 | Large clinically significant effectThe results indicate that the TAU group’s change was not statistically significant, while the PA group showed a “Large clinically significant effect” because its entire 95% credible interval for the mean change was beyond the MID of -7.
Perhaps the most common use case is comparing the change in an
intervention group relative to a control group. We can do this by
setting effect = "between". The function will calculate the
difference in change scores between the groups.
anchor_group_between <- claus_2020 |>
cs_anchor(
id = id,
time = time,
outcome = bdi,
post = 4, # Only post is needed here, as we compare change scores
mid_improvement = 7,
target = "group",
group = treatment,
effect = "between"
)
anchor_group_between
#>
#> ---- Clinical Significance Results ----
#>
#> Approach: Anchor-based (between groups)
#> MID (Improvement): 7
#> Better is: Lower
#>
#> Group 1 | Group 2 | Median Difference | Lower | Upper | Ci Level | N 1 | N 2 | Category
#> ----------------------------------------------------------------------------------------------------------------------
#> TAU | PA | -10.32 | -18.31 | -2.65 | 0.95 | 19 | 21 | Probably clinically significant effectThe analysis shows a “Probably clinically significant effect” in favor of the PA group. The average difference between the groups exceeded the MID, but the MID was still within the 95% credible interval.
The anchor-based approach provides a highly interpretable assessment of meaningful change, but its use depends on having a well-established MID for your outcome measure.
cs_anchor() for individual-level
analysis to classify each patient as improved, unchanged, or
deteriorated.cs_anchor(target = "group") for
group-level analysis to assess if the average change
was meaningful.When an MID is not available, other methods are required. The next vignette explores the distribution-based approach, which assesses whether a change is statistically reliable and larger than what might be expected from measurement error alone.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.