LabToolsThe Research Infrastructure
  • Features
  • Demo
  • Technology
  • Examples
  • White Paper
  • FiTrace
  • Data Analysis ↗
  • Calculators
  • Scheduler
Download
FeaturesDemoTechnologyExamplesWhite PaperFiTraceData Analysis ↗CalculatorsSchedulerHealth Tracker ↗

All examples · Example 29 of 34

ROC CurveClinicalStatistical report

ROC Curve: Diagnostic Biomarker

Receiver operating characteristic curve for a biomarker score distinguishing 123 cases from 177 controls; dashed line is chance.

Receiver operating characteristic curve for a biomarker score distinguishing 123 cases from 177 controls; dashed line is chance.

Key findings

  • AUC = 0.846, computed from the Mann–Whitney U statistic (123 cases, 177 controls), p = 1.9 × 10⁻²⁴ against chance (AUC = 0.5).
  • Hedges' g = 1.44: the case and control score distributions still overlap substantially, which is why a single cut-off trades sensitivity against specificity.
17 LabTools stats calls
7 of 15 stats methods
LabTools 0.14.3
600 dpi PNG Data (CSV) Raw LabTools output
In this reportDescriptive statisticsNormalityEqual variancesCases vs controlsThe ROC curve is a Mann–Whitney test

Descriptive statistics

Location, spread and shape for every group — the first thing to read before choosing a test. Skewness near 0 and excess kurtosis near 0 are what a normal distribution looks like.

GroupnMeanSDSEMMedianQ1 – Q3Min – MaxSkewnessExcess kurtosis
Cases1231.3030.96630.087121.3180.649 – 1.943-0.992 – 3.5610.0718-0.373
Controls177-0.06570.93380.07019-0.085-0.582 – 0.574-2.918 – 2.69-0.1840.539
LabTools call
stats.describe
labtools stats describe --groups @groups.json

The same method is available as an MCP tool (stats_describe) and from the desktop app's statistics panel.

Normality

Three tests of the same question — could these values come from a normal distribution? Shapiro–Wilk has the best power at bench sample sizes, Anderson–Darling is more sensitive in the tails, and Kolmogorov–Smirnov (Lilliefors-corrected) is included for comparability with older papers. A significant p means normality is rejected.

GroupnShapiro–Wilk WpAnderson–Darling A²pK–S DpVerdict
Cases1230.99180.690.19890.880.043250.83Consistent with normal
Controls1770.99130.360.3530.460.049790.35Consistent with normal
LabTools calls (3)
stats.normality
labtools stats normality --groups @groups.json --method shapiro-wilk
stats.normality
labtools stats normality --groups @groups.json --method anderson-darling
stats.normality
labtools stats normality --groups @groups.json --method kolmogorov-smirnov

The same method is available as an MCP tool (stats_normality) and from the desktop app's statistics panel.

Equal variances

Student's t and one-way ANOVA assume every group has the same spread. LabTools' Levene test uses deviations from the group median (the Brown–Forsythe form), which stays reliable on skewed data; Bartlett's test is more powerful but only trustworthy when the data are normal. A significant p means the equal-variance assumption fails — prefer Welch's t-test or a rank-based test.

TestStatisticpLargest / smallest varianceVerdict
Levene (Brown–Forsythe, median-centred)0.6570.421.07Homogeneous
Bartlett0.16850.681.07Homogeneous
LabTools calls (2)
stats.levene
labtools stats levene --groups @groups.json --method levene
stats.levene
labtools stats levene --groups @groups.json --method bartlett

The same method is available as an MCP tool (stats_levene) and from the desktop app's statistics panel.

LabTools notes

  • Non-significant. This test has low power on small samples, so treat this as 'no evidence against equal variances', not as evidence for them.
  • Bartlett's test assumes normality and is badly inflated when that fails — confirm with stats.normality, or use method='levene'.

Cases vs controls

The same comparison three ways. Welch's t-test (the LabTools default) does not assume equal variances; Student's pools them; Mann–Whitney compares ranks and needs no normality. When they agree the conclusion is robust to the choice.

TestStatisticdfpMean difference (Cases − Controls)95% CI of difference
Welch t-testt = 12.23256.82.0 × 10⁻²⁷1.369[1.148, 1.589]
Student t-testt = 12.312982.0 × 10⁻²⁸1.369[1.15, 1.587]
Mann–Whitney UU = 18,425—1.9 × 10⁻²⁴——
LabTools calls (3)
stats.ttest
labtools stats ttest --a @Cases.json --b @Controls.json --test welch
stats.ttest
labtools stats ttest --a @Cases.json --b @Controls.json --test student
stats.mannwhitney
labtools stats mannwhitney --a @Cases.json --b @Controls.json

The same method is available as an MCP tool (stats_ttest) and from the desktop app's statistics panel.

Effect sizes — how big, not just whether

MeasureEstimate95% CIMagnitude
Hedges' g (bias-corrected)1.44[1.183, 1.697]very large
Cohen's d1.44—very large
Glass's Δ (scaled by the Cases SD)1.42—very large
Cliff's δ (non-parametric)0.693—large
LabTools calls (4)
stats.effectsize
labtools stats effectsize --a @Cases.json --b @Controls.json --measure hedges-g
stats.effectsize
labtools stats effectsize --a @Cases.json --b @Controls.json --measure cohens-d
stats.effectsize
labtools stats effectsize --a @Controls.json --b @Cases.json --measure glass-delta
stats.effectsize
labtools stats effectsize --a @Cases.json --b @Controls.json --measure cliffs-delta

The same method is available as an MCP tool (stats_effectsize) and from the desktop app's statistics panel.

Design sensitivity

d = 0.33
Minimum detectable effect (80% power, α = 0.05)
n = 123 vs 177
98.9%
Power to detect d = 0.5
100.0%
Power to detect d = 0.8
100.0%
Power to detect d = 1.2
LabTools calls (2)
stats.power
labtools stats power --n1 123 --n2 177 --mode mde --power 0.8
stats.power
labtools stats power --n1 123 --n2 177 --effect-size 0.5

The same method is available as an MCP tool (stats_power) and from the desktop app's statistics panel.

The ROC curve is a Mann–Whitney test

The area under the ROC curve equals the probability that a randomly chosen case scores higher than a randomly chosen control — which is exactly what the Mann–Whitney U statistic counts. AUC = U / (n_cases × n_controls), and Cliff's δ = 2·AUC − 1. So the AUC comes with a p-value for free.

0.846
AUC from Mann–Whitney U
U = 18,425 of 21,771 pairs
0.846
AUC from Cliff's δ
δ = 0.693
1.9 × 10⁻²⁴
p (H0: AUC = 0.5)
Mann–Whitney, two-sided

Methods paragraph

Written to go straight into a manuscript.

The biomarker discriminated cases from controls with AUC = 0.846 (Mann–Whitney U = 18,425, p < 0.0001).

Every number on this page was computed by the LabTools statistics engine (version 0.14.3) from the example's CSV on 2026-09-23. Where a value was derived before the data reached LabTools (replicate means, paired differences, log odds ratios), the text says so. The data are simulated from a fixed random seed.

Kaplan–Meier Survival CurveVolcano Plot: RNA-seq

Get started

Run the same analysis on your data

Every test on this page is built into LabTools — from the statistics panel, the command line, or an AI assistant through MCP.

Download freeMore examples

LabTools

The research infrastructure: plot to figure to manuscript in one place. Free for academic and individual use.

Product

  • Features
  • Technology
  • Demo & Tutorials
  • Examples
  • Download

Support

  • Contact Support
  • Help Center

Filliaux Industries

  • filliaux.com
  • Data Analysis
  • Health Tracker

Stay updated

Research tips, product updates, and release notes. No spam.

© 2026 Filliaux Industries · LabToolsPrivacyTermsCookiesLinkedIn