The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
Clinical studies routinely analyse heterogeneous endpoints using different statistical models. Continuous outcomes, binary endpoints, and regression based associations are typically summarised using different reporting conventions, which complicates interpretation and comparison across endpoints and studies.
The evidenceratio package provides a unified reporting
framework. Each analysis reports three quantities derived from a single
likelihood based model:
This vignette demonstrates how a single evidential structure can be applied across common clinical trial endpoints, and how results can be visualised and compared coherently.
Read the SGA-ERRS standard at https://www.swissgenomicsassociation.ch/pages/sga_errs/.
Consider a clinical study with the following endpoints:
Each endpoint requires a different statistical model, but all are analysed and reported using the same evidential summary.
x <- sleep$extra[sleep$group == 1]
res_a <- evidence_test(x)
res_a
#> Evidence test
#>
#> Estimate: 0.75
#> Interval (95%): [-0.3588193, 1.858819]
#> log10 ER: 0.382
#>
#> Model: one-sample normal mean
#> Null hypothesis:mean = 0y <- sleep$extra[sleep$group == 2]
res_b <- evidence_test(x, y)
res_b
#> Evidence test
#>
#> Estimate: -1.58
#> Interval (95%): [-3.244188, 0.08418781]
#> log10 ER: 1.7
#>
#> Model: two-sample normal mean
#> Null hypothesis:mean difference = 0tbl <- matrix(
c(30, 70,
20, 80),
nrow = 2,
byrow = TRUE
)
res_c <- evidence_test(tbl)
res_c
#> Evidence test
#>
#> Estimate: 0.5389965
#> Interval (95%): [-0.1114017, 1.189395]
#> log10 ER: 0.582
#>
#> Model: 2x2 contingency table
#> Null hypothesis:equal proportionsres_d <- evidence_test(
mpg ~ wt,
data = mtcars,
coef = "wt"
)
res_d
#> Evidence test
#>
#> Estimate: -5.344472
#> Interval (95%): [-6.440289, -4.248654]
#> log10 ER: 9.77
#>
#> Model: gaussian regression
#> Null hypothesis:wt = 0joint_df <- data.frame(
panel = factor(
c("A", "B", "C", "D"),
levels = rev(c("A", "B", "C", "D"))
),
label = c(
"One sample mean",
"Two sample comparison",
"Binary endpoint",
"Biomarker association"
),
estimate = c(
res_a$estimate,
res_b$estimate,
res_c$estimate,
res_d$estimate
),
lower = c(
res_a$interval[1],
res_b$interval[1],
res_c$interval[1],
res_d$interval[1]
),
upper = c(
res_a$interval[2],
res_b$interval[2],
res_c$interval[2],
res_d$interval[2]
),
log10_er = c(
res_a$log10_er,
res_b$log10_er,
res_c$log10_er,
res_d$log10_er
)
)
ggplot(joint_df, aes(y = panel, x = estimate)) +
geom_vline(xintercept = 0, linetype = "dashed") +
geom_errorbarh(aes(xmin = lower, xmax = upper), height = 0.25) +
geom_point(size = 2) +
geom_text(
aes(x = upper, label = paste0("log10 ER = ", round(log10_er, 2))),
hjust = -0.1,
size = 3
) +
geom_text(
aes(x = max(upper) * 4, label = label),
hjust = 0,
size = 3
) +
scale_x_continuous(expand = expansion(mult = c(0.05, 0.6))) +
labs(
x = "Effect estimate",
y = ""
)results <- list(
primary_endpoint = res_b,
secondary_endpoint = res_a,
safety_endpoint = res_c,
biomarker_model = res_d
)
forest_df <- data.frame(
endpoint = factor(names(results), levels = rev(names(results))),
estimate = sapply(results, function(r) r$estimate),
lower = sapply(results, function(r) r$interval[1]),
upper = sapply(results, function(r) r$interval[2]),
log10_er = sapply(results, function(r) r$log10_er)
)
ggplot(forest_df, aes(y = endpoint, x = estimate)) +
geom_vline(xintercept = 0, linetype = "dashed") +
geom_errorbarh(aes(xmin = lower, xmax = upper), height = 0.2) +
geom_point(size = 2) +
geom_text(
aes(x = upper, label = paste0("log10 ER = ", round(log10_er, 2))),
hjust = -0.1,
size = 3
) +
labs(
x = "Effect estimate",
y = ""
) +
xlim(-7, 7)Each result should be interpreted using the same three steps:
Because all endpoints share the same evidential scale, results can be compared directly without translating between test specific summaries or thresholds.
The package does not introduce new statistical models or decision rules. It provides a consistent evidential summary derived from standard likelihood based analyses, supporting coherent reporting across endpoints, studies, and research settings.
Swiss Genomics Association. (2026). Evidence Ratio Reporting Standard (SGA-ERRS-1.0.0). Zenodo. https://doi.org/10.5281/zenodo.18261076
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.
Health stats visible at Monitor.