Descriptive Clinical Analysis

Published

Jun 2026

  • ID: CDMS-13
  • Type: Premium
  • Audience: Clinical analysts, applied data scientists, health informatics teams, and clinical research teams
  • Theme: Descriptive clinical analysis turns an analysis-ready dataset into transparent patient summaries before modeling or decision support

Descriptive analysis is the first formal analytical layer after a clinical dataset becomes analysis-ready.

It answers a simple but essential question:

Who is in the dataset, what happened to them, and how complete is the information?

Before risk stratification, prediction, dashboarding, or decision support, a clinical team must understand the population.

A model should not be built before the cohort is described.

A dashboard should not be published before the denominator is known.

A clinical interpretation should not be written before the data structure is understood.


Why Descriptive Analysis Matters

In clinical data systems, descriptive analysis is not just a reporting formality.

It is a safety check.

It helps reveal:

  • unexpected patient distributions
  • missing or sparse variables
  • outcome imbalance
  • unrealistic values
  • data capture gaps
  • hidden exclusions
  • cohort drift
  • site or encounter artifacts
  • differences between included and excluded patients

A strong descriptive layer protects the rest of the analysis.


The Starting Point

This chapter uses the analysis-ready dataset created in Chapter 12.

text id="chapter13-input" results/analysis-ready-clinical-dataset.tsv

This file should contain one row per patient and an analysis_inclusion_flag.

The descriptive workflow summarizes both the full prepared dataset and the analysis-included subset.


Descriptive Questions

A clinical descriptive analysis should answer questions such as:

  1. How many patients are available?
  2. How many are eligible for analysis?
  3. What is the age distribution?
  4. What is the sex distribution?
  5. What outcomes are observed?
  6. How long is follow-up?
  7. How common are key diagnosis indicators?
  8. How complete are the variables?
  9. Are there obvious data quality concerns?
  10. Are the results clinically plausible?

The goal is not to prove a hypothesis.

The goal is to understand the cohort.


How to Run

Run from the project root.

bash id="run-descriptive-clinical-analysis" python scripts/python/13-run-descriptive-clinical-analysis.py Rscript scripts/R/13-visualize-descriptive-clinical-analysis.R bash scripts/bash/13-run-descriptive-clinical-analysis.sh

To run the full chapter workflow with logging:

bash id="run-descriptive-bash-only" bash scripts/bash/13-run-descriptive-clinical-analysis.sh


What the Python Script Does

The Python script produces structured summary tables.

It reads:

text id="descriptive-python-input" results/analysis-ready-clinical-dataset.tsv

It writes:

text id="descriptive-python-outputs" results/descriptive-clinical-cohort-summary.tsv results/descriptive-clinical-variable-summary.tsv results/descriptive-clinical-outcome-summary.tsv results/descriptive-clinical-table-one.tsv results/descriptive-clinical-analysis-summary.txt

The summaries are intentionally simple and auditable.

They are designed to be checked by a human clinical reviewer.


What the R Script Does

The R script creates modern descriptive figures using tidyverse-style workflows and ggplot2.

It writes:

text id="descriptive-r-outputs" results/figures/descriptive-age-distribution.png results/figures/descriptive-outcome-summary.png results/figures/descriptive-follow-up-by-outcome.png

The figures are not meant to replace clinical interpretation.

They help the analyst quickly see whether the cohort behaves as expected.


Cohort Summary

The cohort summary answers the denominator question.

It should include:

  • total prepared patients
  • analysis-included patients
  • analysis-excluded patients
  • number of unique patient identifiers
  • duplicate patient rows
  • median age
  • median follow-up
  • observed outcome count

A clinical analysis without a denominator is not interpretable.


Variable Summary

The variable summary checks whether each variable is usable.

For each variable, the script records:

  • observed data type
  • missing count
  • missing percent
  • unique value count
  • example non-missing values

This helps identify variables that appear present but are too incomplete or inconsistent to support interpretation.


Outcome Summary

The outcome summary describes the outcome distribution.

Clinical outcome imbalance is common.

For example, a severe adverse event may be rare, while a mild follow-up outcome may be common.

Outcome imbalance affects:

  • descriptive interpretation
  • model feasibility
  • evaluation metric selection
  • dashboard design
  • subgroup analysis
  • communication with clinical stakeholders

A model chapter should not begin until outcome frequency is understood.


Table One

A common clinical reporting output is a baseline characteristics table.

This chapter creates a simple table-one-style file.

It summarizes key variables by analysis inclusion status.

text id="table-one-concept" group: analysis_inclusion_flag variables: - age - follow_up_days - encounter_count - diagnosis_count - medication_count - sex - age_group - outcome_status

This is not a final manuscript table.

It is a reproducible starting point.


Included Versus Excluded Patients

When an analysis_inclusion_flag exists, descriptive analysis should compare included and excluded records.

This protects against hidden selection effects.

For example, excluded patients may have:

  • shorter follow-up
  • missing outcomes
  • incomplete demographics
  • fewer encounters
  • different age distributions

If excluded patients differ strongly from included patients, downstream interpretation should mention that limitation.


Clinical Plausibility

Descriptive outputs should be reviewed for clinical plausibility.

Ask:

  • Are ages realistic?
  • Are follow-up times plausible?
  • Are outcome counts expected?
  • Are diagnosis indicators reasonable?
  • Are vital signs in clinically possible ranges?
  • Are missingness levels acceptable?
  • Do distributions reflect the intended cohort?

Scripts can detect structure.

Clinical review is still needed to judge meaning.


Connection to Data Science Foundations

This chapter connects directly to the broader Data Science Foundations layer.

Once a tidy patient-level table exists, the same foundational ideas apply:

  • inspect the data
  • describe the variables
  • summarize distributions
  • visualize patterns
  • identify missingness
  • document assumptions
  • avoid unsupported claims

The clinical layer adds domain-specific interpretation and governance.


CDI Principle

Descriptive clinical analysis is where the dataset becomes visible.

Before making claims about risk, quality, outcomes, or decisions, the population must be described clearly enough for another person to understand what the analysis is actually about.


Chapter Summary

In this chapter, we created a descriptive analysis layer for the analysis-ready clinical dataset.

We generated cohort summaries, variable summaries, outcome summaries, a table-one-style file, and modern descriptive figures.

The next chapter moves from description into risk stratification and clinical modeling.