Add mortality attribution evaluation

This commit is contained in:
2026-06-27 13:34:30 +08:00
parent 00de2ff4a9
commit 0b7c866292
5 changed files with 403 additions and 372 deletions

View File

@@ -37,12 +37,12 @@ all-future DeepHealth 模型应被解释为一个基于既往轨迹的未来新
\section{English}
\subsection{Model object}
\subsection{Model Object}
For individual \(i\), let \(\mathcal{H}_i(t)\) denote the observed history up to
query time \(t\). The all-future model produces
\[
h_i(t) = f_\theta(\mathcal{H}_i(t)),
h_i(t)=f_\theta(\mathcal{H}_i(t)),
\]
and, for each disease token \(d\) in the modeled disease vocabulary
\(\mathcal{D}\), estimates a future first-occurrence risk over a horizon
@@ -68,7 +68,7 @@ history itself we know
This historical indicator is not learned by the model; it is read directly from
the event history.
\subsection{Masking already occurred diseases}
\subsection{Masking Already Occurred Diseases}
For a disease that has already occurred before or at \(t\), the model output for
that disease should not be interpreted as recurrence risk or current disease
@@ -77,10 +77,10 @@ should be masked:
\[
p^{\mathrm{new}}_{i,d}(t,\tau)
=
\left[1-m_{i,d}(t)\right]p_{i,d}(t,\tau).
[1-m_{i,d}(t)]p_{i,d}(t,\tau).
\]
\subsection{Directly supported model-derived quantities}
\subsection{Directly Supported Quantities}
The current model directly supports the following quantities.
@@ -100,42 +100,64 @@ is the estimated probability of death within the next \(\tau\) years. Death is a
terminal endpoint and should not be treated as an ordinary disease burden
weight.
\paragraph{Probability of being alive with no new modeled disease.}
Using the model's disease-specific and death risks, one can summarize the
probability of no new modeled disease and survival over the next \(\tau\) years:
\[
S^{\mathrm{all}}_i(t,\tau)
=
\left[1-p_{i,\mathrm{death}}(t,\tau)\right]
\prod_{d\in\mathcal{D}}
\left[1-p^{\mathrm{new}}_{i,d}(t,\tau)\right].
\]
Equivalently, if the model is represented through cumulative hazards
\(\Lambda_{i,d}(t,\tau)=-\log[1-p_{i,d}(t,\tau)]\),
\[
S^{\mathrm{all}}_i(t,\tau)
=
\exp\left(
-\Lambda_{i,\mathrm{death}}(t,\tau)
-\sum_{d\in\mathcal{D}}
[1-m_{i,d}(t)]\Lambda_{i,d}(t,\tau)
\right).
\]
\paragraph{Probability of being alive with no new disease in a specified set.}
\paragraph{Future incident disease risk in a specified set.}
For any analyst-specified subset of disease tokens \(G\subseteq\mathcal{D}\),
the model can summarize future incident risk within that set:
\[
S^{G}_i(t,\tau)
R^G_i(t,\tau)
=
\left[1-p_{i,\mathrm{death}}(t,\tau)\right]
\prod_{d\in G}
\left[1-p^{\mathrm{new}}_{i,d}(t,\tau)\right].
1-\prod_{d\in G}\left[1-p^{\mathrm{new}}_{i,d}(t,\tau)\right].
\]
This is a subset-level future disease-free survival summary. If \(G\) is called
an organ system, the disease-to-organ grouping is external to the model and
must not be described as a learned organ score.
This quantity answers: ``What is the model-estimated probability that at least
one not-yet-observed disease in \(G\) first occurs within the next \(\tau\)
years?'' It does not include death. Mortality risk should be reported
separately as \(p_{i,\mathrm{death}}(t,\tau)\).
\subsection{Historical counts are not model-derived burden}
If \(G\) is called an organ system, the disease-to-organ grouping is external to
the model and should not be described as a learned organ score.
\subsection{Model Attribution to Predicted Mortality Risk}
The model can also be queried for a model-internal attribution of historical
disease sets to predicted mortality risk. For a disease set \(G\), define the
original mortality risk as
\[
p_{i,\mathrm{death}}^{\mathrm{orig}}(t,\tau),
\]
and the risk after deleting historical disease tokens in \(G\) from the input
history as
\[
p_{i,\mathrm{death}}^{(-G)}(t,\tau).
\]
On the probability scale, the attribution is
\[
\Delta p^G_i(t,\tau)
=
p_{i,\mathrm{death}}^{\mathrm{orig}}(t,\tau)
-
p_{i,\mathrm{death}}^{(-G)}(t,\tau).
\]
A more stable primary scale is the cumulative-hazard scale:
\[
\Lambda_{i,\mathrm{death}}(t,\tau)
=
-\log\left[1-p_{i,\mathrm{death}}(t,\tau)\right],
\]
\[
\Delta \Lambda^G_i(t,\tau)
=
\Lambda_{i,\mathrm{death}}^{\mathrm{orig}}(t,\tau)
-
\Lambda_{i,\mathrm{death}}^{(-G)}(t,\tau).
\]
This quantity should be described as model attribution to predicted mortality
risk. It is not a causal contribution, not an organ damage score, and not a
clinical disease-burden weight. Because diseases can interact within the
trajectory model, deleting an organ/system as a whole is generally more
interpretable than summing single-disease attributions.
\subsection{Historical Counts Are Not Model-Derived Burden}
One may count observed historical diseases:
\[
@@ -148,7 +170,7 @@ model and should not be presented as a model-derived disease burden score.
Without disease severity labels or disease weights, it treats all disease
tokens equally.
\subsection{What the current model does not estimate}
\subsection{What the Current Model Does Not Estimate}
The current model does not directly estimate:
\begin{itemize}[leftmargin=1.5em]
@@ -164,7 +186,7 @@ These interpretations require additional labels, mappings, weights, or model
training objectives. Using the present all-future model to claim these
quantities would be over-interpretation.
\subsection{Post-onset prognosis for the same new disease}
\subsection{Post-Onset Prognosis for the Same New Disease}
For a disease \(d\) that newly occurs at time \(T_{i,d}\), the model cannot
infer the clinical severity of that disease itself. However, after the disease
@@ -180,7 +202,7 @@ be followed by different future disease and mortality risk profiles in people
with different prior trajectories. It should not be described as direct disease
severity.
\subsection{Future extension with reliable recurrence data}
\subsection{Future Extension with Reliable Recurrence Data}
The above interpretation is constrained by the first-occurrence nature of the
current disease sequence. UK Biobank does not provide a reliable longitudinal
@@ -228,8 +250,8 @@ all-future 模型产生
\[
h_i(t)=f_\theta(\mathcal{H}_i(t)),
\]
并且对模型疾病词表 \(\mathcal{D}\) 中的每个疾病 \(d\),估计未来 \(\tau\) 年内的首次
发生风险:
并且对模型疾病词表 \(\mathcal{D}\) 中的每个疾病 \(d\),估计未来 \(\tau\) 年内的
首次发生风险:
\[
p_{i,d}(t,\tau)
=
@@ -248,23 +270,23 @@ all-future 模型产生
\]
这个历史发生指示量不是模型学出来的,而是直接从事件历史中读出的。
\subsection{已经发生疾病的 mask}
\subsection{已经发生疾病的 Mask}
如果某个疾病在 \(t\) 之前或 \(t\) 时已经发生,那么该疾病对应的模型输出不应解释为复发
风险,也不应解释为当前疾病活程度。在汇总未来新发疾病风险时,应对已经发生过的疾病
风险,也不应解释为当前疾病活程度。在汇总未来新发疾病风险时,应对已经发生过的疾病
进行 mask
\[
p^{\mathrm{new}}_{i,d}(t,\tau)
=
\left[1-m_{i,d}(t)\right]p_{i,d}(t,\tau).
[1-m_{i,d}(t)]p_{i,d}(t,\tau).
\]
\subsection{当前模型直接支持的派生}
\subsection{当前模型直接支持的量}
当前模型直接支持以下几类量。
\paragraph{疾病层面的未来首次发生风险。}
对每个模型内疾病 \(d\)
对每个模型内疾病 \(d\)
\[
p^{\mathrm{new}}_{i,d}(t,\tau)
\]
@@ -277,38 +299,57 @@ all-future 模型产生
表示未来 \(\tau\) 年内死亡的概率。死亡是终末结局,不应作为普通疾病负担权重加入疾病
负担求和。
\paragraph{未来无新病且存活的概率}
利用疾病层面风险和死亡风险,可以汇总未来 \(\tau\) 年内无任何模型内新病且存活的概率:
\paragraph{指定疾病集合内的未来新发风险}
对于任意由分析者预先指定的疾病 token 集合 \(G\subseteq\mathcal{D}\),模型可以汇总该
集合内的未来新发风险:
\[
S^{\mathrm{all}}_i(t,\tau)
R^G_i(t,\tau)
=
\left[1-p_{i,\mathrm{death}}(t,\tau)\right]
\prod_{d\in\mathcal{D}}
\left[1-p^{\mathrm{new}}_{i,d}(t,\tau)\right].
1-\prod_{d\in G}\left[1-p^{\mathrm{new}}_{i,d}(t,\tau)\right].
\]
如果用累计 hazard 表示,令
\(\Lambda_{i,d}(t,\tau)=-\log[1-p_{i,d}(t,\tau)]\),则
这个量回答的是:模型估计该个体在未来 \(\tau\) 年内,至少新发生一个 \(G\) 中尚未发生
疾病的概率是多少。它不包含死亡;死亡风险应单独报告为
\(p_{i,\mathrm{death}}(t,\tau)\)
如果将 \(G\) 称为某个器官系统,那么疾病到器官的分组来自模型外部,不应表述为模型
学到的器官评分。
\subsection{死亡风险预测的模型归因}
模型还可以用于计算历史疾病集合对死亡风险预测的模型内部归因。对于疾病集合 \(G\)
令原始死亡风险为
\[
S^{\mathrm{all}}_i(t,\tau)
p_{i,\mathrm{death}}^{\mathrm{orig}}(t,\tau),
\]
将输入历史中属于 \(G\) 的历史疾病 token 删除后,再次查询模型,得到
\[
p_{i,\mathrm{death}}^{(-G)}(t,\tau).
\]
在概率尺度上,归因可以写为
\[
\Delta p^G_i(t,\tau)
=
\exp\left(
-\Lambda_{i,\mathrm{death}}(t,\tau)
-\sum_{d\in\mathcal{D}}
[1-m_{i,d}(t)]\Lambda_{i,d}(t,\tau)
\right).
p_{i,\mathrm{death}}^{\mathrm{orig}}(t,\tau)
-
p_{i,\mathrm{death}}^{(-G)}(t,\tau).
\]
更推荐的主尺度是累计 hazard
\[
\Lambda_{i,\mathrm{death}}(t,\tau)
=
-\log\left[1-p_{i,\mathrm{death}}(t,\tau)\right],
\]
\[
\Delta \Lambda^G_i(t,\tau)
=
\Lambda_{i,\mathrm{death}}^{\mathrm{orig}}(t,\tau)
-
\Lambda_{i,\mathrm{death}}^{(-G)}(t,\tau).
\]
\paragraph{未来无指定疾病集合新发且存活的概率。}
对于任意由分析者预先指定的疾病 token 集合 \(G\subseteq\mathcal{D}\),可以定义
\[
S^{G}_i(t,\tau)
=
\left[1-p_{i,\mathrm{death}}(t,\tau)\right]
\prod_{d\in G}
\left[1-p^{\mathrm{new}}_{i,d}(t,\tau)\right].
\]
这只是指定疾病集合层面的未来 disease-free survival 汇总。如果将 \(G\) 称为某个器官系统,
那么疾病到器官的分组来自模型外部,不能描述为模型学到的器官评分。
这个量应表述为疾病集合对死亡风险预测的模型归因。它不是因果贡献,不是器官损伤评分,
也不是临床疾病负担权重。由于轨迹模型中疾病之间可能存在交互,整体删除一个器官系统
通常比逐个疾病归因后相加更容易解释。
\subsection{历史计数不是模型派生的疾病负担}
@@ -333,8 +374,8 @@ all-future 模型产生
\item 不同疾病 token 之间的相对临床重要性。
\end{itemize}
这些解释都需要额外标签、映射、权重或新的训练目标。用当前 all-future 模型直接声称这些量,
属于过分解读。
这些解释都需要额外标签、映射、权重或新的训练目标。用当前 all-future 模型直接声称
这些量,属于过分解读。
\subsection{同一新发疾病后的预后差异}
@@ -373,21 +414,25 @@ all-future 模型产生
\item 复发或重复事件风险:疾病已经发生后的未来 episode 风险;
\item 死亡风险:与非致死事件竞争的终末结局风险。
\end{itemize}
如果复发 episode 还带有可靠的 episode 层面严重程度标签,例如住院强度、治疗升级或经过
验证的严重程度分级,那么还可以进一步训练有监督的严重程度相关预后模型。但这些扩展都
需要新的数据和新的训练目标,并不是当前 all-future first-occurrence 模型已经具备的能力。
如果复发 episode 还带有可靠的 episode 层面严重程度标签,例如住院强度、治疗升级或
经过验证的严重程度分级,那么还可以进一步训练有监督的严重程度相关预后模型。但这些
扩展都需要新的数据和新的训练目标,并不是当前 all-future first-occurrence 模型已经
具备的能力。
\section{Recommended wording}
\section{Recommended Wording}
\paragraph{English.}
The all-future model is a history-conditioned incident disease and mortality
risk model. Its outputs support future disease-free survival summaries over the
modeled disease vocabulary, but do not directly quantify current disease
burden, organ damage, frailty, or disease severity.
risk model. Its outputs support separate reporting of future mortality risk and
future incident disease risk over analyst-specified disease sets. Historical
disease sets may be ablated to obtain model attribution to predicted mortality
risk, but this is not causal contribution and does not directly quantify current
disease burden, organ damage, frailty, or disease severity.
\paragraph{中文。}
all-future 模型是基于既往轨迹的未来新发疾病和死亡风险模型。它的输出可以支持模型词表
范围内的未来无新病且存活概率汇总,但不能直接量化当前疾病负担、器官损伤、衰弱程度或
疾病严重度。
all-future 模型是基于既往轨迹的未来新发疾病和死亡风险模型。它的输出可以支持分别
报告未来死亡风险,以及指定疾病集合内的未来新发疾病风险。通过删除历史疾病集合可以
得到其对死亡风险预测的模型归因,但这不是因果贡献,也不能直接量化当前疾病负担、
器官损伤、衰弱程度或疾病严重度。
\end{document}