Skip to contents

What is Cox Regression?

  • Purpose: Compare risk between groups while adjusting for multiple factors (age, stage, etc.).
  • Output: Hazard Ratio (HR). HR < 1 means lower risk; HR > 1 means higher risk.

When to Use

  • You need an adjusted comparison (beyond KM/log‑rank).
  • You have multiple prognostic variables to consider.
  • Time-to-event outcome (survival, progression, recurrence).

How to Read Results

  • HR and 95% CI: Magnitude and uncertainty of effect.
  • p‑value: Evidence against “no effect”, but prioritize effect size and CI.
  • Example: HR = 0.72 (95% CI 0.55–0.95, p = 0.02) → 28% lower hazard after adjustment.

Key Assumption: Proportional Hazards (PH)

  • Meaning: The HR between groups is roughly constant over time.
  • Check: Schoenfeld residual plots/tests in jSurvival (Cox Diagnostics).
  • If violated: Consider stratification, time‑varying effects, or RMST.

Practical Tips

  • Coding: Ensure event = 1 and time > 0 with consistent units (months/days).
  • Collinearity: Avoid highly correlated predictors; use VIF checks.
  • Sample size: Aim for ≥10 events per covariate for stable estimates.

Reporting Checklist

  • Outcome and time unit (e.g., OS in months); event definition.
  • HR, 95% CI, and p‑value for main effect(s).
  • Variables adjusted for (age, grade, stage, etc.).
  • PH assessment result (e.g., global test p‑value; any violations noted).
  • Clinical interpretation (effect size relevance, context, safety).

In jamovi (jSurvival)

  • Analyses → jSurvival → Cox Diagnostics.
  • Assign Time and Outcome; add covariates.
  • Enable PH tests (Schoenfeld), residuals, and VIF as needed.
# Example (R API)
library(ClinicoPath)
data(histopathology)
coxdiagnostics(
  data = histopathology,
  time = "OverallTime",
  event = "Outcome",
  covariates = c("Age", "Sex", "Grade", "TStage"),
  show_schoenfeld = TRUE,
  show_vif = TRUE,
  show_model_summary = TRUE
)