時間序列噪聲模型分析軟件推薦與使用經驗

最近在論文大修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 Data.?Journal 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
繁體地址,請注明出處:http://hk.pswp.cn/web/81760.shtml
英文地址,請注明出處:http://en.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…