时间序列噪声模型分析软件推荐与使用经验

最近在论文大修2024年投稿的一篇文章,大修了2轮,最后一次还是重新投稿,其中有一个问题一直被审稿人怼,他认为我计算时间序列的趋势的时候,没有考虑时间的相关性,即对噪声模型的估计不合理,会影响对趋势和其不确定度的估计。我之前从来没意识到这个问题:

要用最小二乘法(Least Squares)估计一个时间序列的趋势及其不确定度,你可以将时间序列拟合为一个线性模型:

(1)最小二乘估计(OLS)

假设有 nn个数据点 (ti,yi)(ti​,yi​),可以构造设计矩阵:

(2)估计不确定度(标准误)

python 代码:

import numpy as np
import matplotlib.pyplot as plt

# 模拟数据
t = np.arange(0, 10, 1)  # 年份
y = 2.0 + 0.3 * t + np.random.normal(0, 0.2, len(t))  # 加上噪声

# 构造设计矩阵
X = np.vstack([np.ones(len(t)), t]).T

# 最小二乘解
beta_hat = np.linalg.inv(X.T @ X) @ X.T @ y
a, b = beta_hat

# 残差与方差
residuals = y - X @ beta_hat
sigma2 = np.sum(residuals**2) / (len(t) - 2)
cov_beta = sigma2 * np.linalg.inv(X.T @ X)
b_std = np.sqrt(cov_beta[1, 1])

print(f"趋势估计:{b:.4f} ± {b_std:.4f} (单位/年)")
 

但是实际上上述是假设残差是符合正态分布,而实际上很多地球物理的观测结果是存在有色噪声影响的。因此用上述的程序计算的结果是否合理需要评估。

在我这次的论文大修中,审稿人给我推荐了两个有用的处理工具:

HECTOR 或 estnoise 这两款工具 —— 它们都易于使用,且免费提供,可以在回归参数估计的同时估算随机特性。需要注意的是,HECTOR 还支持估计时变的季节信号,这在某些研究中可能具有参考价值。但如果作者坚持使用缩放方法,那就必须以稳健的方式来执行。

  • Hector - TeroMovigo

  • https://www.usgs.gov/node/279390

在这里我推荐使用Hector,因为这个可以估算时变的季节性信号。而我们的时间许多很多是有季节性变化的。

(3)Hector介绍

Hector 是一款开源的学术软件包,专为在时间序列数据中估计轨迹模型(如含年度信号的线性趋势)而设计,尤其适用于存在时间相关噪声的情况。在地球物理研究中,轨迹估计至关重要,因为我们关注的现象往往包括气温上升、由气候变化引起的海平面上升、以及由地壳垂向运动或构造板块运动引起的位置变化等。在这类时间序列中,噪声通常具有时间相关性,这会显著影响线性趋势估计的精度,因此推荐使用像 Hector 这样的程序工具。Hector 假设用户预先了解其观测数据中可能存在的时间相关噪声类型,并通过最大似然估计(MLE)方法同时估计线性趋势和所选噪声模型的参数。Hector 由 TeroMovigo 团队开发和维护,旨在为学术界持续提供支持。有关其底层方法的详细介绍,可参考著作 《Geodetic Time Series Analysis in Earth Sciences》。此外,还有一些其他知名程序可用于类似任务,如 CATS 和 est_noise。已有研究对 Hector 和 est_noise 进行了广泛比较,结果表明两者在输出结果上高度一致。如果你在学术出版物中使用 Hector,请引用以下文献以致谢:Bos, M.S., Fernandes, R.M.S., Williams, S.D.P., and Bastos, L. (2013).
Fast Error Analysis of Continuous GNSS Observations with Missing DataJournal of Geodesy, 87(4), 351–360.doi: 10.1007/s00190-012-0605-0

这个软件在Linux系统是可以直接运行下载的程序包,而本人使用的mac系统只能自己编译源代码

Hector 软件包主要设计用于在类 Unix 操作系统(如 Linux 或 macOS)上运行。如果你不想使用预编译的静态可执行文件,也可以自行编译源代码。在这种情况下,需要同时安装 BoostFFTW3 和 OpenBLAS 等库。对于 Mac 用户,可以使用 **Xcode(clang 编译器)**和 Homebrew 来编译源代码。如需下载最新版本(2.1)的静态可执行文件(适用于多种 Linux 发行版)、源代码与示例数据Python 3 脚本使用手册,请点击以下链接:

• hector_2.0_OL8.tar.bz2 (Oracle Linux 8)
• hector_2.0_SL7.tar.bz2 (Scientific Linux 7)
• hector_2.0_Ubuntu18.04.tar.bz2 (Ubuntu 18.04 LTS)
• hector_2.0_Ubuntu20.04.tar.bz2 (Ubuntu 20.04 LTS)
• hector_2.0_Ubuntu21.04.tar.bz2 (Ubuntu 21.04)
• hector_2.1_Ubuntu20.04.tar.bz2 (Ubuntu 20.04 LTS)
• hector_2.1_Ubuntu21.04.tar.bz2 (Ubuntu 21.04)
• hector_2.1_Ubuntu22.04.tar.bz2 (Ubuntu 22.04 LTS)
• hector-2.1_CentOS7.tar.bz2 (CentOS7)
• hector-2.1_CentOS9.tar.bz2 (CentOS9)
• source code hector-2.0
• source code hector-2.1
• Python3 scripts hector-2.0
• Python3 scripts hector-2.1
• examples
• manual hector-2.0
• manual hector-2.1

(4)Hector使用

如果在Linux中,可以直接运行程序

而在mac系统中,则需要先安装一个Docker,配置一个linux环境

1️⃣ 安装 Docker Desktop

前往官网下载安装:

🔗 https://www.docker.com/products/docker-desktop/

安装后打开 Docker,确保状态栏图标为绿色,表示运行正常。

2️⃣ 创建一个 Linux 容器(如 Ubuntu)

docker pull ubuntu:22.04

然后启动一个交互式容器:

docker run -it --name hector_env ubuntu:22.04

第一次运行会进入 Linux shell,类似 Ubuntu 终端环境。

执行数据处理命令:

./estimatetrend estimatetrend.ctl

可以得到以下的结果:

后续还可以估计时间序列的频谱信号特征,以及建模的信号特征:

./estimatespectrum estimatespectrum.ctl

./modelspectrum modelspectrum.ctl

更具体的处理流程需要参见说明手册。

❤️欢迎点赞收藏❤️

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

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

相关文章

【redis实战篇】第六天

摘要: 本文介绍了基于Redis的秒杀系统优化方案,主要包含两部分:1)通过Lua脚本校验用户秒杀资格,结合Java异步处理订单提升性能;2)使用Redis Stream实现消息队列处理订单。方案采用Lua脚本保证库…

【Java Web】速通HTML

参考笔记: JavaWeb 速通HTML_java html页面-CSDN博客 目录 一、前言 1.网页组成 1 结构 2 表现 3 行为 2.HTML入门 1 基本介绍 2 基本结构 3. HTML标签 1 基本说明 2 注意事项 4. HTML概念名词解释 二、HTML常用标签汇总 + 案例演示 1. 字体标签 font (1)定义 (2)案例 2…

Oracle/openGauss中,DATE/TIMESTAMP与数字日期/字符日期比较

ORACLE 运行环境 openGauss 运行环境 0、前置知识 ORACLE:DUMP()函数用于返回指定表达式的数据类型、字节长度及内部存储表示的详细信息 SELECT DUMP(123) FROM DUAL; -- Typ2 Len3: 194,2,24 SELECT DUMP(123) FROM DUAL;-- Typ96 Len3: 49,50,51 -- ASCII值&am…

[学习]C++ 模板探讨(代码示例)

C 模板探讨 文章目录 C 模板探讨一、模板基础概念二、函数模板三、类模板1. 类模板的定义与使用2. 成员函数模板3. 类模板的静态成员与继承 四、模板进阶特性1. 非类型模板参数2. 可变参数模板(Variadic Templates)3. 模板元编程(TMP&#xf…

人工智能-训练AI模型涉及多个步骤

训练AI模型涉及多个步骤,包括数据预处理、选择合适的模型、训练模型以及评估模型性能。下面是一个详细的流程,以常见的机器学习任务——分类问题为例,展示如何使用Python中的scikit-learn库来训练一个简单的AI模型。 步骤 1: 导入所需的库 …

LVS+Keepalived 高可用

目录 一、核心概念 1. LVS(Linux Virtual Server) 2. Keepalived 二、高可用架构设计 1. 架构拓扑图 2. 工作流程 三、部署步骤(以 DR 模式为例) 1. 环境准备 2. 主 LVS 节点配置 (1)安装 Keepali…

TCP 三次握手过程详解

TCP 三次握手过程详解 一、TCP握手基础概念 1.1 什么是TCP握手 TCP三次握手是传输控制协议(Transmission Control Protocol)在建立连接时的标准过程,目的是确保通信双方具备可靠的双向通信能力。 关键结论:三次握手的本质是通过序列号同步和能力协商建立可靠的逻辑连接。 …

李宏毅NLP-7-CTC/RNN-T文本对齐

LAS LAS(Listen, Attend and Spell )模型,在语音识别中的解码和训练过程,具体内容如下: 解码(Decoding) 公式 Y ∗ arg ⁡ max ⁡ Y log ⁡ P ( Y ∣ X ) Y^* \arg\max_Y \log P(Y|X) Y∗ar…

jQuery和CSS3卡片列表布局特效

这是一款jQuery和CSS3卡片列表布局特效。该卡片布局使用owl.carousel.js来制作轮播效果&#xff0c;使用简单的css代码来制作卡片布局&#xff0c;整体效果时尚大方。 预览 下载 使用方法 在页面最后引入jquery和owl.carousel.js相关文件。 <link rel"stylesheet&qu…

Microsoft 推出 Magentic-UI,多智能体引领网页人机协作变革

当前&#xff0c;现代生产力与网页操作紧密相连&#xff0c;信息检索、表单填写、仪表盘导航等网页任务已成为工作流程的重要环节。然而&#xff0c;大量网页任务仍依赖人工重复操作&#xff0c;效率低下且易出错。与此同时&#xff0c;许多 AI 智能体虽追求自主运行&#xff0…

2023年6级第一套长篇阅读

画名词概念&#xff0c;动词概念 多处定位原词加同义改写 画关键词&#xff0c;多处定位直接就可以选A了 没有定位的句子先比没匹配到的段落&#xff0c;再匹配长的段落先易后难

登山第二十三梯:有序点云平面快速分割——35Hz帧速前进

文章目录 一 摘要 二 资源 三 内容 一 摘要 3D 点云中的实时平面提取对于许多机器人应用至关重要。作者提出了一种新颖的算法&#xff0c;用于在从 Kinect 传感器等设备获得的有组织的点云中实时可靠地检测多个平面。通过在图像空间中将这样的点云均匀地划分为不重叠的点组&…

【北京盈达科技】GEO优化:引领AI时代内容霸权,重塑行业生态

盈达科技GEO优化&#xff1a;引领AI时代内容霸权&#xff0c;重塑行业生态 在人工智能飞速发展的今天&#xff0c;生成式AI已经深刻改变了人们获取信息的方式。从ChatGPT到文心一言&#xff0c;再到各种智能问答系统&#xff0c;AI生成的内容正在成为信息传播的新主流。然而&a…

安卓端智能耗材柜系统可行性方案(基于uniapp + Vue3)

一、系统架构设计 1. 技术栈&#xff1a; 前端框架&#xff1a;uniapp Vue3 TypeScript状态管理&#xff1a;Pinia&#xff08;分层设计&#xff0c;模块化Store&#xff09;硬件交互&#xff1a;Android原生插件&#xff08;Java/Kotlin封装&#xff09;通信协议&#xff…

Java交互协议详解:深入探索通信机制

解析Java中各类交互协议的设计原理与实战应用&#xff0c;涵盖TCP/UDP自定义协议、HTTP/RESTful、WebSocket、RPC等主流方案。 一、交互协议核心概念 交互协议是系统间通信的规则集合&#xff0c;包含&#xff1a; 消息格式&#xff1a;数据序列化方式&#xff08;JSON/XML/P…

k8s上运行的mysql、mariadb数据库的备份记录

文章目录 前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作2.手动备份3.定时任务自动备份 总结 前言 记录一下在k8s运行的数据库的备份步骤。 我的思路是新建一个数据库的容器作为工具容器&#xff0c;通过工具容器执行mysqldump命令进行备份&#xff0c;最后通过定…

宝塔面板部署python web项目详细教程

最近在学langchain&#xff0c;写了一个小案例出来&#xff0c;我刚好有一台服务器&#xff0c;就尝试自己部署一下项目&#xff0c;结果很幸运一遍过&#xff0c;现在记录一下。我的系统是OpenCloudOS 9 目录 1.安装python解释器版本 2.上传项目文件到宝塔面板 3.添加项目…

IT选型指南:电信行业需要怎样的服务器?

从第一条电报发出的 那一刻起 电信技术便踏上了飞速发展的征程 百余年间 将世界编织成一个紧密相连的整体 而在今年 我们迎来了第25届世界电信日 同时也是国际电联成立的第160周年 本届世界电信日的主题为:“弥合性别数字鸿沟,为所有人创造机遇”,但在新兴技术浪潮汹涌…

OAuth协议中的Token、Ticket

OAuth协议中的核心概念&#xff08;如Token、Ticket等&#xff09;可以通过日常生活中的类比来形象理解&#xff1a; 1. 门票&#xff08;Ticket&#xff09; vs 令牌&#xff08;Token&#xff09;类比 概念现实类比OAuth中的表现Ticket电影院纸质票&#x1f3ab;短期有效的临…

80x86CPU入栈与出栈操作

一、栈操作&#xff1a;入栈push&#xff0c;出栈pop 栈操作&#xff1a;FILO&#xff08;先进后出机制&#xff09; 栈顶的指针&#xff1a;ss:sp决定&#xff0c;任意时刻栈顶指针指向SS:SP的位置 对于8086CPU 入栈时&#xff1a;sp-2 出栈时&#xff1a;sp2 assume cs…