Add burden index computation interfaces

This commit is contained in:
2026-06-25 17:15:56 +08:00
parent 0138cbd95b
commit a3bf3a0cd4
3 changed files with 1614 additions and 0 deletions

576
burden_index_method.tex Normal file
View File

@@ -0,0 +1,576 @@
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath, amssymb, amsfonts}
\usepackage{bm}
\usepackage{booktabs}
\usepackage{enumitem}
\usepackage{hyperref}
\title{DeepHealth Burden Indices: Dynamic Organ and Functional Burden}
\author{}
\date{}
\begin{document}
\maketitle
\begin{abstract}
DeepHealth produces a query-time hidden representation \(h(t)\) and
disease-specific future risk functions \(p_d(h,\Delta)\). These disease-level
outputs are clinically granular but difficult to interpret directly as a
patient-level health state. We therefore define Burden Indices (BI) that
aggregate historical and predicted disease burden into higher-level,
interpretable dimensions. The Organ Burden Index (OBI) maps diseases to
anatomical systems, while the Functional Burden Index (FBI) maps diseases to
function- and frailty-related burden domains, anchored by CIHI-HFRM-style
diagnosis weights when available. For formed burden, we distinguish an
observed-anchored version based on actual historical diagnoses and a
model-weighted version based on DeepHealth's historical risk trajectory. The
indices are burden measures, not direct health reserve measures, because the
current model is supervised by disease events rather than direct functional
outcomes such as ADL/IADL, gait speed, grip strength, cognition, or recovery
capacity.
\end{abstract}
\section{Motivation}
At query time \(t\), DeepHealth produces a hidden state \(h(t)\) and
disease-level risk predictions
\[
p_d(h(t), \tau), \qquad d = 1,\ldots,D,
\]
where \(p_d(h(t),\tau)\) is the predicted probability of disease \(d\) occurring
within future horizon \(\tau\). These outputs are useful for disease-specific
risk prediction, but they do not directly answer patient-level questions such as
where disease burden is concentrated or how much functional vulnerability is
implied by the disease profile.
We introduce Burden Indices to summarize disease-level predictions into
interpretable state representations:
\[
\text{disease-level risk}
\quad \longrightarrow \quad
\text{system-level burden}.
\]
The indices combine two components:
\begin{enumerate}[leftmargin=*]
\item formed burden: disease burden already accumulated by query time \(t\);
\item future expected burden: disease burden expected to newly form within
horizon \(\tau\).
\end{enumerate}
At the current stage, these quantities should be called burden indices rather
than health reserve or health state scores. The current model is trained and
validated primarily on ICD disease events. Its directly verifiable semantics are
disease occurrence and disease risk. Without direct functional labels or a
calibrated healthy reference state, quantities such as \(100-\text{burden}\)
cannot be rigorously interpreted as remaining health reserve.
\section{Two Burden Spaces}
We define two complementary burden spaces.
\subsection{Organ Burden Index}
The Organ Burden Index (OBI) maps disease burden to anatomical systems. It
answers:
\[
\text{Which organs or anatomical systems carry the largest pathological burden?}
\]
Typical dimensions may include heart/vascular, brain/neurological, kidney,
lung, liver/digestive, metabolic/endocrine, musculoskeletal, hematologic, and
malignancy-related systems. The mapping matrix is denoted
\[
A^{\mathrm{organ}} \in \mathbb{R}_{\ge 0}^{K_o \times D},
\]
where \(A^{\mathrm{organ}}_{k,d}\) is the contribution weight from disease
\(d\) to organ dimension \(k\).
\subsection{Functional Burden Index}
The Functional Burden Index (FBI) maps disease burden to function- and
frailty-related diagnostic burden domains. It answers:
\[
\text{How much functional vulnerability is implied by the disease burden?}
\]
Candidate dimensions include mobility burden, cognition burden, mood burden,
sensory burden, nutrition burden, infection or immune vulnerability burden,
functional dependence burden, and comorbidity burden.
When CIHI-HFRM or another validated hospital frailty risk measure code list is
available, it should be used as the primary anchor for FBI. The mapping matrix
is denoted
\[
A^{\mathrm{func}} \in \mathbb{R}_{\ge 0}^{K_f \times D},
\]
where \(A^{\mathrm{func}}_{k,d}\) is the contribution weight from disease \(d\)
to functional burden dimension \(k\).
OBI and FBI are not redundant. OBI describes where pathology is concentrated,
whereas FBI describes how disease burden may translate into functional
vulnerability. For example, stroke contributes primarily to brain/vascular
burden in OBI, but may contribute to mobility, cognition, sensory, and
functional dependence burden in FBI.
\section{Model Outputs and Disease Risk Function}
For each hidden state \(h\), DeepHealth defines a disease-specific future risk
function
\[
p_d(h,\Delta),
\]
where \(\Delta \ge 0\) is the time horizon. The risk function is produced by the
all-future model. Let
\[
\eta_d(h) = \operatorname{risk\_head}(h)_d,
\qquad
\lambda_d(h) = \operatorname{softplus}(\eta_d(h)).
\]
For the exponential all-future model,
\[
p_d(h,\Delta)
=
1-\exp[-\lambda_d(h)\Delta].
\]
For the Weibull all-future model, with
\[
\rho_d(h)=\operatorname{softplus}(\operatorname{rho\_head}(h)_d),
\]
the risk function is
\[
p_d(h,\Delta)
=
1-\exp[-\lambda_d(h)\Delta^{\rho_d(h)}].
\]
The burden formulation below only assumes access to \(p_d(h,\Delta)\); the
exponential and Weibull cases are specializations.
\section{Formed Burden}
For a patient queried at time \(t\), let the available historical readout times
be
\[
t_0 < t_1 < \cdots < t_n \le t.
\]
For notational convenience, define
\[
t_{n+1}=t.
\]
The historical trajectory is partitioned into adjacent, non-overlapping
intervals
\[
[t_i,t_{i+1}], \qquad i=0,\ldots,n.
\]
Let
\[
h_i = h(t_i), \qquad \Delta_i = t_{i+1}-t_i.
\]
The interval-level model-implied probability for disease \(d\) is
\[
q_{d,i}(t) = p_d(h_i,\Delta_i).
\]
\subsection{Model-Weighted Formed Burden}
The model-weighted formed burden uses DeepHealth's own historical risk
trajectory to quantify how strongly disease \(d\) is represented as formed
burden by time \(t\). It is defined by noisy-or accumulation over historical
intervals:
\[
z^{\mathrm{model}}_d(t)
=
1-\prod_{i=0}^{n}\left[1-q_{d,i}(t)\right].
\]
Equivalently,
\[
z^{\mathrm{model}}_d(t)
=
1-\prod_{i=0}^{n}
\left[
1-p_d\!\left(h(t_i),t_{i+1}-t_i\right)
\right],
\qquad t_{n+1}=t.
\]
This definition uses each segment of the historical trajectory exactly once and
therefore avoids repeatedly counting overlapping predictions from multiple
historical states to the same query time.
\subsection{Observed-Anchored Formed Burden}
The observed-anchored formed burden treats historical diagnoses as factual
evidence. Define the observed historical disease indicator
\[
o_d(t)
=
\mathbb{I}\left\{
\exists j:\; \mathrm{event}_j=d,\; \mathrm{time}_j\le t
\right\}.
\]
The observed-anchored version is
\[
z^{\mathrm{obs}}_d(t)=o_d(t).
\]
This version is closest to diagnosis-code burden measures such as HFRM: once a
disease code has appeared before query time \(t\), the corresponding disease
burden component is considered present. It is maximally auditable and aligned
with code-based burden definitions, but it does not distinguish severity,
recency, or residual impact among patients with the same historical diagnosis.
\subsection{Choice of Formed Burden}
The two definitions represent different semantics:
\[
z^{\mathrm{obs}}_d(t)
=
\text{observed diagnostic burden},
\]
\[
z^{\mathrm{model}}_d(t)
=
\text{model-weighted state burden}.
\]
The observed-anchored version should be used when the goal is to reproduce or
extend diagnosis-code burden measures. The model-weighted version should be used
when the goal is to let DeepHealth assign a continuous burden strength based on
the historical hidden-state trajectory. In the formulas below, \(z_d(t)\)
denotes either \(z^{\mathrm{obs}}_d(t)\) or \(z^{\mathrm{model}}_d(t)\), depending
on the selected BI variant.
\subsection{Observed-Anchored versus Model-Weighted Burden}
The observed-anchored and model-weighted definitions share the same purpose:
both quantify disease burden already formed by query time \(t\), before adding
future expected burden. They also use the same downstream BI equations; the only
difference is the definition of \(z_d(t)\).
Their key difference is the evidence treated as primary. The observed-anchored
version treats diagnosis occurrence as the primary unit of evidence:
\[
z^{\mathrm{obs}}_d(t)=1
\quad\text{once disease } d \text{ has been observed before } t.
\]
This is appropriate when the burden index is intended to remain close to
diagnosis-code measures such as HFRM. It is transparent and robust to model
miscalibration, but it treats all historical occurrences of the same disease as
equally formed burden.
The model-weighted version treats the DeepHealth risk trajectory as the primary
unit of evidence:
\[
z^{\mathrm{model}}_d(t)
=
1-\prod_i
\left[
1-p_d\!\left(h(t_i),t_{i+1}-t_i\right)
\right].
\]
This version can assign different burden strengths to the same observed disease
depending on timing, surrounding history, extra-info context, and the hidden
state trajectory. It may better reflect state-dependent burden intensity, but it
can also downweight a disease that was truly observed if the model assigns low
historical probability.
Thus the two variants answer related but non-identical questions:
\[
z^{\mathrm{obs}}_d(t):
\text{Has disease } d \text{ been recorded as part of the patient's history?}
\]
\[
z^{\mathrm{model}}_d(t):
\text{How strongly does the model-implied trajectory support burden from }
d \text{ by time } t?
\]
For this reason, both should be considered useful sensitivity variants. The
observed-anchored version is preferable for auditability and alignment with
existing code-based indices. The model-weighted version is preferable when the
goal is to use DeepHealth as a continuous state model and allow the learned
trajectory to modulate burden strength.
\subsection{Cumulative Intensity Form}
Define the interval cumulative intensity
\[
\ell_d(h_i,\Delta_i)
=
-\log\left[1-p_d(h_i,\Delta_i)\right],
\]
and the accumulated historical intensity
\[
\Lambda^{\mathrm{model}}_d(t)=\sum_{i=0}^{n}\ell_d(h_i,\Delta_i).
\]
Then
\[
z^{\mathrm{model}}_d(t)=1-\exp[-\Lambda^{\mathrm{model}}_d(t)].
\]
For the exponential model,
\[
\ell_d(h_i,\Delta_i)=\lambda_d(h_i)\Delta_i,
\]
so
\[
z^{\mathrm{model}}_d(t)
=
1-\exp\left[
-\sum_{i=0}^{n}
\lambda_d\!\left(h(t_i)\right)(t_{i+1}-t_i)
\right].
\]
For the Weibull model,
\[
\ell_d(h_i,\Delta_i)
=
\lambda_d(h_i)\Delta_i^{\rho_d(h_i)},
\]
so
\[
z^{\mathrm{model}}_d(t)
=
1-\exp\left[
-\sum_{i=0}^{n}
\lambda_d\!\left(h(t_i)\right)
(t_{i+1}-t_i)^{\rho_d(h(t_i))}
\right].
\]
\section{Future Expected Burden}
The selected formed burden \(z_d(t)\) represents disease burden already formed
by query time \(t\). It can be either the observed-anchored burden
\(z^{\mathrm{obs}}_d(t)\) or the model-weighted burden
\(z^{\mathrm{model}}_d(t)\). The current future risk from query time \(t\) to
horizon \(\tau\) is
\[
p_d(h(t),\tau).
\]
The future expected newly formed burden for disease \(d\) is defined as
\[
f_d(t,\tau)
=
\left[1-z_d(t)\right]p_d(h(t),\tau).
\]
This term counts only the portion of disease burden that has not already formed
by time \(t\). The total dynamic disease burden contribution is
\[
b_d(t,\tau)
=
z_d(t)+f_d(t,\tau).
\]
Equivalently,
\[
b_d(t,\tau)
=
1-
\left[1-z_d(t)\right]
\left[1-p_d(h(t),\tau)\right].
\]
Thus \(b_d(t,\tau)\) can be interpreted as the probability that disease burden
for \(d\) has formed by time \(t\) or will newly form within the future horizon
\(\tau\).
\section{Burden Index Definition}
Let \(A \in \mathbb{R}_{\ge 0}^{K \times D}\) be a disease-to-burden mapping
matrix. The historical, future, and total burden indices for dimension \(k\)
are
\[
\operatorname{BI}^{\mathrm{hist}}_k(t)
=
\sum_{d=1}^{D} A_{k,d} z_d(t),
\]
\[
\operatorname{BI}^{\mathrm{future}}_k(t,\tau)
=
\sum_{d=1}^{D}
A_{k,d}
\left[1-z_d(t)\right]p_d(h(t),\tau),
\]
and
\[
\operatorname{BI}^{\mathrm{total}}_k(t,\tau)
=
\operatorname{BI}^{\mathrm{hist}}_k(t)
+
\operatorname{BI}^{\mathrm{future}}_k(t,\tau).
\]
Equivalently,
\[
\operatorname{BI}^{\mathrm{total}}_k(t,\tau)
=
\sum_{d=1}^{D}
A_{k,d}
\left\{
1-
\left[1-z_d(t)\right]
\left[1-p_d(h(t),\tau)\right]
\right\}.
\]
For OBI, \(A=A^{\mathrm{organ}}\). For FBI, \(A=A^{\mathrm{func}}\).
\section{Constructing the Mapping Matrices}
\subsection{Organ Mapping Matrix}
The organ mapping matrix should be constructed from code taxonomy or validated
clinical grouping systems rather than manually assigned arbitrary weights. In
the current ICD-token setting, the first version can use ICD chapters or
predefined ICD ranges to construct a sparse disease-to-organ mask
\[
M^{\mathrm{organ}}_{k,d}\in\{0,1\}.
\]
Examples include:
\begin{center}
\begin{tabular}{ll}
\toprule
Dimension & Example ICD groups \\
\midrule
Heart/vascular & I00--I99, optionally split into cardiac and vascular groups \\
Brain/neurological & G00--G99, F00--F09, I60--I69 \\
Kidney/urogenital & N00--N39, especially N17--N19 \\
Lung/respiratory & J00--J99 \\
Metabolic/endocrine & E00--E90 \\
Liver/digestive & K00--K93, especially K70--K77 \\
Musculoskeletal & M00--M99 \\
\bottomrule
\end{tabular}
\end{center}
The simplest organ weights are
\[
A^{\mathrm{organ}}_{k,d}=M^{\mathrm{organ}}_{k,d}.
\]
If longitudinal organ endpoint labels are available, the weights can be learned
under the mask:
\[
A^{\mathrm{organ}}_{k,d}\ge 0,
\qquad
A^{\mathrm{organ}}_{k,d}=0
\quad\text{if}\quad
M^{\mathrm{organ}}_{k,d}=0.
\]
This keeps the projection clinically interpretable while allowing data-driven
calibration.
\subsection{Functional Mapping Matrix}
The functional mapping matrix should be anchored by a validated frailty-related
diagnosis code set whenever possible. CIHI-HFRM or a closely related Hospital
Frailty Risk Measure provides a suitable starting point because it defines
frailty burden from diagnosis codes and associated weights.
Let \(w^{\mathrm{HFRM}}_d\ge 0\) be the HFRM weight mapped to DeepHealth disease
token \(d\). If the HFRM code list is more granular than the DeepHealth ICD
token vocabulary, weights should be mapped by code prefix. For three-character
ICD tokens, a conservative default is
\[
w^{\mathrm{HFRM}}_d
=
\max_{c:\, c \text{ maps to token } d}
w^{\mathrm{HFRM}}_c.
\]
For total functional burden, the one-dimensional mapping is
\[
A^{\mathrm{func,total}}_{1,d}
=
w^{\mathrm{HFRM}}_d.
\]
For domain-specific functional burden, define a grouping mask
\[
G_{k,d}\in\{0,1\},
\]
where \(G_{k,d}=1\) means HFRM-associated disease token \(d\) belongs to
functional burden domain \(k\). Then
\[
A^{\mathrm{func}}_{k,d}
=
G_{k,d} w^{\mathrm{HFRM}}_d.
\]
Candidate functional domains include mobility, cognition, mood, sensory,
nutrition, infection or immune vulnerability, functional dependence, and
comorbidity burden. These domain labels should be treated as diagnostic-burden
proxies unless direct functional measurements are available for calibration.
\section{Normalization and Reporting}
The raw burden index is an additive weighted burden:
\[
\operatorname{BI}_k(t,\tau)
=
\sum_d A_{k,d} b_d(t,\tau).
\]
For interpretability, the system should report the decomposition
\[
\operatorname{BI}^{\mathrm{hist}}_k(t),
\qquad
\operatorname{BI}^{\mathrm{future}}_k(t,\tau),
\qquad
\operatorname{BI}^{\mathrm{total}}_k(t,\tau).
\]
Optionally, a normalized burden can be reported as
\[
\widetilde{\operatorname{BI}}_k(t,\tau)
=
\frac{
\sum_d A_{k,d} b_d(t,\tau)
}{
\sum_d A_{k,d} + \epsilon
},
\]
where \(\epsilon>0\) prevents division by zero. This normalized score lies on a
dimension-comparable scale when \(b_d(t,\tau)\in[0,1]\) and \(A_{k,d}\ge 0\).
For cohort-level interpretation, an additional percentile score can be computed
within age- and sex-specific reference strata:
\[
\operatorname{PercentileBI}_k(t,\tau)
=
\operatorname{rank}_{\mathrm{age,sex}}
\left(
\operatorname{BI}^{\mathrm{total}}_k(t,\tau)
\right).
\]
This percentile is a relative burden ranking, not a health reserve percentage.
\section{Validation}
OBI and FBI should be validated against different endpoints.
For OBI, validation endpoints should be organ-system-specific future events, for
example cardiac events for heart/vascular burden, stroke or dementia for
brain/neurological burden, CKD progression for kidney burden, and respiratory
events for lung burden.
For FBI, validation should use CIHI-HFRM-style frailty burden, frailty-related
diagnosis endpoints, hospitalization, mortality, care dependence proxies, or
direct functional outcomes if available. If direct functional labels such as
ADL/IADL, gait speed, grip strength, cognitive tests, or recovery measures are
not available, FBI should be reported as a diagnosis-risk-based functional
burden proxy rather than a direct functional reserve measure.
\section{Summary}
DeepHealth Burden Indices transform disease-level risk predictions into
interpretable burden representations. Formed burden can be defined either as
observed-anchored burden \(z^{\mathrm{obs}}_d(t)\), which follows factual
diagnosis history, or as model-weighted burden \(z^{\mathrm{model}}_d(t)\),
which accumulates DeepHealth's predicted interval risks along the hidden-state
trajectory. The future expected burden is the residual future risk among disease
burden not already formed. OBI uses anatomical disease groupings to summarize
where pathological burden is concentrated. FBI uses CIHI-HFRM-style
frailty-related diagnosis weights to summarize functional vulnerability burden.
Together, they provide two complementary views of disease burden while allowing
the formed-burden semantics to be chosen explicitly.
\end{document}