基本生态理论的验证往往依赖于预测(Mouquet等人,2015年)。此外,时空预测可以帮助区域管理者最小化生态事件的负面影响,例如由虫害传播造成的损害(Maris等人,2018年;Hamer等人,2020年)、有害藻类爆发(Ding,2024年;Heggerud等人,2024年)、野火(Michail等人,2024年)以及地表动态(Koehler & Kuenzer,2020年)。这解释了为什么在时空预测领域有大量的研究,即使用预测模型来估计自然事件的时间和地点(Crisci等人,2012年;Capinha,2019年;Ramazi, Kunegel-Lion等人,2021-a)。
现有的策略包括统计模型(例如贝叶斯层次模型和稀疏高斯条件随机场;Gelman等人,2004年;Wytock & Kolter,2013年)、深度架构(CNNs、RNNs;LeCun等人,1989年;Elman,1990年)以及混合模型(例如深度空间变形;Wikle & Zammit-Mangion,2023年)。
然而,预测未来并非易事。首先,需要预处理收集到的原始数据。原始数据的预期结构是一个表格,其中每一行记录了某个特定时间(可能还有空间)单位的可用协变量值。因此,预处理包括将表格转换为所使用的计算机软件所需的特定格式、填补缺失值,并调整数据以适应所需的预测范围。其次,必须开发一个预测模型。这包括从可能的众多特征(预测因子)及其历史值中选择合适的特征,提出候选模型,根据数据校准模型参数,比较模型并根据某些性能标准选择最准确的模型,最后可视化结果。最后,需要评估最终模型,即在不同于校准数据的新数据集上测试模型性能。此外,在时空问题中,某些步骤需要特别小心处理。最重要的是模型评估,通常的做法是将数据集随机分为用于校准参数的训练数据集和用于衡量模型性能的测试数据集(Medar等人,2021年)。然而,这种随机分割适用于独立同分布的数据实例,在时空问题中可能会高估模型性能,因为它忽略了未来实例与当前实例之间的依赖性。空间自相关性也可能导致信息泄露,即训练集和测试集中的相邻位置相似,从而产生乐观的估计;这个问题及其解决方法已有详细记录,最近的研究量化了不当分割带来的偏差(Roberts等人,2017年;Brenning,2012年)。为了评估预测器,数据必须按时间进行分割,即将在时间T之前收集的实例用于训练,将在时间T之后收集的实例用于测试模型(Ramazi, Kunegel-Lion等人,2021-b)。这是因为实际上,未来是根据过去的信息来预测的,而不是基于未来的情况。
为了处理这一过程的繁琐性,已经开发了一些有用的工具包来处理特定的步骤。例如,R语言中的spacetime(sp)包通过提供表示不同类型时空数据的集成格式来加速数据处理(Pebesma,2012年)。同样,在Python语言中,tsfresh(Christ等人,2018年)、cesium(Naul等人,2016年)和seglearn(Burns等人,2018年)主要关注时间序列的特征提取,而pyts(Faouzi等人,2020年)和tslearn(Tavenard等人,2017年)仅限于时间序列分类,不支持时间序列预测。
另一方面,像tensorflow(Abadi等人,2016年)和scikit-learn(Pedregosa等人,2011年)这样的流行Python包提供了广泛的模型和功能用于模型开发,但它们并未完全自动化时空预测,也无法处理时空数据的复杂性,如正确的模型评估。因此,用户需要具备足够的背景知识才能获得可靠的预测结果。
鉴于影响生态事件的因素通常很多(Chen等人,2020年),特征选择过程也是一个决定性因素(Effrosynidis等人,2021年)。然而,据我们所知,目前没有支持预测任务的工具包能够系统地进行特征和模型选择以最小化预测误差(L?ning等人,2019年;Zammit-Mangion等人,2021年)。现有工具包的另一个不足之处是未能找到最佳的历史值长度,这种长度可以在不使模型因过去冗余信息而负担过重的情况下提高模型性能。
为了填补这些空白,我们推出了STPredict,这是一个完全自动化且灵活的时空预测工具包。虽然像scikit-learn这样的现有库提供了单独的学习器和工具(如tsfresh)专注于特征提取,但STPredict的贡献在于将整个时空预测工作流程整合为一个自动化且可重复的过程。给定原始时空表格,STPredict(i)执行预处理(包括数据填补和历史特征构建),(ii)应用考虑泄漏问题的时间适当分割并处理预测范围间隙,(iii)对候选预测因子、特征子集和历史长度进行系统性和并行搜索,以基于验证性能选择接近最优的配置,(iv)支持用户指定的“未来”协变量下的未来预测。尽管实现了自动化,用户仍可以在任何阶段进行干预——预处理、历史长度和特征选择、模型校准、模型选择和评估——并且还可以插入和基准测试自定义模型;STPredict会一致地比较所有候选模型。这种自动化取代了脆弱的手动组装流程——其中小的实现选择可能会无意中泄露信息或导致评估偏差——提供了一个可重复的程序,从而产生更可靠的性能估计和预测结果。
我们在第2节描述了该工具包,这是本文的方法论核心(即包中实现的方法)。第3节是一个说明性案例研究,展示了这些方法的输出。