我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 如何让特征值滞后一行

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 如何让特征值滞后一行

看代码吧~


# 加载库
import pandas as pd
​
# 데이터프레임을 만듭니다.
dataframe = pd.DataFrame()
​
# 模拟数据
dataframe["dates"] = pd.date_range("1/1/2001", periods=5, freq="D")
dataframe["stock_price"] = [1.1,2.2,3.3,4.4,5.5]
dataframe.head()
​
# 让值滞后一行
dataframe["previous_days_stock_price"] = dataframe["stock_price"].shift(1)
​
dataframe.head()​
dates	stock_price	previous_days_stock_price
0	2001-01-01	1.1	NaN
1	2001-01-02	2.2	1.1
2	2001-01-03	3.3	2.2
3	2001-01-04	4.4	3.3
4	2001-01-05	5.5	4.4

补充:怎样用python画超前滞后先关图

想要获取更多Python学习资料,了解更多关于Python的知识,可以加Q群630390733踊跃发言,大家一起来学习讨论吧!

超前滞后相关是什么

想看两个时间序列是否相关,最简单的方法就是求二者的相关系数,但是在大气、海洋等科学问题的研究中,往往一个过程的响应并不是实时的,可能当a过程发生以后一段时间b过程才会发生,这样的关系往往不是同时期的相关系数可以表现的。

超前滞后相关就是为了看两个过程的发生演变是否在时间的先后上有一定的相关性。

举个例子:

有a、b两个时间序列,长度都是十二个月,直接求相关系数就是简单的同期相关。

如果a的1-11月对b的2-12月做相关系数,就是a对b超前1个月的相关;拿a的2-12月对b的1-11月做相关则称之为a对b的滞后1月相关,以此类推,就能求出n个月的超前滞后相关,画图出来就是沿0月(同期)正负各n月。

摘自黄嘉佑的书《气相统计分析与预报方法》,第三版,17页

python中的实现

需要输入两个时间序列,结果为data1对data2的超前滞后相关系数的序列


from scipy.stats import pearsonr
import numpy as np
 
#超前滞后相关
def leadlagcor(data1,data2,n):
	#data1和data2为两个时间序列,n设置做多少个时间步长的超前滞后
    a=-n
    b=-a
    c=b*2+1
    x=np.arange(-n,n+1,1)
    r=np.zeros((c,1))
    p=np.zeros((c,1))
 
    for i in range(c):
        if i<(b):
            r[n-i],p[n-i]=pearsonr(data1[:(len(data1)-i)], data2[i:])
        else:
            r[i],p[i]=pearsonr(data1[x[i]:], data2[:len(data1)-x[i]])
    return r

附赠一个可视化程序


def leadlagcor_plot(data1,data2,n):
	#data1和data2为两个时间序列,n设置做多少个时间步长的超前滞后
    r=leadlagcor(data1,data2,n)#调用上面写的函数做超前滞后相关
    x=range(-n,n+1,1)
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot(x,r,'k--',linewidth=0.8)
    ax.axhline(0, color='k')
    
    b=ax.bar(x,np.squeeze(r),color='red')
    for bar,height in zip(b,r):
        if height<0:
            bar.set(color='blue')
     
    print('cor_max:',np.max(r),'\n','cor_min:',np.min(r)) 
    plt.savefig('%s.jpg')
    plt.show()

画出来的结果就是这样啦,有更好的写法和例图也欢迎分享~

祝大家科研顺利,身心健康!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 如何让特征值滞后一行

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 如何让特征值滞后一行

看代码吧~# 加载库 import pandas as pd # . dataframe = pd.DataFrame() # 模拟数据 dataframe["dates"] = pd.date_range("1/1/2001", p
2022-06-02

怎么在Python中让特征值滞后一行

怎么在Python中让特征值滞后一行?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。# 加载库import pandas as pddataframe = pd.DataFr
2023-06-15

如何用XGBoost在Python 中进行特征重要性分析和特征选择

如何用XGBoost在Python 中进行特征重要性分析和特征选择,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用诸如梯度增强之类的决策树方法的集成的好处是,
2023-06-15

Python OpenCV中如何进行特征点检测与匹配

Python OpenCV中如何进行特征点检测与匹配,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。背景提取图像的特征点是图像领域中的关键任务,不管在传统还是在深度学习的领域
2023-06-26

如何让Android的service一直在后台运行?

Service是Android四大组件之一,同时也是四大组件中和Activity最相似的组件,都代表着可执行的程序,他们的区别在于Service一直在后台运行,没有用户界面,一旦被启动就和Activiy一样拥有生命周期,一般来说,需要显示界
2023-06-04

如何在Python中进行数据预处理和特征工程

如何在Python中进行数据预处理和特征工程数据预处理和特征工程是数据科学领域中非常重要的一部分。数据预处理是指对原始数据进行清洗、转换和整理,以便进一步分析和建模。而特征工程则是指从原始数据中提取有用的特征,以帮助机器学习算法更好地理解数
2023-10-22

如何让Python像Julia一样快地运行

如何让Python像Julia一样快地运行,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Julia 与 Python 的比较我是否应丢弃 Python 和其他语
2023-06-17

如何实现一个在vbs运行命令行工具后让命令窗口保持打开状态的脚本

这篇文章给大家分享的是有关如何实现一个在vbs运行命令行工具后让命令窗口保持打开状态的脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。问: 如何在运行像 Ping 或 Ipconfig 这样的工具后让命令窗口保
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录