估计事件发生时间工具根据事件历史发生时间和观测的特定属性,预测一组观测中事件发生的时间。 输入应该为发生过该事件的记录和未发生过该事件的记录的混合。 该工具包含解释变量并估计这些解释变量是否会缩短或延长事件发生的时间。 对于尚未发生该事件的观测,该工具还会预测事件发生前的附加时间。
输入要素或表中的每个观测都必须具有相应字段,其中包含观测时间跨度、事件是否已发生的指示器以及任何解释变量。 将分别在时间跨度字段、事件指示器字段和解释变量参数中提供这些字段。 解释变量可以为连续变量或分类变量,事件指示器只能取值 0(事件未发生)或 1(事件已发生)。 对于时间跨度字段,这通常为个体的实际时间跨度,但通常来说,它是指从事件可能首次发生的时间开始,到事件发生时间(如果事件尚未发生,则为当前时间)结束的时间长度。 例如,要估计树木的生存时间,如果树木存活,则时间跨度字段值应为树木的当前树龄;如果树木已死亡,则为树木死亡时的树龄。 然而,对于估计再次被捕的时间,该字段值应为个人从被释放(首次可能再次被捕的时间)到再次被捕时间(如果个人尚未再次被捕,则为当前日期)的时间长度。 无需提供时间跨度的单位(小时、天、年等),但应以该时间单位解释所有结果。
该工具将产生各种数字和图形输出,以了解解释变量如何影响事件发生的时间、预测事件发生的时间以及评估模型的准确性和可靠性。
可能的应用
时间至事件模型在多个领域都非常有用,其目标是估计事件发生需要的时长以及影响其时长的因素。 以下是此工具的一些潜在应用:
- 基础设施维护 - 估计管道泄漏、桥梁需要大修或变压器发生故障之前的时间。 解释变量可以包括材料类型(分类)、极端天气暴露(分类)和交通负荷(连续)。
- 林业管理 - 模拟树木达到特定直径、需要采伐或遭受病害之前的时间。 解释变量可以包括初始树干直径(连续)、树种(分类)、土壤质量(连续)以及附近树木的竞争程度(分类)。
- 信用违约 - 预测借款人拖欠贷款的时间。 解释变量可以包括贷款金额(连续)、信用评分(连续)、就业类型(分类)以及过去的还款历史记录(分类)。
- 客户留存 - 预测客户何时会取消订阅或更换服务提供商。 解释变量可以包括每月账单金额(连续)、合同期限(分类)、客户服务投诉数量(连续)和收到的促销折扣(分类)。
- 制造业 - 预测机器何时需要维护或更换。 解释变量可以包括运行时间(连续)、机器型号(分类)和工厂温度(连续)。
时间至事件分析和生存分析
时间至事件分析是统计学的一个分支,用于估计、解释和预测一组观测中事件发生的时间,其中假设每个观测在经历一段时间后都会发生该事件。 时间至事件分析在医学研究中得到最广泛应用,它通常被称为生存分析,因为建模的事件是个体的死亡。 因此,时间至事件分析中的许多术语和概念都借鉴自生存分析。 例如,观测发生事件的时间长度称为其生存时间,而估计事件发生时间的曲线称为其生存曲线。 对于诸如预测树木死亡或者预测基础设施何时会出现故障等应用,该术语非常贴切,但在估计再次被捕时间等场景中,其适用性则不那么明确。 在这种情况下,个体的生存时间将为个体再次被捕前的时间长度。 类似地,当谈论个体至少五年内未被再次逮捕的概率时,可以表述为生存时间超过五年的概率。 本主题将根据上下文在讨论事件发生时间和生存时间之间切换,但应将其理解为指代同一概念。
时间至事件分析与生存分析的另一个区别在于,生存分析主要侧重于估计治疗(通常是医学试验中的药物)对生存时间的影响,而较少关注预测个体的生存时间。 从根本上来说,问题在于药物是否延长了生存时间,而非某个特定个体的生存时间。 然而,时间至事件分析更侧重于预测单个观测事件的发生时间,而较少侧重于估计解释变量是否会增加或减少生存时间。 虽然所有生存分析模型都可以用于时间至事件分析(反之亦然),但有些模型更适用于其中一种。 具体来说,该工具使用参数加速失效时间模型,该模型更适合预测事件发生时间;而医学试验通常使用非参数 Cox 比例风险模型,该模型更适合估计医疗治疗的效果。
生存曲线
当估计事件发生时间时,会根据每个观测的解释变量为其创建一条生存曲线。 生存曲线是一个函数,用于绘制生存时间超过给定时间量的概率(换句话说,个体在给定时间之后仍然生存的概率)。 生存曲线总是从 1 开始,并随着时间的推移而减小到 0。 例如,以下生存曲线类似于人类的生存曲线:
在此曲线中,绝大多数个体的生存时间超过 20 年,之后比例才开始加速下降。 到 60 岁时,仍有略低于 80% 的个体生存。 中位生存时间(y 轴上为 0.5)约为 80 年,到 100 年后,几乎没有个体生存。
通过生存曲线,可以计算事件发生时间的任何分位数。 例如,事件发生时间的第 5 个百分位数是曲线等于 0.95(即事件尚未发生的概率为 95%)时 x 轴的值,第 75 个百分位数是曲线等于 0.25 时的值。 这些分位数可用于创建置信区间;例如,第 5 个百分位数和第 95 个百分位数之间的时间是事件发生时间的 90% 置信区间。 虽然可以计算任何分位数,但生存曲线通常用中位生存时间来概括(当生存曲线等于 0.5 时,x 轴的值)。
加速失效时间模型
用于估计事件发生时间的统计模型称为加速失效时间 (AFT) 模型。 AFT 模型的工作原理是假设每个观测的老化速度不同,这取决于其各自的解释变量。 例如,人们常说(尽管并不准确)狗的衰老速度是人类的七倍,即 3 岁的狗的生存时间相当于 21 岁的人类。 再比如,两座桥梁的老化速度可能会有所不同。 一座桥梁可能已经使用了 30 年,但其老化程度与另一座仅使用了 10 年的桥梁相当,这取决于桥梁的属性,如建筑材料、交通流量和环境条件。
在 AFT 模型中,解释变量的作用是加速或减缓事件发生时间,这表示为时间比率。 两个观测 A 和 B(各自具有不同的解释变量)之间的时间比率为 A 和 B 的预期生存时间之比。 例如,时间比率等于 1.3 意味着观测 A 的预期生存时间比 B 长 30%。 同样,时间比率为 0.6 意味着预期生存时间比 B 短 40%。 时间比率等于 1 意味着两个观测的预期生存时间相同。 请注意,时间比率隐含了需要进行比较的基线或参考值(在本例中为观测 B 的生存时间)。
时间比率的作用是水平拉伸生存曲线。 例如,下图显示了四条生存曲线,从左到右分别显示了时间比率为 1(蓝色曲线作为比较基准)、2(橙色曲线)、3(绿色曲线)和 4(红色曲线)的效果。 由于难以看出这些曲线是彼此的拉伸版本,因此在中位生存时间处绘制了一条水平虚线。 请注意,时间比率 2 的中位生存时间是时间比 1 的两倍。 同样,时间比率 3 和 4 的中位生存时间分别为时间比 1 的三倍和四倍。 虽然虚线位于在中位值处,但使用 y 轴的任何其他值将同样保留这些比率。
将最左边的蓝色曲线用作基线是一个任意的选择。 如果将最右侧的红色曲线定义为进行比较的基线,则时间比率将分别为 0.25、0.5、0.75 和 1(从左到右)。 这些小于 1 的时间比率指示红色生存曲线在四条曲线中具有最长的预期生存时间。
该工具将估计每个解释变量的时间比率,检验时间比率的统计显著性,并在消息中显示结果(有关详细信息,请参阅下方地理处理消息部分)。 时间比率的解释取决于解释变量是分类变量还是连续变量,因为两者定义其基线的方式不同。 对于分类变量,必须将其中一个类别指定为参考类别,然后为与参考类别相比的所有其他类别创建时间比率。 例如,如果分类变量字段具有唯一值 A、B 和 C,并且类别 A 为参考类别,则将仅针对类别 B 和 C 计算时间比率。 如果类别 B 的时间比率为 2.2,则意味着在假设所有其他属性均相同的情况下,类别 B 中观测的预期生存时间是类别 A 中观测的 2.2 倍(或者说,类别 B 的生存曲线比类别 A 的生存曲线拉伸了 2.2 倍)。 该工具将使用按字母数字排序的第一个类别作为参考类别,但是可以重新分类字段值以更改将用作参考类别的类别。
对于连续变量,时间比率为解释变量每增加一个单位时生存时间的变化。 在这种情况下,将比较解释变量值恰好相差 1(其他解释变量相同)的两个观测。 例如,当估计树木生存时间时,如果树干直径(以米为单位)为解释变量,则时间比率将衡量树木直径增加 1 米时生存时间的增加(或减少)。 如果树干直径较大的树木往往生存时间更长,则时间比率将大于 1;如果这些树木往往生存时间更短,则时间比率将小于 1。 由于时间比率是一个乘数,因此解释变量增加两个单位,生存时间将增加时间比率的平方;解释变量增加三个单位,生存时间将增加时间比率的立方;以此类推。 连续解释变量的时间比率的这种复合性质可能会导致建模困难(有关详细信息和建议,请参阅以下最佳实践、限制和建议的工作流部分)。
AFT 模型估算
AFT 模型使用威布尔分布来模拟生存曲线:
尺度参数 (λ) 被估计为为解释变量 (Xi) 和估计系数 (βi) 的线性模型。 正如上一部分所述,正是比例参数控制着生存曲线的拉伸程度。 直观地说,观测的特定属性将拉伸(或压缩)该观测的生存曲线,具体取决于这些属性通常与更长还是更短的生存时间相关。
所有观测将共享形状参数 (ρ),由此生存曲线将在同一时间范围内呈现各种形状。 下图显示了具有相同尺度参数的威布尔分布的不同形状:
形状参数有时也称为加速度参数,因为它与生存曲线是加速还是减速有关。 加速将通过风险函数来衡量,风险函数定义为事件在特定时间发生的可能性,假设该事件在此时间之前未发生。 例如,如果较旧的桥梁比新桥梁在不久的将来更可能需要维修,则风险函数将随时间增加(换句话说,较旧的桥梁比新桥梁具有更高的风险),因此生存曲线将随着时间而加速。 相反,如果较旧的桥梁在不久的将来不太可能比较新的桥梁更需要维修,则风险率将会降低,并且生存曲线也会减速。 形状参数值大于 1 指示生存曲线加速,值小于 1 指示生存曲线减速。 但是,该模型无法估计变化的风险率,其中生存曲线在不同时间加速和减速(例如,人类生存时间中,婴儿的风险较高,儿童和青壮年的风险较低,老年人的风险再次较高)。
所有系数和形状参数均通过最大似然法进行估计,并由工具显示为消息。
删失观测值和预测
之前的部分描述了如何估计每个观测的生存曲线,无论观测事件是否已经发生。 例如,可以为已经出现故障的桥梁创建生存曲线。 本质上,这条生存曲线显示了如果采用现在相同的属性建造桥梁,其预期生存时间。 虽然此信息非常有用,但创建生存曲线来预测未发生事件的观测的剩余生存时间将更加有用(例如,预测现有桥梁在需要维修之前还能使用的时间)。
删失观测指的是事件尚未发生的观测记录;非删失观测指的是事件已经发生的观测记录。 此术语源于以下事实:非删失观测具有完整的信息(其生存时间已知),但删失观测仅具有部分信息;确切的生存时间未知,但已知其长于某个时间量(观测的当前时间跨度)。 这类似于一个文档可以是未审查的也可以是审查的:文档的所有信息都可能可用(未审查的文档),或者部分内容可能被审查者删节(审查的文档)。
对于删失观测,目标为创建一条生存曲线,以根据事件的当前时间跨度估计事件发生前的剩余时间。 可以通过以个体已生存的时间量为条件,构建此剩余生存时间曲线。 在数学上,额外的生存时间曲线 SAdd(T) 计算为 SAdd(T) = S(C+T)/S(C),其中 T 是在审查时间 C 之后的额外时间单位。
可将剩余生存时间曲线可视化为对观测在删失时间之后的生存曲线进行重新缩放。 例如,下图显示了一条生存曲线,该曲线对应在时间 4 处被删失的观测。 基于其解释变量,该个体生存至少 4 个时间单位的概率约为 60%(删失时间处的 y 轴值)。 但是,由于已知该个体至少生存了 4 个时间单位(删失时间),因此 y 轴值将重新缩放以再次从 1 开始(换句话说,该个体至少生存 4 个时间单位的概率为 100%)。 同样,x 轴再次从 0 开始,以测量从删失时间起向前推进的时间。 在本示例中,具有这些解释变量的个体的中位生存时间约为 5 个时间单位(曲线在原始 y 轴上与 0.5 相交的位置),但如果已知该个体已生存了 4 个时间单位,则中位剩余生存时间约为 2 个时间单位(曲线在重新缩放的较小 y 轴上与 0.5 相交的位置),总生存时间为 6 个时间单位。 换句话说,已知该个体已生存了 4 个时间单位,可将总中位生存时间从大约 5 个时间单位增加为大约 6 个时间单位。 观测在被删失前生存的时间越长,其预期生存时间相较于基线生存曲线也会越长。
对于删失观测,显示删失后事件发生的剩余时间的生存曲线将显示在输出要素或表的弹出图表中。 对于删失和未删失要素,个体生存曲线也会显示在弹出图表中。
删失时间处观测的时间跨度通常为观测的当前时间跨度,但也可能是最后一次观测个体时的个体时间跨度,例如最近一次检查桥梁的日期。 在这种情况下,将从最后一次观测时的观测时间跨度开始计算剩余生存时间。
Kaplan-Meier 曲线
由于每种解释变量的组合都会生成不同的生存曲线,因此难以量化特定观测的预期生存时间是比典型观测更长还是更短。 观测的一些解释变量会延长生存时间,而另一些则会缩短生存时间,但总体上这些变量是延长还是缩短观测的生存时间并不明确。 为了提供一条可用于与个体生存曲线进行比较的基准曲线,该工具将为数据计算一条 Kaplan-Meier 曲线。
Kaplan-Meier 曲线是对生存函数的非参数估计,其中将忽略解释变量,并估计随时间推移未发生事件的观测的比例。 它通过使用以下公式依次调整事件时间和删失时间来实现这一点:
在公式中,Ei 是在时间 ti 发生的事件数量,Ni 是在时间 ti 之前尚未发生事件或未被删失的观测数量。
该曲线将可视化为一个阶梯函数,其在每次发生事件时都会下降。 该曲线无法超过最大时间跨度字段值对应的时间,且生存概率永远不会低于被删失个体的百分比。 例如,在以下 Kaplan-Meier 曲线中,时间跨度字段的最大值约为 3500(x 轴的最大值),并且将删失略高于 40% 的观测(曲线的最小值略大于 0.4)。
数据的 Kaplan-Meier 曲线将显示在地理处理消息的可折叠部分中。 它也显示在输出要素或表的弹出图表中,以便可以直接与单个观测对象的生存曲线进行比较(有关更多信息,请参阅下一部分)。
工具输出
该工具将返回各种输出以调查结果。 输出包括输出要素类或表、地理处理消息、弹出图表和直方图。
输出要素或表
对于要素输入,将根据中位事件发生剩余时间绘制输出要素图层。 删失要素将以红色和粉红色进行绘制,其中较深的阴影指示预计该事件将更早发生。 非删失要素将以浅灰色进行绘制,并且如果其符号重叠,则会将其配置为在删失要素下方绘制。
对于表和要素输入,输出将包含所有输入字段的副本,以及事件发生剩余时间的各种分位数。 这些字段将包含事件发生剩余时间的第 5 个、第 10 个、第 25 个、中位数(第 50 个)、第 75 个、第 90 个以及第 95 个百分位数。 可以使用这些值来创建事件可能发生的时间范围,例如,可以使用第 5 个和第 95 个百分位构造 90% 置信区间。 对于未审查的要素,所有分位数域值都将包含空值,因为如果事件已经发生,则无需预测事件何时发生。
弹出图表
如果选中启用生存曲线弹出窗口参数,则输出要素或表还将包含每个观测的弹出图表字段。 对于要素,可以通过使用探索工具单击地图中的要素以访问弹出图表。 对于表,可以通过右键单击属性表中的记录行来访问弹出图表。
对于未删失观测,弹出图表将显示该要素的生存曲线(蓝色曲线)以及一个指示事件时间的蓝点。 由此可以确定是在观测的预期生存时间的早期还是晚期发生了事件。 对于事件发生时间显著早于或晚于模型预期的观测,可能需要进一步深入分析。 弹出图表中还会包含 Kaplan-Meier 曲线(橙色曲线)作为比较的基准。 由此可以判断该观测的预期生存时间是比典型观测更长还是更短。 例如,在下图中,生存曲线位于 Kaplan-Meier 曲线的左下方,这意味着该事件的发生时间预计早于大多数其他观测。 蓝点也位于生存曲线的中间位置,这意味着事件发生的时间与模型基于其解释变量的预测基本一致。
注:
弹出图表的 x 轴将延伸到生存曲线达到 0.1 为止(因为生存曲线永远不会达到零,所以需要一个截止值)。 但是,由于 Kaplan-Meier 曲线无法延伸超过时间跨度字段的最大值,因此其通常会在生存曲线达到 0.1 之前结束。 为确保可以看到 Kaplan-Meier 曲线,即使生存曲线仍未达到 0.1,x 轴也永远不会延伸到 Kaplan-Meier 曲线长度的两倍以上。
对于删失要素,弹出图表也将包含该观测的生存曲线和 Kaplan-Meier 曲线,但将使用一个蓝色圆圈,而非点来表示删失时间。
仅针对删失要素,弹出图表还将包含一个图表,其中显示了删失后事件发生的剩余时间。 将以水平和垂直虚线绘制中位剩余时间,用于标识模型预测事件发生的概率为 50% 的时间。 x 轴将延伸到曲线达到 0.4 为止,确保始终显示中位数。
可以将鼠标悬停在任何弹出图表上以查看曲线的具体值。
地理处理消息
地理处理消息包含多个部分,其中总结了解释变量的影响以及与模型对数据拟合程度相关的诊断信息。
连续解释变量
消息的第一部分包含一个表格,其中总结了连续解释变量的影响。 对于每个变量,该表格将显示时间比率、系数及其标准差(来自威布尔分布尺度参数)、用于检验系数统计显著性的 z 得分和 p 值,以及时间比率 95% 置信区间的下限和上限。
该表格的最后一行包含截距项,但其原始值通常没有实际意义。 相反,截距的作用是将生存曲线缩放至时间跨度字段的时间单位。 例如,如果将时间跨度字段值由小时转换为日,则所有时间比率将保持不变,但截距的时间比率将除以 24(从小时到天的转换)。 因此,无需在工具中指定时间跨度字段的单位,并且结果均保持一致,不考虑单位。
注:
对于每个变量,将由 AFT 模型直接估计系数及其标准差,并使用 z 检验来检验其统计显著性。 然后,通过取系数的指数来计算时间比率:exp(coefficent)。 通常更倾向于使用时间比率而非系数,因为时间比率相对于原始生存时间进行解释,而系数相对于生存时间的对数进行解释。 将通过为系数创建置信区间并计算端点的指数来获得置信区间的上限和下限。
分类解释变量
消息的第二部分包含多个表格,其中总结了分类解释变量的影响。 对于每个分类变量,将显示一个表格,其中包含其各个类别的影响。 参考类别将显示在表格上方,必须相对于此类别来解释所有时间比率。 例如,在下图中,分类变量为病房编号,病房 1 为参考类别。 病房 2 中的观测对象比病房 1 中的观测对象的存活时间长 5.345 倍(时间比率等于 5.345),而病房 8 中的观测对象比病房 1 中的观测对象的存活时间短 23.6%(时间比率等于 0.764)。 p 值还表明,病房 4、5 和 7 与病房 1 的差异不显著。
注:
可将每个分类变量转换为一组二元(0 或 1)变量,这些二元变量在 AFT 模型中用作连续解释变量。 对于 K 个类别,将创建 (K-1) 个二元变量,除了参考类别之外,将为每个类别分配一个二元变量(此过程称为指示符编码)。 必须排除一个类别并将其用作参考类别,因为包含所有类别的二元变量会导致完全共线性,由此导致模型无法估计系数和时间比率。
威布尔形状参数
在解释变量系数表之后,该消息会显示一个表格,其中汇总了威布尔分布的形状参数。 该表格还包含 z 得分和 p 值,用于检验形状参数是否与 1 存在统计显著性差异。 同时还提供了 95% 置信区间的下限和上限。
形状参数用于表征生存曲线是加速还是减速。 显著大于 1 的值指示加速,这意味着观测对象存在的时间越长,则其在短期内发生事件的可能性将越高。 显著小于 1 的值指示加速,这意味着观测对象存在的时间越短,则其在短期内发生事件的可能性将越高。 与 1 无显著差异的值指示,存在时间越短和存在时间越长的观测在短期内发生事件的可能性相同。 该模型假设生存曲线始终保持加速或减速,但无法在两者之间进行切换。
模型汇总统计数据
消息的最后一部分是模型汇总部分,其中包含与预测整体精度和模型拟合度相关的统计数据。 该部分将显示以下统计数据:
- 一致性指数 - 一个介于 0 和 1 之间的值,用于指示模型能够正确预测一个个体是否将比另一个个体的生存时间更长的概率。 接近 1 的值指示模型几乎总能预测先发生该事件的个体,而接近 0.5 的值指示模型在预测事件顺序方面与随机预测没有显著差异。 低于 0.5 的值非常少见,但如果出现,则意味着模型的预测精度甚至不如随机猜测。 该值计算为配对个体中模型正确预测两个个体中先发生该事件的个体的比例。 删失要素不会用于计算,因为其生存时间未知。 实际上,该值通常介于 0.6 和 0.8 之间。
- AIC - 用于拟合 AFT 模型的 Akaike 信息准则 (AIC)。 该值主要用于提供信息,但也可以用于高级工作流,例如,在不同的解释变量组合之间构造嵌套似然比检验。
- P 值 - 解释变量全局显著性检验的 p 值。 该值指示解释变量共同作用是否显著改善了模型的预测。 如果此值不具有统计显著性(通常大于 0.05),则模型的性能与完全不提供解释变量的性能没有显著差异。 可以使用似然比检验来确定该值。
偏差残差直方图
输出要素图层还包含观测对象偏差残差的直方图。 偏差残差在概念上与其他回归模型中的残差类似,因为它们量化了观测对象的生存时间是比模型预测的更长还是更短。 正偏差残差表示个体的生存时间比预测的更长,而负偏差残差表示个体的生存时间比预测的更短(请注意,某些资料中对正负符号的定义可能相反)。 如果模型拟合良好,则偏差残差的平均值应接近零。
对于未删失观测值,有些个体的生存时间会比模型预测的更长或更短,因此其偏差残差可能为正,也可能为负。 然而,删失观测的偏差残差始终为正。 因此,将根据事件指示符字段对直方图进行分割,分别显示删失和未删失观测的直方图。
偏差残差对于研究结果中的异常值最有用,并且两个直方图中的极值分别具有不同的意义。 对于未删失观测,负极值指示观测发生该事件的时间比模型预测的要早得多,而正极值则指示观测发生该事件的时间比预测的要晚得多。 在任一方向上大于 3 的值可能指示存在异常值或异常观测,可能需要进一步调查或者从数据集中将其移除。 对于删失观测值,这些值的意义不大,但它们通常反映了观测在被删失之前,在其生命周期中的进展程度。 最左侧的值(接近零)指示观测在其生命周期的早期被删失,而最右侧的值指示观测在其生命周期的晚期被删失(甚至在被删失之前,其生存时间可能已超过模型的预测)。
将使用以下公式计算偏差残差:
在公式中,S-hati(ti) 表示观测在事件发生时(或被删失时)的估计生存概率,δi 为事件指示变量。
注:
删失观测的偏差残差始终为正,因为如果个体已生存任何一段时间,则其预测的总生存时间将比其基线生存曲线预测的更长(请参阅以上删失观测与预测部分中的图像以了解其原因)。 此过程可确保对于正确指定的模型,偏差残差(删失和未删失)的总体平均值等于零。
最佳做法、限制和建议的工作流
该工具存在一些可能遇到的限制和挑战。 以下是使用该工具时的常规建议和最佳做法:
预测未来某个事件的发生时间本质上是一项困难的任务,因此建议您保持合理的预期。 该工具只能从您提供的解释变量中提取信息,但是诸如基础设施故障等复杂现象涉及许多因素,这些因素通常具有高度局部性,并且对每个个体具有特异性。 在实践中,您通常应将事件的预测时间视为事件可能发生的一般指示,而非对特定日期的高度精确预测。 当推断超出输入数据中最大事件时间的时间时,您应特别谨慎并保持怀疑态度。 虽然时间至事件分析的结果通常不够精确,但其仍然非常有用,可以为未来成本提供大致估计,或者为最有可能接下来发生事件的观测进行资源优先排序和分配。
时间至事件模型本身并不具有空间特性,但通过纳入空间信息来解释地理模式,可以对模型进行改进。 考虑添加空间解释变量,例如地理区域作为分类解释变量,或到关键要素的距离作为连续解释变量。 例如,在模拟城市树木死亡率时,由于建筑物阴影会导致阳光减少,因此与最近建筑物的距离可能非常重要。
- 模型假设每个观测在经过一段时间后都会发生该事件,但此假设在某些情况下并不成立。 例如,当预测再次被捕的时间时,有些人将永远不会再次被捕,但模型仍会为其预测生存曲线。 在实践中,如果某个观测值的预测剩余生存时间非常大,则可能意味着该事件很可能永远不会发生。
- 对于连续解释变量,时间比率是解释变量每增加一个单位时生存曲线的乘性变化。 然而,对于某些变量,一个单位的变化微乎其微,即使对于非常显著和重要的解释变量,也会导致时间比率非常接近 1。 例如,在预测屋顶何时将需要维修时,建筑物的面积(以平方米为单位)可以用作解释变量。 然而,即使建筑物的面积非常重要,仅增加一平方米对生存曲线的影响也非常小。 如果某个解释变量非常显著(z 得分较高和 p 值较低),但计算出的时间比率等于 1.000 或非常接近该值,建议将该字段的值除以一个较大的常数值。 例如,将平方米变量除以 100 将产生相同的生存曲线和显著性结果,但时间比率现在将被解释为建筑物面积每增加 100 平方米的变化,由此可能会产生更易于解释的时间比率。 将任何解释变量(或时间跨度字段)乘以或除以一个常数值都会产生等效的生存曲线,因此如果这有助于解释结果,建议您重新调整这些值的比例。
- 由于时间比率具有乘性,因此任何连续解释变量的较大值(与其余数据的值相比)都可能导致不稳定以及生存曲线不合理地长或短。 时间比率表示解释变量每增加一个单位的变化,这种变化呈指数级累积。 例如,解释变量增加五个单位会使生存曲线延长至时间比率的五次方。 当解释变量的值较大时,这些指数可能会变得非常大,从而生成不稳定的生存曲线。 异常值尤其会带来问题,但即使是非异常值的较大值仍然可能生成不稳定的生存曲线。 在这些情况下,一个潜在的解决方案是对解释变量应用对数变换。 虽然这会使得解释变量的时间比率更难以解释(现在它表示解释变量的对数每增加一个单位时生存曲线的拉伸),但将解释变量转换为对数级别通常可以抵消时间比率的累积效应,从而生成更合理的生存曲线。
虽然模型参数的估计同时使用了删失和未删失的观测,但未删失观测提供的信息最多,因为其确切生存时间已知。 一般来说,建议每个解释变量至少具有 10 个未删失观测。 然而,分类变量应被视为多个变量。 具有两个类别的分类变量视为一个变量;具有三个类别的分类变量视为两个变量;具有四个类别的分类变量视为三个变量;以此类推。 此外,每个类别都应该具有多个未删失观测,以便最好地估计分类变量的所有类别的影响。
- 在某些情况下,可能难以定义观测对象生命周期的起点。 例如,需要定期对桥梁进行维修和维护,因此在预测下一次需要维修的时间时,开始日期可以是桥梁最初建造的日期,也可以是桥梁上次需要维修的日期。 在这种情况下,您将需要判断一座经过维修的桥梁是否等同于一座新桥梁。 如果您认为经过维修的桥梁等同于新桥梁,则可以将单座桥梁多次纳入数据中以帮助构建模型(每次需要进行维修时纳入一次)。 但是,如果您认为经过维修的桥梁不等同于新桥梁,则可以尝试使用之前该桥梁需要维修的次数作为解释变量。
虽然对于时间至事件分析(生存分析)不存在任何完美工作流,但以下是用于构建和评估模型的通用模板:
- 探索输入数据,并确定将使用的解释变量。 选择已知或预期与生存时间相关的解释变量,并使用图表对其进行探索。 解释变量与生存时间的散点图在确定与生存时间相关的变量时特别有用(遗憾的是,仅未删失观测可用于此操作)。 请特别注意连续解释变量中的任何异常值,并考虑将其移除或者应用对数变换。 对于分类变量,确保每个类别均存在多个未删失观测,必要时可以合并或移除未删失观测值数量较少的任何类别。
- 根据数据的表示方式,可能需要通过大量的数据工程来创建时间跨度和事件指示符字段。 例如,可能需要将开始和结束日期字段转换为时间跨度值(在计算字段工具中使用 DateDiff Arcade 表达式对此非常有用),或者将文本字段重新分类为二进制事件指示符字段。
- 运行该工具并查看任何警告或错误后,您应该检查模型的整体精度,并留意是否存在拟合不佳或模型设定不当的迹象。 查看偏差残差的直方图,并特别注意未删失观测中的极端残差值(正值或负值)。 在消息的“模型汇总”部分中,评估 p 值和一致性指数,如果 p 值不显著(这种情况很少见),则应尝试寻找能够更好地估计生存时间的解释变量。 您还应评估一致性指数是否足够大,同时保持合理的预期。
- 如果模型的整体精度令人满意,接下来您应查看消息中的系数表,以确定对生存时间产生影响的解释变量并评估其影响程度。 请考虑移除任何不具有统计显著性的解释变量。
- 对于要素,接下来需要探索地图中的输出要素图层并寻找空间模式。 某些区域的生存时间是否比其他区域更长?
- 最后,浏览感兴趣的个体观测的弹出图表和属性表以查看其估计的生存曲线。
参考资料
使用了以下资源来实现该工具:
- Collett, David. 2023. "Modelling survival data in medical research." Chapman and Hall/CRC. https://doi.org/10.1201/9781003282525.
- Davidson-Pilon, Cameron. 2019. "lifelines: survival analysis in Python." Journal of Open Source Software. 4(40), 1317, https://doi.org/10.21105/joss.01317.
- Klein, John P. and Melvin L. Moeschberger. 2003. "Survival Analysis: Techniques for Censored and Truncated Data." Springer Science & Business Media. ISBN 0-387-95399-X.