TALKS:解决模型-数据差异的系统框架

news2025/1/21 8:08:11

资料收集于网络,仅供学习使用

TALKS: A systematic framework for resolving model-data discrepancies

https://doi.org/10.1016/j.envsoft.2023.105668
TALKS

问题现状

TALKS框架

TALKS(Trigger, Articulate, List, Knowledge elicitation, Solve),作为解决模型数据差异的一种方法。该框架强调,数据与模型输出之间的不匹配可能是由于模型、数据或两者都存在问题。

模型与数据不一致

模型和数据在环境系统的决策中发挥着重要作用,提供了不同且互补的信息。已经开发了多个框架来解决模型的局限性,并且有大量的研究专注于提高数据的质量。然而,当模型和数据不一致时,通常的关注点是修复模型,而不是数据。在这项研究中,我们引入了TALKS框架作为解决模型数据差异的一种方法。通过三个案例研究,我们展示了模型如何用于识别和改进数据问题,从而更好地利用模型和数据。该框架可以更广泛地应用于更好地将模型和数据整合到环境决策中。

模型开发和评估框架

模型的开发旨在通过支持对环境系统的健全科学理解,为决策者和管理者提供指导 (Aumann, 2011; McIntosh et al., 2011; Pohjola et al., 2013; Schuwirth et al., 2019)。环境系统在本质上是复杂且时空变化多样的,为确保其输出的相关性、准确性和精确性,必须对模型进行严格评估(Jakeman et al., 2006; Power, 1993)。已经提出了几种框架来指导科学合理的模型开发(Ascough et al., 2008; Bennett et al., 2013; Hipsey et al., 2020; Jakeman et al., 2006; Pohjola et al., 2013; Refsgaard et al., 2007; Walker et al., 2010)。这些框架通常针对以下一个或多个领域:(1)质量保证/质量控制(QA/QC)方法,(2)不确定性评估,(3)对模型的技术评估,(4)评估模型在研究社区以外的有效性,和/或(5)其他观点,如沟通和参与式建模的评估(Pohjola et al., 2013)。总的来说,模型开发和评估的框架的目标是确保模型准确地描述了真实系统的动态,并且/或在决策中有用((Pohjola et al., 2013)。

数据是至关重要的

模型开发和评估的框架(Bennett et al., 2013; Hipsey et al., 2020; Jakeman et al., 2006) 通常对模型开发和评估过程提供不同的观点,但也存在一些共同之处。模型应该与独立数据集一起开发和评估((see Guo et al., 2020; Hipsey et al., 2020; Zheng et al., 2022 for examples) and be continuously refined by exposing them to new datasets (Gibbs et al., 2018; Keating, 2020),并通过将其暴露给新数据集不断进行优化 (Gibbs et al., 2018; Keating, 2020)。模型评估应该理想地使用在不同层次获取的数据 (e.g., process and system, Robson et al., 2020),并依赖于专家理解 (Holzworth et al., 2011; Keating, 2020)。因此,数据是开发和评估模型的关键。模型对数据的依赖程度因所使用的模型类型而异(Mount et al., 2016。数据驱动模型(e.g., machine learning)主要以数据为基础构建,而基于理论的模型( (e.g. process based)更多地基于机制性假设或理论 (Jakeman et al., 2006; Thornley, 1976),但始终在某种程度上融入经验性表达式(e.g., 解释光对初级生产的影响的光合-辐照度曲线),因此需要数据进行严格的校准和性能评估(Mount et al., 2016; Robson, 2014)。过程表示的抽象级别各异:应用于宏观量应用科学的实用模型,例如不会模拟物理或化学反应的亚原子过程。在没有数据的情况下,基于理论的模型仍然是需要测试的假设 (Silberstein, 2006)。无论是使用数据驱动方法还是机制方法开发环境模型,模型都需要在广泛的数据集上进行评估以确保可信度(Aumann, 2007, 2011; Hamilton et al., 2022; Harper et al., 2021; Humphrey et al., 2017)。

数据与模型的关系(数据是某时空的快照)

建模者拥有多种框架,可以帮助他们开发可信的模型。然而,大多数框架都基于一个假设,即用于模型开发或评估的数据精确且准确地代表了所涉及的系统,为测试模型性能提供客观标准 (Hipsey et al., 2020)。然而,正如数学模型只是真实系统的简化表示一样,数据只是时间和空间中系统的一个快照。更通俗地说,就像“所有模型都是错误的,但有些是有用的”(Box, 1979)一样,我们类比地认为“所有数据都是不完整的,但大多数都是有洞察力的”。环境数据很少在与系统变异匹配的空间和时间尺度上进行收集(Oreskes et al., 1994)。此外,数据就像模型一样,会受到来自各种来源的误差(e.g., 采样过程、实验室分析和/或数据处理;参见Batley,1999)。从根本上讲,测量需要存在一个“数据模型”:对实际测量内容 (e.g., 不同波长下的光子通量强度)与该测量应该代表的内容(例如,光合作用活跃辐射)之间关系的概念性理解。正如Gitelman (2013)中所讨论的,数据绝不是原始的,应该被视为一个文化资源,需要生成、保护和解释。因此,客观地解决测量数据与模型预测之间差异的原因意味着要认识到这些差异可能源于模型、数据和/或基础数据模型的问题。

利用模型预测的实际差异:模型局限性

预测与观测之间的差异通常源自模型的局限性。例如,有报告称模型捕捉了状态变量的季节性趋势,但未能表示偶发事件(Elliott et al., 2000)。这种差异是模型完善和发展过程中的预期部分。通常的响应要么是改进模型的概念化、结构和参数,要么是使用模型与数据的比较来限定不确定性,或者更好地约束模型被视为适用的范围。因此,解决这些差异的关键步骤是明确模型的目的,并回答诸如(Jakeman et al., 2006):模型的目的是什么?是表示平均行为吗?是偶发事件还是两者兼而有之?

模型评估框架:缺乏模型预测与数据质量联系

模型评估框架(e.g. Bennett et al., 2013; Hipsey et al., 2020; Jakeman et al., 2006; Pohjola et al., 2013)强调了模型的局限性。然而,在文献中缺乏关于模型预测如何为数据质量提供洞察的具体指导。理想情况下,对模型的评估应该旨在了解模型和数据中所包含的信息(Gupta et al., 2008)。数据可以揭示模型改进的方向。相反,模型可以引起对数据不足之处的注意,这可以通过进一步的调查来解决。数据的局限性存在可以显著影响模型开发过程,导致对系统结构和功能的不准确描述,以及在使用错误数据对模型进行改进时浪费时间和资源(Fig. 1)。目前,数据质量主要通过专家判断或异常检测算法来评估(Foorthuis, 2021; Leigh et al., 2019),这些方法完全依赖于数据。然而,数据中的问题可能会逃脱专家或算法的审查。

图:模型开发中数据错误潜在的影响
Potential impacts of data errors in the model development process

模型识别数据问题的价值

模型在识别数据问题方面的价值,作为平衡两种可能性的方法之一 - 要么模型,要么数据可能是导致模型数据差异的原因 - 从而避免陷入暗含模型“错误”和数据“正确”的陷阱。我们引入了TALKS框架(触发 - 阐述 - 列出 - 知识 - 解决)来帮助模型开发者解决模型数据差异。与其他框架相反,TALKS框架对模型和数据都应用了同样水平的批判性分析,并强调了专家知识引探在解决模型数据差异中的重要性。由于建模框架往往侧重于基于数据(以及其他因素,e.g. Hipsey et al., 2020)来改进模型,我们提出了三个案例研究,展示了如何利用模型来改进从数据中获得的洞察力。这些案例研究涵盖了以下领域:(1)现场建模,(2)流域建模和(3)保育科学。

TALKS framework 概述

Summary of the TALKS framework for resolving model-data discrepancies

TALKS的五步

Trigger

框架的第一步和入口是识别存在差异。触发可以采用多种形式。例如,在基于理论的模型中,参数具有物理解释,触发可以是仅通过使用不切实际的参数或不太可能的参数组合才能实现满意的模型性能(Robson et al., 2018)。无论参数是否具有物理解释,当存在新数据时,可能需要使用非常不同的参数来实现充分的模型数据拟合。

Articulate discrepancies

第二步是阐述模型与数据之间的不一致之处。这一步的目标是表征差异。因此,明确的第一步是将不一致可视化,并估计整体模型性能。进一步的分析可以为下一步提供见解(列出差异的潜在原因)。例如,可以使用绘制残差图和观察模型残差与输入/系统组成部分之间的交叉相关性等技术来检测模型结构问题和模型参数化、输入和初始条件问题。

List potential causes

第三步是考虑差异的潜在原因。重要的是要区分由模型可能问题引起的差异和由数据可能问题引起的差异。

Knowledge elicitation

第四步是与专家咨询,并对差异的潜在原因进行批判性评估。这一步涉及借助现场知识,并与数据提供者和/或测量技术专家(例如传感器开发人员)进行咨询,以及应用团队内的可用专业知识。这是一个迭代的过程,需要应用和咨询专业知识,直到确定差异的原因。

Solve

最后一步是制定解决差异的策略。这可能涉及更新模型结构、应用不同的模型或更新/丢弃数据。

各部分详细解释

触发 Trigger

触发的例子包括:

  • 在最佳校准尝试之后,模型输出与测量结果不匹配。
  • 为了进行充分的校准需要不现实的(或接近现实界限的)参数值(或参数组合)。
  • 参数的不确定性大于参数值。
  • 模型行为与之前对被建模系统的理解不符(可能包括专家知识)。
  • 模型与数据之间的拟合不一致,或时间、空间和数据集之间的参数范围不一致。

阐述差异:Articulate discrepancies

简洁而准确地传达差异是什么,以及为何解决这些差异可能很重要:

  • 通过可视化或使用一系列度量标准来表征差异,以评估模型性能的不同方面(例如,预测是否始终高于或低于测量值;Bennett等,2013)
  • 传达与系统预期动态的偏离(例如,通过可视化)
  • 绘制模型与数据拟合的残差,以检查是否存在系统性模式
  • 分析随时间变化的残差分布。这可以表明缺失的模型过程、随时间变化的过程,或模型的初始条件和/或驱动变量存在问题
  • 查看模型残差与输入之间的交叉相关性,以了解模型输入或结构中缺少的内容(例如,低风期间叶绿素-a系统性低估可能指示模型对浮游植物的垂直迁移的处理存在错误,如Soontiens等,2019所描述)
  • 查看系统不同组分的模型残差之间的交叉相关性(例如,氨的一致过度预测,但硝酸盐的预测不足,可能指示硝化过程的表示存在问题)
  • 检查模型参数的敏感性随时间如何变化(例如,动态可辨识性分析,例如Wagener等,2002)
  • 检查经过校准的参数值如何分布在其预期范围或概率分布内(例如,如果校准的参数值接近预期分布的外部限制,这可能暗示模型存在结构性错误或观测数据中的系统性错误,Robson等,2018)
  • 确定差异是否影响模型的可靠性(例如,Hamilton等,2022)
  • 确定差异是否会对建模目标产生影响。

列出潜在因素 List potential causes

a. 列出模型引起的原因

多项研究已经对模型的原因进行了表征,并强调了在模型预测中引入不确定性的重要性 (e.g., Jakeman et al., 2018)。模型原因可以分为以下几类:

  • 模型概念化错误
  • 模型结构、初始条件和/或参数化错误
  • 模型实现中的错误(包括代码错误、数值/离散化问题等)
b. 列出数据引起的原因

数据受到多个来源的错误影响(e.g., Fu et al., 2021):

  • 数据收集/测量、传输、存储和分析中的错误(例如,设备故障或校准误差、抽样偏差)
  • 用于测量数据的方法和空间/时间频率的改变
  • 数据收集的空间和/或时间尺度未捕获所需的变异性(例如,采样频率未捕获一次性事件)
  • 导入数据时出现错误(包括清理)
  • 导出数据时出现错误
  • 数据处理和处理错误(例如,将原始测量转换为等效建模变量时的错误)
  • 数据模型中的错误(例如,过时或不适当使用的流量比曲线,见Potter和Walker,1982;或由于水体成分变化导致浊度与光合有效辐射之间的关系变化)

知识引探 Knowledge elicitation

寻求专家建议是解决差异的关键步骤:

  • 利用现场知识(例如,农民、护林员、原住民、社区团体)
  • 与数据和技术专家进行沟通(例如,监测团队、分析服务提供商以及测量技术专家,如传感器开发人员)
  • 寻求模型开发者的建议
  • 向领域中的其他专家寻求建议

解决 Solve

可以采取一个或多个行动,包括但不限于以下几种:

  • 修订和/或重新考虑模型结构和参数化
  • 修订模型实现
  • 更新和/或丢弃数据
  • 重新测量数据
  • 说明模型和数据的限制

案例

见原论文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/883666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot引入外部jar打包失败解决,SpringBoot手动引入jar打包war后报错问题

前言 使用外部手动添加的jar到项目&#xff0c;打包时出现jar找不到问题解决 处理 例如项目结构如下 引入方式换成这种 <!-- 除了一下这两种引入外部jar&#xff0c;还是可以将外部jar包添加到maven中&#xff08;百度查&#xff09;--><!-- pdf转word --><…

时间序列数据的预处理方法总结

时间序列数据随处可见&#xff0c;要进行时间序列分析&#xff0c;我们必须先对数据进行预处理。时间序列预处理技术对数据建模的准确性有重大影响。 在本文中&#xff0c;我们将主要讨论以下几点&#xff1a; 时间序列数据的定义及其重要性。 时间序列数据的预处理步骤。 构…

opencv实现以图搜图

这里写目录标题 1. 步骤1.1 导入OpenCV库&#xff1a;1.2 加载图像1.3 提取特征1.4 匹配特征1.5 显示结果 2. 完整代码3. 测试图片及效果 1. 步骤 1.1 导入OpenCV库&#xff1a; 在您的C代码中&#xff0c;首先需要导入OpenCV库。您可以使用以下语句导入核心模块&#xff1a;…

【第三阶段】kotlin语言的安全调用操作符

&#xff1f;. fun main() {var name:String?"kotlin" //name是一个可空类型&#xff0c;发出广播&#xff0c;调用的地方必须补救措施namenullvar r name?.capitalize() //?. 如果namenull&#xff0c;那么?.的将不执行&#xff0c;就不会引发空指针异常prin…

多线程学习和Thread类

多线程的创建使用和Thread类 一、多线程相关概念1. 并行与并发2. 进程与线程3. 多线程的作用4. 线程调度 二、多线程创建使用1.经典的两种方式2. 匿名内部类实现3 Thread类3.1 构造器3.2 基本方法3.3 线程控制方法3.4 守护线程 三、 线程的生命周期四、线程安全方式1&#xff1…

hive-无法启动hiveserver2

启动hiveserver2没有反应&#xff0c;客户端也无法连接( beeline -u jdbc:hive2://node01:10000 -n root) 报错如下 查看hive的Log日志&#xff0c;发现如下报错 如何解决 在hive的hive_site.xml中添加如下代码 <property><name>hive.server2.active.passive…

8年测试经验之谈 —— JMeter生成HTML性能测试报告

1.修改JMeter的配置文件 2.配置环境变量 3.控制台到测试脚本目录并执行命令 4.查看测试报告 1.修改JMeter的配置文件 在JMeter本地安装目录下&#xff0c;把bin目录下jmeter.properties文件中的jmeter.save.saveservice.output_formatcsv禁⽤取消 # legitimate values: xml…

涨薪加薪利器:聊聊Synchronized和Volatile的差异究竟何在?

大家好&#xff0c;我是小米&#xff01;今天&#xff0c;我们要聊一个在Java多线程编程中非常重要的话题&#xff1a;Synchronized和Volatile的区别。这两个关键字常常令人迷惑&#xff0c;但却是我们编写高效、稳定多线程程序不可或缺的工具。废话不多说&#xff0c;让我们一…

Redis专题-队列

Redis专题-队列 首先&#xff0c;想一想 Redis 适合做消息队列吗&#xff1f; 1、消息队列的消息存取需求是什么&#xff1f;redis中的解决方案是什么&#xff1f; 无非就是下面这几点&#xff1a; 0、数据可以顺序读取 1、支持阻塞等待拉取消息 2、支持发布/订阅模式 3、重…

Vue 批量注册组件

全局组件 在components文件夹下新建一个Gloabl文件夹&#xff08;可以自行命名&#xff09; 在目录下新建index.js import Vue from vue// require.context(路径, 是否遍历子目录, 匹配规则) const requireComponents require.context(./, true, /\.vue/)requireComponents.k…

常见的前端对数据的操作方法

[{"name": "蒸汽锅炉 A 年度检验报告","sort": 5,"analysisComponent": "组件类型","trHeadVOList": [],"trContentVOList": [{"jieguo": "√","jianyanxiangmu": "…

神经网络分类算法的应用及其实现

目录 神经网络分类算法的应用及其实现 神经网络算法特点 1) 黑盒算法 2) 数据量 3) 算力和开发成本高 神经网络算法应用 神经网络分类算法的应用及其实现 神经网络算法特点 我们知道&#xff0c;深度学习的本质就是神经网络算法&#xff08;深度学习是神经网络算法的一个…

嵌入式编译FFmpeg6.0版本并且组合x264

下载直通车:我用的是6.0版本的 1.准备编译: 2.进入ffmpeg源码目录&#xff0c;修改Makefile&#xff0c;添加编译选项&#xff1a; CFLAGS -fPIC 不加会报错 3.使用命令直接编译 ./configure --cross-prefix/home/xxx/bin/arm-linux-gnueabihf- --enable-cross-compile --targ…

生信豆芽菜-多种算法计算免疫浸润

网址&#xff1a;http://www.sxdyc.com/immuneInfiltration 一、使用方法 1、数据准备 一个全编码蛋白的表达谱基因&#xff0c;其中行为基因&#xff0c;列为样本 第一列为基因为行名&#xff0c;不能重复 2、选择计算的方法&#xff08;这里提供了5种免疫计算的方法&#x…

php错误类型与处理

1 语法编译错误&#xff0c;少了分号&#xff0c;这是系统触发的错误&#xff0c;不需要我们去管。 2 错误类型有四种&#xff1a;error致命错误&#xff0c;代码不会往下运行&#xff1b;warning&#xff1a;提醒错误&#xff0c;会往下运行&#xff0c;但是会有意想不到的结果…

【BEV】3D视觉 PRELIMINARY

这里的知识来自于论文 Delving into the Devils of Bird’s-eye-view Perception: A Review, Evaluation and Recipe 的 Appendix B.1 部分来自 这篇文章 从透视图转向鸟瞰图。&#xff08;Xw、Yw、Zw&#xff09;、&#xff08;Xc、Yc、Zc&#xff09;表示世界World坐标和相…

Unity TreeView 树形菜单

文章目录 1. 参考文章2. 工程地址3. 项目结构4. 主要代码 1. 参考文章 https://blog.csdn.net/qq992817263/article/details/54925472 2. 工程地址 将文件夹放入 unity 中即可查看 作者 github 地址&#xff1a;https://github.com/ccUnity3d/TreeView 本人 gitee 地址(不用…

IronPDF for .NET Crack

IronPDF for .NET Crack ronPDF现在将等待HTML元素加载后再进行渲染。 IronPDF现在将等待字体加载后再进行渲染。 添加了在绘制文本时指定旋转的功能。 添加了在保存为PDFA时指定自定义颜色配置文件的功能。 IronPDF for.NET允许开发人员在C#、F#和VB.NET for.NET Core和.NET F…

【数据库系统】-- 【1】DBMS概述

1.DBMS概述 01数据库系统概述02数据库技术发展概述03关系数据库概述04数据库基准测试 01数据库系统概述 几个基本概念 为什么使用数据库系统 数据库发展的辉煌历程 02数据库技术发展概述 数据模型 应用领域 ● OLTP ● OLAP ● HTAP ● GIS OLTP与OLAP 与其他技术相…

基于C#的消息处理的应用程序 - 开源研究系列文章

今天讲讲基于C#里的基于消息处理的应用程序的一个例子。 我们知道&#xff0c;Windows操作系统的程序是基于消息处理的。也就是说&#xff0c;程序接收到消息代码定义&#xff0c;然后根据消息代码定义去处理对应的操作。前面有一个博文例子( C#程序的启动显示方案(无窗口进程发…