Skip to content

算法Algorithm

Aalen–Johansen 估计量

Aalen-Johansen estimator

按时间顺序相乘局部转移矩阵,把多状态风险增量转换成总和为一的状态概率。

形式陈述 ​

设状态空间有限。Yh(t) 是事件前在状态 h 且仍被观察的人数,dNhj(t) 是该时刻从 h 转到 j 的人数。对 h≠j,定义

dA^hj(t)=dNhj(t)Yh(t),dA^hh(t)=−∑j≠hdA^hj(t).

无在险者且无事件的行取零增量,并承认该处没有新的转移信息。令 Q(t)=I+dA^(t),采用行概率向量约定,则

P^(s,t)=∏s<u≤t⟶Q(u),p^(t)=p^(s)P^(s,t).

箭头规定较早时刻的矩阵放左边。每行和为一;合法转移计数使元素非负。连乘因此保持概率总和,而每一笔转出概率同时从原状态扣除、加到目的状态。

估计一般条件转移概率 P{X(t)=j∣X(s)=h} 时,标准理论使用合适的 Markov 条件、可识别的风险集以及独立删失/截断条件。某些非 Markov 情形仍可一致估计边缘状态占据概率,但不能据此给整张矩阵的每个条件转移元素都作同样解释。

用三态竞争风险看懂乘积 ​

状态 0 表示尚无事件,1,2 是两种吸收终点。五人均从状态 0 开始。时间 1 一人发生类型 1;时间 2 一人删失;时间 3 一人发生类型 2。因此两个事件时刻的首行分别是

Q(1)0⋅=(4/5,1/5,0),Q(3)0⋅=(2/3,0,1/3),

吸收状态的行仍是单位矩阵的对应行。由 p(0)=(1,0,0),第一次更新得到 (4/5,1/5,0);第二次更新把尚无事件的 4/5 中的三分之一送入状态 2,得到

p^(3)=(8/15,1/5,4/15).

三个数之和为一。删失只减少第二个时刻的分母,没有产生新的状态质量。在一般多状态模型中,先到达某状态的概率也会影响随后沿该状态出边转移的概率,所以矩阵顺序不能交换。

算法与不变量 ​

先把同一对象的连续观察段整理成正确的出发状态和到达状态,再按事件时间排序。每个时刻先使用事件前风险集构造 Q,然后右乘当前概率向量,最后更新下一时刻的风险集。输入包括进入、退出、删失及转移类型;输出包括转移矩阵或所需初始分布下的占据概率。

若只需一个初始分布,m 个事件时刻、K 个状态的稠密计算为 O(mK2);保存完整矩阵并直接相乘为 O(mK3)。应逐步核对非负性和行和。多个转移若被粗糙时间精度压在同一时点,要明确事件前计数规则,不能偷偷把一个人的两次顺序转移当成同时发生。

直觉

一名对象可能从健康进入患病,也可能直接死亡。怎样把各条转移边上的局部风险,合成为“到时间 t 处于哪个状态”的概率?Aalen–Johansen 估计把每个事件时刻的小转移矩阵,按时间顺序相乘。

例子与边界

反例与边界 ​

本例若把类型 1 当普通删失,仅对类型 2 用 1−S^KM,会得到 1/3,而实际累计发生率是 4/15。两者差异来自第一种事件已经夺走了部分能够发生第二种事件的概率质量。

事件只在定期检查时发现、真实转移时刻未知时,以上精确事件时刻算法不再直接适用。资料中的“最后健康”和“首次患病”定义了区间;把首次检查日当真实转移日,是另一种观察目标而非无损处理。

推论与应用

竞争风险的累计发生率是吸收状态的占据概率。复杂疾病过程则可同时呈现健康、患病和死亡占据率。计数过程保证分母的时间语义,矩阵乘积保证概率流动的记账一致性。

参考资料
关系图谱12 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组