Clinical Data Processing & Summary Statistics using Base SAS and SQL
The Framingham Heart Study (FHS) is one of the most significant epidemiological studies in medical history, responsible for identifying major cardiovascular risk factors such as hypertension, high cholesterol, and smoking.
As an aspiring Clinical SAS Programmer, I conducted a baseline analysis using the SASHELP.HEART dataset (5,209 patient observations). This project simulates the initial data preparation and summary reporting steps required in clinical trial environments prior to generating Clinical Study Reports (CSRs).
In accordance with standard clinical trial workflows guided by Statistical Analysis Plans (SAPs), I here use AI to generate a SAP for me, the goals of this analysis were:
- Data Access & Exploration: Inspect raw baseline demographics and clinical measurements, handling missing values in critical variables like
CholesterolandWeight. - Conditional Derivations & Data Cleaning: Derive clinical risk categories (e.g., Blood Pressure status classifications) using SAS conditional logic (
IF-THEN/ELSE). - Clinical TLF Generation: Produce summary tables and demographic distributions for biostatostatistical review using standard Base SAS procedures (
PROC MEANS,PROC FREQ, andPROC SQL).
- Primary Environment: SAS Studio
- SAS Concepts & Procedures:
- Data Step Processing:
DATA,SET,KEEP/DROP,IF-THEN/ELSEconditional logic. - Summary Statistics & Frequency Analysis:
PROC MEANS,PROC FREQ. - Data Querying & Aggregation:
PROC SQL(SELECT, WHERE, GROUP BY). - Reporting:
ODS(Output Delivery System) for exporting clean xlsx reports.
- Data Step Processing:
Clinical data frequently contains missing records (.). Prior to generating statistical summaries, PROC MEANS and PROC FREQ were utilized to audit completeness across demographic and baseline risk metrics.
Patients were categorized into clinical risk brackets based on Systolic and Diastolic pressure thresholds:
-
Normal: Systolic
$< 120$ mmHg and Diastolic$< 80$ mmHg -
Prehypertension: Systolic
$120–139$ mmHg or Diastolic$80–89$ mmHg -
High (Hypertension): Systolic
$\ge 140$ mmHg or Diastolic$\ge 90$ mmHg
- Demographic analysis evaluated patient age (
AgeAtStart), weight, and height across gender distributions (Sex). - Cross-tabulations were conducted to observe the frequency distribution of primary outcomes (
DeathCause) against smoking history (Smoking_Status).
├── Framingham_Heart_Project.sas # Main SAS script (Data Step, PROC SQL, PROC MEANS/FREQ)
├── Framingham_Heart_Study.xlsx # Dataset export / raw reference data
└── README.md # Project documentation & summary