互信息法确定时间序列最佳时延

1 代码实现

最近需要实现对时间序列的相空间重构,参考ChatGPT与相关论文,实现了基于互信息法确定时间序列最佳时延的程序,代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltN_ft = 1000def delay_time(data, max_delay=10):# 1. 计算自信息和联合信息ts = pd.Series(data)delays = range(1, max_delay+1)# ics = [ts.autocorr(d) for d in delays]   # 自信息ics = [ts.shift(d).autocorr() for d in delays]jcs = []for d in delays:jcs.append(ts.corr(ts.shift(d)))     # 联合信息# 2. 计算互信息print(ics)print(jcs)mis = []for jc, ic in zip(jcs, ics):print(jc, ic)mi = -0.5*np.log(1-jc**2)+0.5*np.log(1-ic**2) # 互信息print(mi)mis.append(mi)# 3. 找到第一个局部极小值并返回其对应的时延diffs = np.diff(mis)print(diffs)i = np.where(diffs > 0)[0][0]delay = delays[i]# 可视化互信息函数plt.plot(delays[0:], mis, 'bo-')plt.xlabel('Delay(τ)')plt.ylabel('Mutual Information(I(τ))')plt.grid(axis='x')plt.grid(axis='y')plt.axvline(x=delay, color='r', linestyle='--')plt.show()return delayt = []
f1 = 25
f2 = 30
for i in range(N_ft):t.append(i * 0.001)
t = np.array(t)
# yu = np.ones(M * N)
AEall = np.sin(t * 2 * np.pi * f1) + np.sin(t * 2 * np.pi * f2)  #在这里直接改信号delay = delay_time(AEall, max_delay=30)
print('Delay time:', delay)

运行结果如图所示:
延时-互信息关系曲线根据论文《混沌时间序列预测研究及应用》,寻找第一个局部极小值点确定为最佳时延,即该序列最佳时延为9.

2 相关说明

程序中相关公式为chatGPT提供,其正确性可能有待进一步确定。使用过程中若有问题,欢迎大家一起讨论!另外,在完成最佳时延的确定后,需要完成最佳嵌入维数的确定,可参考博客,这里,对其中GP算法的实现作出略微修改,代码如下:

import numpy as np
from scipy.fftpack import fft
from scipy import fftpack
import matplotlib.pyplot as plt
import pandas as pdN_ft = 1000# GP算法求关联维数(时频域特征)
def GP(imf, tau):if (len(imf) != N_ft):print('请输入指定的数据长度!')  # 需要更改,比如弹出对话框returnelif (isinstance(imf, np.ndarray) != True):print('数据格式错误!')returnelse:m_max = 10  # 最大嵌入维数ss = 50  # r的步长fig = plt.figure(1)for m in range(1, m_max + 1):i_num = N_ft - (m - 1) * taukj_m = np.zeros((i_num, m))  # m维重构相空间for i in range(i_num):for j in range(m):kj_m[i][j] = imf[i + j * tau]dist_min, dist_max = np.linalg.norm(kj_m[0] - kj_m[1]), np.linalg.norm(kj_m[0] - kj_m[1])Dist_m = np.zeros((i_num, i_num))  # 两向量之间的距离for i in range(i_num):for k in range(i_num):D = np.linalg.norm(kj_m[i] - kj_m[k])if (D > dist_max):dist_max = Delif (D > 0 and D < dist_min):dist_min = DDist_m[i][k] = Ddr = (dist_max - dist_min) / (ss - 1)  # r的间距r_m = []Cr_m = []for r_index in range(ss):r = dist_min + r_index * drr_m.append(r)Temp = np.heaviside(r - Dist_m, 1)for i in range(i_num):Temp[i][i] = 0Cr_m.append(np.sum(Temp))r_m = np.log(np.array((r_m)))print(r_m)Cr_m = np.log(np.array((Cr_m)) / (i_num * (i_num - 1)))print(Cr_m)plt.plot(r_m, Cr_m, label = str(m))plt.xlabel('ln(r)', fontsize=18)plt.ylabel('ln(C)', fontsize=18)plt.xticks(fontsize=16)plt.yticks(fontsize=16)plt.legend(fontsize=15)plt.show()if __name__=='__main__':# 检验关联维数程序t = []f1 = 25f2 = 30for i in range(N_ft):t.append(i * 0.001)t = np.array(t)# yu = np.ones(M * N)AEall = np.sin(t * 2 * np.pi * f1) + np.sin(t * 2 * np.pi * f2)  #在这里直接改信号GP(AEall, 1)

代码运行结果如下:
在这里插入图片描述同样,结合论文中对GP算法确定最佳嵌入维数的介绍,曲线中线性部分的斜率一般会随着m的增大而增大,当斜率不再增大而趋于稳定时,即为饱和关联维,此时对应的m即为最佳嵌入维。至此,完成对最佳时延与嵌入维数的确定,基于这两个参数完成对时序的相空间重构。

3 参考资料

[1] 高俊杰. 混沌时间序列预测研究及应用[D].上海交通大学,2013.
[2] Python实现相空间重构求关联维数:https://blog.csdn.net/Lwwwwwwwl/article/details/111410179.

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

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

相关文章

GPT-3 的到来,程序员会被 AI 取代吗?

2020-07-26 10:08:26 无需任何训练&#xff0c;AI可用任何语言编程。 作者 | Frederik Bussler 译者 | 弯月&#xff0c;责编 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 以下为译文&#xff1a; 2017年的时候&#x…

【IC设计】数字IC设计读书笔记

文章目录 《专用集成电路设计实用教程》集成电路系统的组成集成电路的设计流程综合转化逻辑优化映射同步电路和异步电路亚稳态单时钟同步设计的时序约束目标库和初始环境设置DC如何计算每个逻辑单元的延迟&#xff08;Cell Delay&#xff09;&#xff1f;target librarylink li…

从原理到实战,手把手教你在项目中使用RabbitMQ

RabbitMQ 的文章之前写过&#xff0c;但是当时给的示例是 Demo 版的&#xff0c;这篇文章主要是结合之前写的理论知识&#xff0c;将 RabbitMQ 集成到技术派项目中。 话不多说&#xff0c;上文章目录&#xff1a; 下面我们先回顾一下理论知识&#xff0c;如果对这块知识已经清…

GPT-5将死于GPT-4背刺?牛津剑桥研究警告:AI训AI成「剧毒」,会让模型崩溃!...

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【目标检测和Transformer】交流群 转载自&#xff1a;新智元 【导读】最差的人类语料&#xff0c;也要胜过AI生成的文本。 随着GPT-4、Stable Diffusion和Midjourney的爆火&a…

GPT-5将死于GPT-4背刺?牛津剑桥研究警告:AI训AI成「剧毒」,会让模型崩溃!

【导读】最差的人类语料&#xff0c;也要胜过AI生成的文本。 随着GPT-4、Stable Diffusion和Midjourney的爆火&#xff0c;越来越多的人开始在工作和生活中引入生成式AI技术。 甚至&#xff0c;有人已经开始尝试用AI生成的数据来训练AI了。难道&#xff0c;这就是传说中的「数…

微软、OpenAI用上“数据永动机” 合成数据是晨曦还是暮光?

微软、OpenAI、Cohere等公司已经开始测试使用合成数据来训练AI模型。Cohere首席执行官Aiden Gomez表示&#xff0c;合成数据可以适用于很多训练场景&#xff0c;只是目前尚未全面推广。 已有的&#xff08;通用&#xff09;数据资源似乎接近效能极限&#xff0c;开发人员认为&a…

论道AIGC:如何看待用于内容生成的永动机?| 大咖思辨-38

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 12月28日&#xff0c;“科技未来看青年”AI TIME 2022 年度嘉年华完美收官。本次年度嘉年华开启“青年学者说”、“科技新势力”、“Debate AIGC”三大板块&#xff0c;邀请AI领域的青年科学家、PhD等青年学者分…

让博客支持使用 ChatGPT 生成文章摘要是一种什么样的体验?

让博客支持使用 ChatGPT 生成文章摘要是一种什么样的体验&#xff1f; 起因 Sakurairo 主题支持了基于 ChatGPT 的 AI 摘要功能&#xff0c;我有点眼红&#xff0c;但是因为那是个主题限定功能&#xff0c;而我用的又是 Argon&#xff0c;遂想着让 Argon 也支持 AI 摘要功能。…

ChatGPT专业应用:生成立论稿

正文共 1107 字&#xff0c;阅读大约需要 7 分钟 辩论赛选手必备技巧&#xff0c;您将在7分钟后获得以下超能力&#xff1a; 生成立论稿 Beezy评级 &#xff1a;A级 *经过寻找和一段时间的学习&#xff0c;一部分人能掌握。主要提升效率并增强自身技能。 推荐人 | Kim 编辑者…

马斯克将起诉微软,称其使用 Twitter 数据“非法”训练GPT,吃瓜网友:事情变得更有趣了!...

点击上方“AI遇见机器学习”&#xff0c;选择“星标”公众号 第一时间获取价值内容 整理 &#xff5c; Tina 北京时间 4 月 20 日早间消息&#xff0c;埃隆马斯克表示将对微软提起“诉讼”&#xff0c;理由是微软使用 Twitter 数据“非法”训练其产品。 今天早些时候微软宣布…

Imported target “dart“ includes non-existent path 笔记

详细问题&#xff1a; 关联功能包&#xff0c;源码编译 Failed <<< gazebo_ros2_control [11.8s, exited with code 1] 网上查了很多资料&#xff0c;都是比较旧版&#xff0c;这里注意由于ROS2系统发展很快&#xff0c;功能包在快速集成。 使用源码编译可能会遇到环境…

Spring Boot 3.1.0 发布,添加大量新功能和改进

来源&#xff1a;JAVA架构日记 Spring Boot 3.1.0 现已发布&#xff0c;此版本添加了大量新功能和改进。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</v…

拒绝白嫖!马斯克将起诉微软,称其使用 Twitter 数据“非法”训练GPT

来源&#xff1a;InfoQ、整理&#xff1a;Tina 北京时间 4 月 20 日早间消息&#xff0c;埃隆马斯克表示将对微软提起“诉讼”&#xff0c;理由是微软使用 Twitter 数据“非法”训练其产品。 今天早些时候微软宣布将停止在其智能广告平台上支持 Twitter&#xff0c;马斯克此举…

【GPT4技术揭秘】GPT-4 Architecture,Infrastructure,Training Dataset,Costs,Vision,MoE

本文是对《GPT-4 Architecture,Infrastructure,Training Dataset, Costs, Vision, MoE 》的中文翻译。介绍了GPT-4使用的相关技术&#xff0c;希望对大家有一些帮助。群友分享了总结内容如下&#xff1a; 13T tokens预训练语料 &#xff08;llama和palm是1.4T&#xff09;MoE&…

3 分钟为英语学习神器 Anki 部署一个专属同步服务器

原文链接&#xff1a;https://icloudnative.io/posts/anki-sync-server/ Anki 介绍 Anki 是一个辅助记忆软件&#xff0c;其本质是一个卡片排序工具--即依据使用者对卡片上的自定义内容进行主动测试、自我评判后&#xff0c;其内部算法根据评判结果更改每张卡片下次测试时间的…

chatgpt赋能python:Python中的{:>8}

Python中的 {:>8} 介绍 在Python中&#xff0c;{:>8}是一个字符串格式化的方法&#xff0c;它的作用是将字符串向右对齐&#xff0c;并在字符串左侧填充指定字符。这个方法非常有用&#xff0c;尤其是在需要对齐输出结果或者生成格式化的文本时。 这个方法在Python中非…

Heartbeat安装

安装Heartbeat前的准备 Heartbeat集群必须的硬件 从下图看出&#xff0c;构建一个Heartbeat集群系统必须的硬件设备有&#xff1a; 节点服务器&#xff1b; 网络和网卡&#xff1b; 共享磁盘。 节点服务器 安装Heartbeat至少需要两台主机&#xff0c;并且对主机的要求不高&…

ansible企业级实战(Markdown)

ansible经典实战 一、配置文件解释二、实战2.1 脚本分发 && 使用copy生成新文件2.2 列出所有被管理主机list2.3 基于key验证来避免每次输入密码2.3.1 机器密码不一样的解决方案 2.4 fetch 抓取被控制端的文件2.4.1 fetch 如何抓取多个文件&#xff1f; 2.5 file 模块设…

【Python】词云之 wordcloud库 全解析

有用的话&#xff0c;欢迎姗莲✨✨✨✨✨✨✨✨✨✨✨✨✨ 目录 一基础用法二、WordCloud类 形参说明2.1 常用参数2.11 字体 font_path2.12 画布尺寸 width、hight2.13 比例&#xff08;缩放&#xff09;scale2.14 颜色(表) colormap2.15 颜色函数 color_func2.16 词语组合频率…

【云炬COMSOL模型】自己做的激光超声的COSMOL模型

模拟结果 表面温度 等值线 表面应力 模型设置 全局定义 几何 材料 固体传热物理场 固体力学物理场 多物理场 网格 研究&计算日志 2e-06 - out- 1.43e-06 - out- 1.44e-06 - out- 1.45e-06 - out- 1.46e-06 …