Python 如何让特征值滞后一行
作者:六mo神剑 发布时间:2021-06-06 06:30:46
标签: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()
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月。
摘自黄嘉佑的书《气相统计分析与预报方法》,第三版,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()
画出来的结果就是这样啦,有更好的写法和例图也欢迎分享~
祝大家科研顺利,身心健康!
来源:https://blog.csdn.net/wj1298250240/article/details/103774116
0
投稿
猜你喜欢
- 事件的概念事件:指的是文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过 * (或者处理程序)来预定事件,以便事件发生的时候执行相应的
- 如何做一个可以让人家申请使用的计数器? 好了,我们来做一个与页面分离的计数器,是文本型的啦。这也很简单,
- 在标志设计中文字与图形元素总是紧密配合,只有恰当的字体与图形搭配时才能发挥最大的视觉效果。这也意味着你不能抛开图案,只是一厢情愿地选择你自己
- <?php $url='test.php?1=1'; $contents="fjka;fjsa;#page#
- 目前,SQL Server数据库有几个版本都在使用中,比如 7.0, 2000和2005,那么,在现实的工作和学习中,你很有可能会需要从以前
- 本文实例讲述了微信小程序实现图片上传、删除和预览功能的方法。分享给大家供大家参考,具体如下:这里主要介绍一下微信小程序的图片上传图片删除和图
- 如果你完全不懂,那么期望1-2周看完一遍拉倒....不用看的太仔细,后面再看到不懂的时候回头去看这些东西好了1. 前言和准备工作 这里不会介
- Django将秒转换为xx天xx时xx分,具体代码如下所示:from django.utils.translation import nge
- 注:IE8以前的版本均不支持该特性为了向文档中插入生成内容,可以使用:before与:after伪元素。如,我想在所有链接的后面加上&quo
- 用Flask处理图片非常容易,这一篇学习一下图片的上传、下载及展示。还是以实例代码演示为主。首先,实现一个简单的上传(过程中未做任何处理,只
- (GlobalImport全局导入功能)默认新建立的MVC程序中,在Views目录下,新增加了一个_GlobalImport.cshtml文
- Window.Open详解 一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2
- 本文实例讲述了php函数serialize()与unserialize()用法。分享给大家供大家参考。具体方法如下:该实例主要讲述了php函
- 更换域名,估计是很多站长都很头疼的事情。通常大家的做法就是把老的域名通过IIS设置做301跳转到新的域名。对于只有一个虚拟空间的站长来说,换
- 一、先看最简单的情况。有两个数组: $arr1 = array(1,9,5); $arr2 = array(6,2,4); array_mu
- 本文实例讲述了php tpl模板引擎定义与使用。分享给大家供大家参考,具体如下:tpl.php<?phpnamespace tpl;/
- 前几天,看到有人写了个superLink的东东,主要的做什么用呢?我们有时会给在大块元素加个window.location='htt
- 通过《SQL Server 数据库备份和还原认识和总结(一)》,相信您对数据备份和还原有了一个更深入的认识,在上文中我没有对事务日志做剖析,
- FrontPage服务器扩展可以做以下工作:(1),保存和检索Web服务器的文件;(2),远程执行所有文件管理操作;(3),改名或移动文件时
- CGArt®2008“贺岁刊”玉鼠闹春,700页再造巅峰本期CGArt杂志信息:下载地址:http://cgart.cgfi