事件预计时间 (空间统计)

摘要

基于先前事件的时间数据,预测事件发生的时间。 通过引入解释变量,可以提高预测的准确性。工具还能分析哪些变量会缩短或延长事件发生的时间。

详细了解事件预计时间的工作原理

插图

事件预计时间工具图示

使用情况

  • 输入要素或表中的每个观测都必须具有相应字段,其中包含观测时间跨度、事件是否已发生的指示器以及任何解释变量。 将分别在时间跨度字段事件指示器字段解释变量参数中提供这些字段。 解释变量可以为连续变量或分类变量,事件指示器只能取值 0(事件未发生)或 1(事件已发生)。 对于时间跨度字段,这通常为个体的实际时间跨度,但通常来说,它是指从事件可能首次发生的时间开始,到事件发生时间(如果事件尚未发生,则为当前时间)结束的时间长度。 例如,要估计树木的生存时间,如果树木存活,则时间跨度字段值应为树木的当前树龄;如果树木已死亡,则为树木死亡时的树龄。 然而,对于估计再次被捕的时间,该字段值应为个人从被释放(首次可能再次被捕的时间)到再次被捕时间(如果个人尚未再次被捕,则为当前日期)的时间长度。 无需提供时间跨度的单位(小时、天、年等),但应以该时间单位解释所有结果。

  • 预测未来某个事件的发生时间本质上是一项困难的任务,因此建议您保持合理的预期。 该工具只能从您提供的解释变量中提取信息,但是诸如基础设施故障等复杂现象涉及许多因素,这些因素通常具有高度局部性,并且对每个个体具有特异性。 在实践中,您通常应将事件的预测时间视为事件可能发生的一般指示,而非对特定日期的高度精确预测。 当推断超出输入数据中最大事件时间的时间时,您应特别谨慎并保持怀疑态度。 虽然时间至事件分析的结果通常不够精确,但其仍然非常有用,可以为未来成本提供大致估计,或者为最有可能接下来发生事件的观测进行资源优先排序和分配。

  • 时间至事件模型本身并不具有空间特性,但通过纳入空间信息来解释地理模式,可以对模型进行改进。 考虑添加空间解释变量,例如地理区域作为分类解释变量,或到关键要素的距离作为连续解释变量。 例如,在模拟城市树木死亡率时,由于建筑物阴影会导致阳光减少,因此与最近建筑物的距离可能非常重要。

  • 删失观测指的是事件尚未发生的观测记录;非删失观测指的是事件已经发生的观测记录。 这种术语源于以下事实:非删失观测具有完整的信息(事件的发生时间已知),但删失观测仅具有部分信息;确切的事件发生时间未知,但已知它长于某个时间量(观测的当前年龄)。

    虽然模型参数的估计同时使用了删失和未删失的观测,但未删失观测提供的信息最多,因为其确切生存时间已知。 一般来说,建议每个解释变量至少具有 10 个未删失观测。 然而,分类变量应被视为多个变量。 具有两个类别的分类变量视为一个变量;具有三个类别的分类变量视为两个变量;具有四个类别的分类变量视为三个变量;以此类推。 此外,每个类别都应该具有多个未删失观测,以便最好地估计分类变量的所有类别的影响。

  • 该工具将产生各种数字和图形输出,以了解解释变量如何影响事件发生的时间、预测事件发生的时间以及评估模型的准确性和可靠性。

    地理处理消息汇总了解释变量的影响以及模型的准确性。 输出要素类或表包含字段和弹出图表,用于估计非删失观测预测何时发生事件。

    详细了解该工具的输出以及如何解释它们

参数

标注说明数据类型
输入要素或表

输入要素或表包含每个观测值的年龄、解释变量和事件指标字段。

Table View
年龄字段

观测值的年龄的数值字段。 这通常是观测值的年龄,但通常是从事件可能发生的第一刻开始,到事件发生时(或到观测被删失时)所经过的时间量。 年龄的单位(例如:小时、天、年)不会在工具中指定,但所有结果都将以该单位进行解释。 例如,如果年龄单位为天,工具预测事件将在未来 2 个时间单位后发生,则表示事件将在未来 2 天后发生。

Field
事件指示器字段

用于指示观测值是否已发生目标事件的字段。 该字段取值只能为 0 或 1。 0 表示事件尚未发生(删失观测);1 表示事件已经发生(非删失观测)。 例如,在预测树木寿命时,0 表示树木仍然存活(树木死亡事件未发生),1 表示树木已经死亡。

Field
输出要素或表

输出要素类或表用于存储对未发生事件的观测记录的事件时间预测结果。

Feature Class; Table
解释变量
(可选)

表示解释变量的字段列表,可帮助预测事件时间。 如果变量为类或类别(例如:材料类型、收入等级),请选中对应的分类复选框。 如果变量为连续型,请保持复选框未选中状态。

Value Table
启用生存曲线弹出窗口
(可选)

指定是否为每条输出记录生成生存曲线弹出窗口。 此弹出图表将显示每条记录的基线生存曲线,以及删失观测的事件时间预测曲线。

  • 选中 - 为数据集中的每条记录生成弹出窗口。 这是默认设置。
  • 未选中 - 不生成弹出窗口。
Boolean

arcpy.stats.EstimateTimeToEvent(in_features, age_field, event_field, out_features, {explanatory_variables}, {enable_survival_curve_popups})
名称说明数据类型
in_features

输入要素或表包含每个观测值的年龄、解释变量和事件指标字段。

Table View
age_field

观测值的年龄的数值字段。 这通常是观测值的年龄,但通常是从事件可能发生的第一刻开始,到事件发生时(或到观测被删失时)所经过的时间量。 年龄的单位(例如:小时、天、年)不会在工具中指定,但所有结果都将以该单位进行解释。 例如,如果年龄单位为天,工具预测事件将在未来 2 个时间单位后发生,则表示事件将在未来 2 天后发生。

Field
event_field

用于指示观测值是否已发生目标事件的字段。 该字段取值只能为 0 或 1。 0 表示事件尚未发生(删失观测);1 表示事件已经发生(非删失观测)。 例如,在预测树木寿命时,0 表示树木仍然存活(树木死亡事件未发生),1 表示树木已经死亡。

Field
out_features

输出要素类或表用于存储对未发生事件的观测记录的事件时间预测结果。

Feature Class; Table
explanatory_variables
[[Variable, Categorical],...]
(可选)

表示解释变量的字段列表,可帮助预测事件时间。 如果为表示类或类别(例如材料类型或收入等级)的变量,请指定变量为 CATEGORICAL;如果变量为连续变量,请指定变量为 NUMERIC

Value Table
enable_survival_curve_popups
(可选)

指定是否为每条输出记录生成生存曲线弹出窗口。 此弹出图表将显示每条记录的基线生存曲线,以及删失观测的事件时间预测曲线。

  • CREATE_POPUP为数据集中的每条记录生成弹出窗口。 这是默认设置。
  • NO_POPUP不生成弹出窗口。
Boolean

代码示例

EstimateTimeToEvent 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 EstimateTimeToEvent 函数。

# Estimate the time until an event.
import arcpy
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.EstimateTimeToEvent(
    in_features = r"myFeatureClass",
    age_field = "myAgeField",
    event_field = "myEventField",
    out_features = r"myOutputFeatureClass",
    explanatory_variables = r"cont_var1 false;cont_var2 false;cat_var1 true;cat_var2 true",
    enable_survival_curve_popups = "CREATE_POPUP"
)
EstimateTimeToEvent 示例 2(独立脚本)

以下独立脚本演示了如何使用 EstimateTimeToEvent 函数。

# Estimate the time until an event.  

import arcpy 

# Set the current workspace.
arcpy.env.workspace = r"c:\data\project_data.gdb" 

# Run tool
arcpy.stats.EstimateTimeToEvent(
    in_features = r"myFeatureClass",
    age_field = "myAgeField",
    event_field = "myEventField",
    out_features = r"myOutputFeatureClass",
    explanatory_variables = r"cont_var1 false;cont_var2 false;cat_var1 true;cat_var2 true",
    enable_survival_curve_popups = "CREATE_POPUP"
)

# Print the messages.
print(arcpy.GetMessages())

相关主题