Python 如何让特征值滞后一行

作者:六mo神剑 时间:2021-06-06 06:30:46 

看代码吧~


# 加载库
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()
datesstock_priceprevious_days_stock_price
02001-01-011.1NaN
12001-01-022.21.1
22001-01-033.32.2
32001-01-044.43.3
42001-01-055.54.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月。

Python 如何让特征值滞后一行

摘自黄嘉佑的书《气相统计分析与预报方法》,第三版,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()

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

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

Python 如何让特征值滞后一行

来源:https://blog.csdn.net/wj1298250240/article/details/103774116

标签:Python,特征值,滞后
0
投稿

猜你喜欢

  • JMail(4.3版本)发信asp代码

    2007-08-03 12:40:00
  • js“树”读取xml数据源码

    2007-08-04 19:42:00
  • Python利用Turtle绘制Technoblade的示例代码

    2023-08-23 22:43:01
  • 基于AJAX技术提高搜索引擎排名

    2008-01-24 12:45:00
  • javascript的正则表达式

    2010-07-27 12:29:00
  • Scripting.Dictionary 对象

    2007-10-13 09:46:00
  • Javascript 中截取小数位并实现四舍五入的方法

    2008-08-05 18:11:00
  • 详解Python如何实现发送带附件的电子邮件

    2022-03-20 13:33:46
  • 一文搞懂Python中is和==的区别

    2023-11-15 09:42:27
  • SQL Server 2008数据挖掘查询任务

    2009-03-16 16:50:00
  • Python SQLite3数据库操作类分享

    2023-08-24 01:04:02
  • 解析:在SQL Server下数据库链接的使用

    2009-01-23 13:37:00
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析

    2012-07-11 15:56:55
  • 不完全HTML在线编辑器收集

    2007-11-08 12:20:00
  • 怎样设计网站首页?(解答)

    2007-11-04 18:56:00
  • Python+logging输出到屏幕将log日志写入文件

    2023-07-19 05:29:21
  • 记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制

    2010-04-07 22:35:00
  • 防盗链接ASP函数

    2011-03-07 11:02:00
  • 细化解析:SQL Server 2005 数据库镜像

    2009-01-23 13:41:00
  • CSS绝对定位在宽屏分辨率下错位

    2009-07-28 12:24:00
  • asp之家 网络编程 m.aspxhome.com