主頁 > 知識(shí)庫 > Python 如何讓特征值滯后一行

Python 如何讓特征值滯后一行

熱門標(biāo)簽:江西省地圖標(biāo)注 如何申請(qǐng)400電話費(fèi)用 外呼系統(tǒng)哪些好辦 武漢外呼系統(tǒng)平臺(tái) 沈陽防封電銷卡品牌 富錦商家地圖標(biāo)注 沈陽外呼系統(tǒng)呼叫系統(tǒng) 池州外呼調(diào)研線路 沈陽人工外呼系統(tǒng)價(jià)格

看代碼吧~

# 加載庫
import pandas as pd
​
# 데이터프레임을 만듭니다.
dataframe = pd.DataFrame()
​
# 模擬數(shù)據(jù)
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

補(bǔ)充:怎樣用python畫超前滯后先關(guān)圖

想要獲取更多Python學(xué)習(xí)資料,了解更多關(guān)于Python的知識(shí),可以加Q群630390733踴躍發(fā)言,大家一起來學(xué)習(xí)討論吧!

超前滯后相關(guān)是什么

想看兩個(gè)時(shí)間序列是否相關(guān),最簡(jiǎn)單的方法就是求二者的相關(guān)系數(shù),但是在大氣、海洋等科學(xué)問題的研究中,往往一個(gè)過程的響應(yīng)并不是實(shí)時(shí)的,可能當(dāng)a過程發(fā)生以后一段時(shí)間b過程才會(huì)發(fā)生,這樣的關(guān)系往往不是同時(shí)期的相關(guān)系數(shù)可以表現(xiàn)的。

超前滯后相關(guān)就是為了看兩個(gè)過程的發(fā)生演變是否在時(shí)間的先后上有一定的相關(guān)性。

舉個(gè)例子:

有a、b兩個(gè)時(shí)間序列,長度都是十二個(gè)月,直接求相關(guān)系數(shù)就是簡(jiǎn)單的同期相關(guān)。

如果a的1-11月對(duì)b的2-12月做相關(guān)系數(shù),就是a對(duì)b超前1個(gè)月的相關(guān);拿a的2-12月對(duì)b的1-11月做相關(guān)則稱之為a對(duì)b的滯后1月相關(guān),以此類推,就能求出n個(gè)月的超前滯后相關(guān),畫圖出來就是沿0月(同期)正負(fù)各n月。

摘自黃嘉佑的書《氣相統(tǒng)計(jì)分析與預(yù)報(bào)方法》,第三版,17頁

python中的實(shí)現(xiàn)

需要輸入兩個(gè)時(shí)間序列,結(jié)果為data1對(duì)data2的超前滯后相關(guān)系數(shù)的序列

from scipy.stats import pearsonr
import numpy as np
 
#超前滯后相關(guān)
def leadlagcor(data1,data2,n):
	#data1和data2為兩個(gè)時(shí)間序列,n設(shè)置做多少個(gè)時(shí)間步長的超前滯后
    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

附贈(zèng)一個(gè)可視化程序

def leadlagcor_plot(data1,data2,n):
	#data1和data2為兩個(gè)時(shí)間序列,n設(shè)置做多少個(gè)時(shí)間步長的超前滯后
    r=leadlagcor(data1,data2,n)#調(diào)用上面寫的函數(shù)做超前滯后相關(guā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 height0:
            bar.set(color='blue')
     
    print('cor_max:',np.max(r),'\n','cor_min:',np.min(r)) 
    plt.savefig('%s.jpg')
    plt.show()

畫出來的結(jié)果就是這樣啦,有更好的寫法和例圖也歡迎分享~

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python共軛梯度法特征值迭代次數(shù)討論
  • Python箱型圖繪制與特征值獲取過程解析
  • python dataframe常見操作方法:實(shí)現(xiàn)取行、列、切片、統(tǒng)計(jì)特征值

標(biāo)簽:常德 潛江 銅川 通遼 黑龍江 呂梁 阿里 株洲

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 如何讓特征值滯后一行》,本文關(guān)鍵詞  Python,如何,讓,特征值,滯后,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python 如何讓特征值滯后一行》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python 如何讓特征值滯后一行的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章