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
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 本文实例讲述了PHP实现获取第一个中文首字母并进行排序的方法。分享给大家供大家参考,具体如下:最近在做储值结算,需求里结算首页需要按门店的首
- 昨天装了个SQL2000,打开企业管理器,发现SQL Server组下面没有任何的内容,提示“无项目”。之前sa设置的都是空密码就没碰到这个
- 最近在处理文本文件时,遇到编码格式和换行符的问题。基本上都是GBK 和 UTF-8 编码的文本文件,但是python3 中默认的都是按照 u
- vue2.0中使用mapState及mapActions的方式 // 使用mapStatecomputed: { &nb
- 从容器、可迭代对象谈起所有的容器都是可迭代的(iterable),迭代器提供了一个next方法。iter()返回一个迭代器,通过next()
- 用于绘制直线的line函数;用于绘制椭圆的ellipse函数;用于绘制矩形的rectangle函数;用于绘制圆的circle函数;用于绘制填
- 方法来源于土豆网的导航,在这里纪录一下实现的思路。主要是利用 position 属性的 absolute 和 relative 配
- 后台数据库用是Access,客户用了一年后说打开界面非常慢,查看了数据库后发现数据表中的记录已有五万多条,自己试过将记录复制到10 万条,打
- Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文
- listlist是一种有序的集合,可以随时添加和删除其中的元素。跟java不一样的是 可以使用arr[-1] 0>-x >=-
- 对于个人站长来说,如何能使自己的网站与众不同、充满个性,一直是不懈努力的目标。除了尽量提高页面的视觉效
- 准备工作: ① 首先要会使用ThinkPHP这个框架 ② 最好有些ajax的基础(可以去看下小飞的另外一篇博文:Ajax实时验证"
- 图片的上传上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示
- 导语哈喽哈喽!大家好!我是木木子,又到了每日游戏更新环节!8月30日,对暑假还意犹未尽的孩子们收到了一份“开学大礼”:通知要求,严格限制向未
- 很多应用要用到TreeView来显示组织机构,以下演示TreeView如何与数据库进行绑定。数据库结构如下(递归现实):id(guid)&n
- Python与Perl,C和Java语言等有许多相似之处。不过,也有语言之间有一些明确的区别。本章的目的是让你迅速学习Python的语法。第
- ping 基本概念ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在
- 对于显存不充足的炼丹研究者来说,弄清楚Pytorch显存的分配机制是很有必要的。下面直接通过实验来推出Pytorch显存的分配过程。实验实验
- 前言:Python pass 是空语句,是为了保持程序结构的完整性;pass 不做任何事情,一般用做占位语句。Python 语言
- 一、为什么要包管理默认Go的第三方包都是放在Gopath的src目录下,而且这些包都没有版本号的概念,这样的可能会出现一些问题。举个例子:当