Skip to main content

Survival Analysis Ontology

Applied Statistical Mathematics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Survival Analysis Ontology within the Kireth Research Semantic Library. Survival analysis studies time-to-event data where censoring, truncation, hazard structure and event occurrence are central. This ontology supports survival and hazard functions, censoring, Kaplan-Meier estimation, life tables, cumulative hazard, Cox proportional hazards models, parametric survival models, accelerated failure-time models, competing risks, recurrent events, frailty, multi-state models, diagnostics, prediction and relationships with applied statistical mathematics, regression, stochastic processes and reliability mathematics.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Survival Analysis Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Applied Statistical Mathematics / Survival Analysis"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/applied-statistical-mathematics/survival-analysis-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = SurvivalAnalysis
 ENTITY_CLASS = TimeToEventStatisticalInferenceFramework
 PRIMARY_CONTEXT = AppliedStatisticalMathematics
 DEFINITION = "Survival analysis is the statistical study of time-to-event outcomes, including censoring, hazard, survival probability and covariate effects."
 SYMBOLIC_FORMS = [
  "S(t)=P(T>t)",
  "h(t)=lim_dt->0 P(t<=T<t+dt|T>=t)/dt",
  "H(t)=integral_0^t h(u)du",
  "S(t)=exp(-H(t))"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for survival probabilities, hazards, censoring, event-time models, proportional hazards, competing risks, recurrent events, frailty and time-to-event prediction."
}

SCOPE {
 INCLUDE = [
  SurvivalAnalysis, TimeToEventData, EventTime, FailureTime, SurvivalTime,
  EventIndicator, Censoring, RightCensoring, LeftCensoring,
  IntervalCensoring, AdministrativeCensoring, InformativeCensoring,
  NoninformativeCensoring, Truncation, LeftTruncation, RightTruncation,
  DelayedEntry, RiskSet, SurvivalFunction, HazardFunction,
  CumulativeHazardFunction, ProbabilityDensityFunction,
  CumulativeDistributionFunction, MedianSurvivalTime,
  KaplanMeierEstimator, ProductLimitEstimator, NelsonAalenEstimator,
  LifeTable, ActuarialEstimator, GreenwoodFormula, LogRankTest,
  WeightedLogRankTest, ProportionalHazards, CoxProportionalHazardsModel,
  CoxModel, PartialLikelihood, BaselineHazard, HazardRatio,
  TimeDependentCovariate, TimeVaryingEffect, SchoenfeldResidual,
  MartingaleResidual, DevianceResidual, CoxSnellResidual,
  ParametricSurvivalModel, ExponentialSurvivalModel, WeibullSurvivalModel,
  GompertzModel, LogNormalSurvivalModel, LogLogisticSurvivalModel,
  AcceleratedFailureTimeModel, AFTModel, FrailtyModel, SharedFrailty,
  RandomEffect, CompetingRisks, CauseSpecificHazard,
  SubdistributionHazard, CumulativeIncidenceFunction, FineGrayModel,
  RecurrentEvent, GapTime, CountingProcessRepresentation,
  AndersenGillModel, PrenticeWilliamsPetersonModel, MultiStateModel,
  TransitionIntensity, IllnessDeathModel, CureModel, MixtureCureModel,
  RelativeSurvival, NetSurvival, LandmarkAnalysis,
  DynamicPrediction, RestrictedMeanSurvivalTime, RMST,
  ConcordanceIndex, CIndex, BrierScore, Calibration,
  Discrimination, TimeDependentROC, SurvivalPrediction,
  PredictionInterval, ConfidenceInterval, Bootstrap,
  MissingData, MultipleImputation, ModelSelection,
  ProportionalHazardsTest, GoodnessOfFit, SensitivityAnalysis,
  ReliabilityAnalysis, FailureProbability, HazardRate
 ]
 EXCLUDE_AS_PRIMARY = [
  OrdinaryRegressionWithoutTimeToEventStructure,
  TimeSeriesAnalysisWithoutEventTimeOutcome,
  ReliabilityEngineeringWithoutStatisticalSurvivalInference,
  BinaryClassificationWithoutCensoringOrEventTime
 ]
 DISAMBIGUATION_RULE = "When the outcome is time until an event and censoring, truncation or hazard structure matters, interpret the context as survival analysis."
}

CORE_CONCEPTS {
 SurvivalAnalysis = "Statistical analysis of event times under censoring and related incomplete observation."
 SurvivalFunction = "Probability that event time exceeds a specified time."
 HazardFunction = "Instantaneous event rate conditional on survival up to that time."
 CumulativeHazardFunction = "Integrated hazard over time."
 Censoring = "Incomplete observation of the event time."
 RiskSet = "Individuals still at risk immediately before an event time."
 KaplanMeierEstimator = "Nonparametric estimator of the survival function."
 CoxProportionalHazardsModel = "Semiparametric regression model for multiplicative covariate effects on hazard."
 CompetingRisks = "Setting where multiple mutually exclusive event types may occur."
 FrailtyModel = "Survival model incorporating unobserved heterogeneity through random effects."
}

RELATIONS {
 SurvivalAnalysis --is_child_of--> AppliedStatisticalMathematics
 SurvivalAnalysis --is_type_of--> StatisticalModelling
 SurvivalFunction --relates_to--> HazardFunction
 CumulativeHazardFunction --integrates--> HazardFunction
 SurvivalFunction --equals--> ExponentialOfNegativeCumulativeHazard
 Censoring --affects--> EventTimeObservation
 RiskSet --supports--> KaplanMeierEstimator
 KaplanMeierEstimator --estimates--> SurvivalFunction
 NelsonAalenEstimator --estimates--> CumulativeHazardFunction
 LogRankTest --compares--> SurvivalCurves
 CoxProportionalHazardsModel --uses--> PartialLikelihood
 CoxProportionalHazardsModel --contains--> BaselineHazard
 HazardRatio --quantifies--> RelativeHazard
 SchoenfeldResidual --diagnoses--> ProportionalHazardsAssumption
 AcceleratedFailureTimeModel --models--> TimeScaleAcceleration
 FrailtyModel --represents--> UnobservedHeterogeneity
 CompetingRisks --uses--> CauseSpecificHazard
 CumulativeIncidenceFunction --summarises--> CompetingRiskProbability
 MultiStateModel --uses--> TransitionIntensity
 ReliabilityAnalysis --relates_to--> SurvivalAnalysis
}

OPERATORS {
 SURVIVAL_FUNCTION(T,t) := S(t)=P(T>t)
 CDF_FROM_SURVIVAL(S,t) := F(t)=1-S(t)
 HAZARD(f,S,t) := h(t)=f(t)/S(t)
 CUMULATIVE_HAZARD(h,t) := H(t)=integral_0^t h(u)du
 SURVIVAL_FROM_HAZARD(H,t) := S(t)=exp(-H(t))
 KAPLAN_MEIER(times,events) := S_hat(t)=product_(t_i<=t)[1-d_i/n_i]
 NELSON_AALEN(times,events) := H_hat(t)=sum_(t_i<=t)d_i/n_i
 COX_HAZARD(h0,beta,x) := h(t|x)=h0(t)*exp(beta^T x)
 HAZARD_RATIO(beta,delta_x) := HR=exp(beta^T delta_x)
 AFT_MODEL(mu,beta,x,epsilon) := log(T)=mu+beta^T x+epsilon
 RMST(S,tau) := RMST(tau)=integral_0^tau S(t)dt
}

AXIOMS {
 A1 = "Survival analysis requires explicit event-time and event-indicator semantics."
 A2 = "Censoring and truncation mechanisms affect valid inference."
 A3 = "Survival and hazard functions are mathematically distinct but linked."
 A4 = "Kaplan-Meier estimation assumes appropriate independent censoring conditions."
 A5 = "Cox-model interpretation depends on proportional-hazards structure unless extended."
 A6 = "Competing risks require event-type-specific probability semantics."
 A7 = "Time-dependent covariates require correct temporal alignment."
 A8 = "Survival conclusions require censoring, model-assumption and predictive validation."
}

REASONING {
 R1_CONTEXT = identify(event,time_origin,event_type,censoring,truncation,covariates)
 R2_DATA_STRUCTURE = construct(time,event_indicator,risk_sets,entry_times)
 R3_NONPARAMETRIC = estimate(Kaplan_Meier,Nelson_Aalen,life_table)
 R4_COMPARISON = if_groups compare_survival_curves_with_logrank_or_weighted_test
 R5_REGRESSION = select(Cox,parametric,AFT,frailty,competing_risks_or_multistate_model)
 R6_ASSUMPTIONS = assess(proportional_hazards,censoring,functional_form,dependence)
 R7_DIAGNOSTICS = analyse(Schoenfeld,martingale,deviance_or_CoxSnell_residuals)
 R8_PREDICTION = compute_survival_hazard_RMST_or_dynamic_predictions
 R9_COMPLEX_STRUCTURE = if_required model(competing_risks,recurrent_events,multistate,frailty)
 R10_VALIDATION = assess(calibration,discrimination,Brier_score,C_index,bootstrap,sensitivity)
}

CONSTRAINTS {
 C1 = "Ignoring censoring can bias event-time estimates."
 C2 = "Informative censoring can invalidate standard survival estimators."
 C3 = "Hazard ratios are not equivalent to risk ratios or differences in survival probability."
 C4 = "Nonproportional hazards can make a single Cox hazard ratio misleading."
 C5 = "Competing-risk probabilities cannot be obtained by naively treating competing events as ordinary censoring."
 C6 = "Time-dependent covariates must not use information from the future."
 C7 = "Frailty models depend on assumptions about the latent heterogeneity distribution."
 C8 = "Median survival is undefined when estimated survival never falls below 0.5."
 C9 = "Long-horizon predictions become unstable when few subjects remain at risk."
 C10 = "Model discrimination does not guarantee calibration."
}

SEMANTIC_EQUIVALENCE {
 "KaplanMeierEstimator" <=> "ProductLimitEstimator"
 "CoxProportionalHazardsModel" <=> "CoxModel"
 "AcceleratedFailureTimeModel" <=> "AFTModel"
 "RestrictedMeanSurvivalTime" <=> "RMST"
 "ConcordanceIndex" <=> "CIndex"
}

VALIDATION {
 V1 = "Time origin and event definition are explicit."
 V2 = "Censoring and truncation types are documented."
 V3 = "Risk sets are correctly constructed."
 V4 = "Proportional hazards are assessed for Cox models."
 V5 = "Residual diagnostics are reported."
 V6 = "Competing events are handled with appropriate methods."
 V7 = "Prediction horizons have adequate at-risk support."
 V8 = "Calibration and discrimination are evaluated separately."
 V9 = "Bootstrap or resampling uncertainty is used where appropriate."
 V10 = "Sensitivity to censoring and modelling assumptions is assessed."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 SURVIVAL_ANALYSIS_DEFINITION = 0.99
 KAPLAN_MEIER_REASONING = 0.99
 HAZARD_REASONING = 0.99
 COX_REASONING = 0.99
 AFT_REASONING = 0.98
 COMPETING_RISK_REASONING = 0.98
 FRAILTY_REASONING = 0.98
 MULTISTATE_REASONING = 0.98
 POLICY = "Reduce confidence when censoring, truncation, event definitions, proportional-hazards assumptions, time-dependent covariates or competing risks are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch, OntologyGrounding, SurvivalAnalysisReasoning,
  SurvivalFunctionReasoning, HazardFunctionReasoning,
  KaplanMeierReasoning, NelsonAalenReasoning, LogRankReasoning,
  CoxModelReasoning, HazardRatioReasoning, AFTReasoning,
  FrailtyReasoning, CompetingRisksReasoning, RecurrentEventReasoning,
  MultiStateReasoning, RMSTReasoning, SurvivalPredictionReasoning,
  ReliabilityReasoning, KnowledgeGraphConstruction,
  RetrievalAugmentation, RecursiveInference
 ]
 NORMALISE {
  "survival analysis" -> SurvivalAnalysis
  "Kaplan-Meier" -> KaplanMeierEstimator
  "product limit estimator" -> KaplanMeierEstimator
  "Cox model" -> CoxProportionalHazardsModel
  "AFT" -> AcceleratedFailureTimeModel
  "RMST" -> RestrictedMeanSurvivalTime
  "C-index" -> ConcordanceIndex
 }
}

EXECUTION_RULES {
 E1 = "If the outcome is time to event with censoring or truncation, activate SurvivalAnalysisOntology."
 E2 = "If a nonparametric survival curve is required, use Kaplan-Meier estimation where assumptions are appropriate."
 E3 = "If cumulative hazard is central, use Nelson-Aalen estimation."
 E4 = "If covariate effects on hazard are modelled, consider the Cox model and test proportional hazards."
 E5 = "If time-scale acceleration is more natural, consider an AFT model."
 E6 = "If multiple event types compete, use competing-risk methods."
 E7 = "If repeated events occur, use recurrent-event methods."
 E8 = "If unobserved heterogeneity is important, consider frailty models."
 E9 = "Any survival model should be validated for censoring assumptions, diagnostics, calibration and discrimination."
}

RECURSION {
 ENTRY = SurvivalAnalysis
 EXPAND(SurvivalAnalysis) -> [
  TimeToEventData, EventTime, FailureTime, SurvivalTime, EventIndicator,
  Censoring, RightCensoring, LeftCensoring, IntervalCensoring, Truncation,
  LeftTruncation, DelayedEntry, RiskSet, SurvivalFunction, HazardFunction,
  CumulativeHazardFunction, KaplanMeierEstimator, NelsonAalenEstimator,
  LifeTable, GreenwoodFormula, LogRankTest, ProportionalHazards,
  CoxProportionalHazardsModel, PartialLikelihood, BaselineHazard,
  HazardRatio, TimeDependentCovariate, TimeVaryingEffect,
  SchoenfeldResidual, MartingaleResidual, DevianceResidual,
  ParametricSurvivalModel, ExponentialSurvivalModel, WeibullSurvivalModel,
  GompertzModel, LogNormalSurvivalModel, LogLogisticSurvivalModel,
  AcceleratedFailureTimeModel, FrailtyModel, CompetingRisks,
  CauseSpecificHazard, SubdistributionHazard, CumulativeIncidenceFunction,
  FineGrayModel, RecurrentEvent, CountingProcessRepresentation,
  MultiStateModel, TransitionIntensity, CureModel, DynamicPrediction,
  RestrictedMeanSurvivalTime, ConcordanceIndex, BrierScore,
  Calibration, Discrimination, SurvivalPrediction, ReliabilityAnalysis
 ]
 STOP_CONDITION = "Stop when event definition, censoring, hazard or survival structure, model assumptions, prediction and validation are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Applied Statistical Mathematics"
 RELATED_ONTOLOGIES = [
  "Applied Statistical Mathematics",
  "Statistical Modelling Ontology",
  "Regression Ontology",
  "Time Series Analysis Ontology",
  "Random Process Ontology",
  "Markov Process Ontology",
  "Bayesian Statistics Ontology",
  "Reliability Mathematics Ontologies",
  "Stochastic Process Ontologies"
 ]
 ROUTE_RULES = [
  "Survival Analysis -> Applied Statistical Mathematics for parent semantics",
  "Survival Analysis -> Statistical Modelling for general model structure",
  "Survival Analysis -> Regression for covariate modelling",
  "Survival Analysis -> Random and Markov Processes for event-state evolution",
  "Survival Analysis -> Bayesian Statistics for Bayesian survival models",
  "Survival Analysis -> Reliability Mathematics for failure-time interpretation",
  "Survival Analysis -> Stochastic Processes for recurrent and multistate dynamics"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible survival models, censoring structures or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve event-time semantics.",
  "Preserve censoring-versus-truncation distinction.",
  "Preserve survival-versus-hazard distinction.",
  "Preserve proportional-hazards semantics.",
  "Preserve cause-specific-versus-subdistribution hazard distinction.",
  "Preserve single-event-versus-recurrent-event distinction.",
  "Preserve prediction-versus-association distinction.",
  "Preserve machine-readable survival-analysis semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "Survival analysis models time-to-event outcomes while accounting for censoring, hazard structure and incomplete observation."
 SURVIVAL_SUMMARY = "The survival function gives the probability of remaining event-free beyond time t."
 HAZARD_SUMMARY = "The hazard function gives the instantaneous event rate conditional on survival."
 NONPARAMETRIC_SUMMARY = "Kaplan-Meier and Nelson-Aalen estimators provide nonparametric survival and cumulative-hazard estimates."
 COX_SUMMARY = "Cox regression estimates multiplicative covariate effects on hazard through partial likelihood."
 PARAMETRIC_SUMMARY = "Parametric and AFT models impose explicit event-time distributions or time-scale effects."
 COMPLEX_EVENT_SUMMARY = "Competing risks, recurrent events, frailty and multi-state models extend standard survival analysis."
 VALIDATION_SUMMARY = "Survival models should be checked for censoring assumptions, proportionality, calibration, discrimination and prediction-horizon support."
}

FLOW {
 INPUT
 -> detect_survival_analysis_context
 -> identify_time_origin_event_definition_event_type_censoring_truncation_and_covariates
 -> construct_event_time_and_risk_set_representation
 -> estimate_nonparametric_survival_and_cumulative_hazard_if_required
 -> compare_groups_if_required
 -> select_Cox_parametric_AFT_frailty_competing_risks_recurrent_event_or_multistate_model
 -> estimate_model_parameters_and_uncertainty
 -> perform_residual_and_assumption_diagnostics
 -> compute_survival_hazard_RMST_or_dynamic_predictions
 -> validate_calibration_discrimination_censoring_sensitivity_and_prediction_support
 -> route_to_applied_statistical_mathematics_statistical_modelling_regression_random_process_Markov_process_Bayesian_statistics_reliability_or_stochastic_process_ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Survival Analysis Ontology defines statistical time-to-event modelling. It supports censoring and truncation, risk sets, survival and hazard functions, cumulative hazards, Kaplan-Meier and Nelson-Aalen estimation, life tables, Greenwood variance and log-rank testing, Cox proportional hazards regression, partial likelihood, baseline hazards and hazard ratios, time-dependent covariates and proportional-hazards diagnostics, parametric exponential, Weibull, Gompertz, log-normal and log-logistic models, accelerated failure-time models, frailty and shared-frailty models, competing risks, cumulative incidence and Fine-Gray models, recurrent-event and counting-process approaches, multi-state and cure models, dynamic prediction, restricted mean survival time, concordance, Brier scores, calibration, discrimination and reliability relationships."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-SURVIVAL-ANALYSIS-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ