AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

使用遞歸圖 recurrence plot 表征時間序列

來源: 責編: 時間:2023-11-10 17:07:16 289觀看
導(dǎo)讀在本文中,我將展示如何使用遞歸圖 Recurrence Plots 來描述不同類型的時間序列。我們將查看具有500個數(shù)據(jù)點的各種模擬時間序列。我們可以通過可視化時間序列的遞歸圖并將其與其他已知的不同時間序列的遞歸圖進行比較,

在本文中,我將展示如何使用遞歸圖 Recurrence Plots 來描述不同類型的時間序列。我們將查看具有500個數(shù)據(jù)點的各種模擬時間序列。我們可以通過可視化時間序列的遞歸圖并將其與其他已知的不同時間序列的遞歸圖進行比較,從而直觀地表征時間序列。b6c28資訊網(wǎng)——每日最新資訊28at.com

b6c28資訊網(wǎng)——每日最新資訊28at.com

遞歸圖

Recurrence  Plots(RP)是一種用于可視化和分析時間序列或動態(tài)系統(tǒng)的方法。它將時間序列轉(zhuǎn)化為圖形化的表示形式,以便分析時間序列中的重復(fù)模式和結(jié)構(gòu)。Recurrence Plots 是非常有用的,尤其是在時間序列數(shù)據(jù)中存在周期性、重復(fù)事件或關(guān)聯(lián)結(jié)構(gòu)時。b6c28資訊網(wǎng)——每日最新資訊28at.com

Recurrence Plots 的基本原理是測量時間序列中各點之間的相似性。如果兩個時間點之間的距離小于某個給定的閾值,就會在 Recurrence Plot 中繪制一個點,表示這兩個時間點之間存在重復(fù)性。這些點在二維平面上組成了一種圖像。b6c28資訊網(wǎng)——每日最新資訊28at.com

import numpy as np import matplotlib.pyplot as plt  def recurrence_plot(data, threshold=0.1):    """    Generate a recurrence plot from a time series.     :param data: Time series data    :param threshold: Threshold to determine recurrence    :return: Recurrence plot    """    # Calculate the distance matrix    N = len(data)    distance_matrix = np.zeros((N, N))    for i in range(N):        for j in range(N):            distance_matrix[i, j] = np.abs(data[i] - data[j])     # Create the recurrence plot    recurrence_plot = np.where(distance_matrix <= threshold, 1, 0)     return recurrence_plot

上面的代碼創(chuàng)建了一個二進制距離矩陣,如果時間序列i和j的值相差在0.1以內(nèi)(閾值),則它們的值為1,否則為0。得到的矩陣可以看作是一幅圖像。b6c28資訊網(wǎng)——每日最新資訊28at.com

白噪聲

接下來我們將可視化白噪聲。首先,我們需要創(chuàng)建一系列模擬的白噪聲:b6c28資訊網(wǎng)——每日最新資訊28at.com

# Set a seed for reproducibility np.random.seed(0)  # Generate 500 data points of white noise white_noise = np.random.normal(size=500)  # Plot the white noise time series plt.figure(figsize=(10, 6)) plt.plot(white_noise, label='White Noise') plt.title('White Noise Time Series') plt.xlabel('Time') plt.ylabel('Value') plt.legend() plt.grid(True) plt.show()

圖片b6c28資訊網(wǎng)——每日最新資訊28at.com

遞歸圖為這種白噪聲提供了有趣的可視化效果。對于任何一種白噪聲,圖看起來都是一樣的:b6c28資訊網(wǎng)——每日最新資訊28at.com

# Generate and plot the recurrence plot recurrence = recurrence_plot(white_noise, threshold=0.1)  plt.figure(figsize=(8, 8)) plt.imshow(recurrence, cmap='binary', origin='lower') plt.title('Recurrence Plot') plt.xlabel('Time') plt.ylabel('Time') plt.colorbar(label='Recurrence') plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

可以直觀地看到一個嘈雜的過程。可以看到圖中對角線總是黑色的。b6c28資訊網(wǎng)——每日最新資訊28at.com

隨機游走

接下來讓我們看看隨機游走(Random Walk)是什么樣子的:b6c28資訊網(wǎng)——每日最新資訊28at.com

# Generate 500 data points of a random walk steps = np.random.choice([-1, 1], size=500) # Generate random steps: -1 or 1 random_walk = np.cumsum(steps) # Cumulative sum to generate the random walk  # Plot the random walk time series plt.figure(figsize=(10, 6)) plt.plot(random_walk, label='Random Walk') plt.title('Random Walk Time Series') plt.xlabel('Time') plt.ylabel('Value') plt.legend() plt.grid(True) plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

# Generate and plot the recurrence plot recurrence = recurrence_plot(random_walk, threshold=0.1)  plt.figure(figsize=(8, 8)) plt.imshow(recurrence, cmap='binary', origin='lower') plt.title('Recurrence Plot') plt.xlabel('Time') plt.ylabel('Time') plt.colorbar(label='Recurrence') plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

SARIMA

SARIMA(4,1,4)(1,0,0,12)的模擬數(shù)據(jù)b6c28資訊網(wǎng)——每日最新資訊28at.com

from statsmodels.tsa.statespace.sarimax import SARIMAX  # Define SARIMA parameters p, d, q = 4, 1, 4 # Non-seasonal order P, D, Q, s = 1, 0, 0, 12 # Seasonal order  # Simulate data model = SARIMAX(np.random.randn(100), order=(p, d, q), seasonal_order=(P, D, Q, s), trend='ct') fit = model.fit(disp=False) # Fit the model to random data to get parameters simulated_data = fit.simulate(nsimulatinotallow=500)  # Plot the simulated time series plt.figure(figsize=(10, 6)) plt.plot(simulated_data, label=f'SARIMA({p},asoweqmqs,{q})({P},{D},{Q},{s})') plt.title('Simulated Time Series from SARIMA Model') plt.xlabel('Time') plt.ylabel('Value') plt.legend() plt.grid(True) plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

recurrence = recurrence_plot(simulated_data, threshold=0.1)  plt.figure(figsize=(8, 8)) plt.imshow(recurrence, cmap='binary', origin='lower') plt.title('Recurrence Plot') plt.xlabel('Time') plt.ylabel('Time') plt.colorbar(label='Recurrence') plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

混沌的數(shù)據(jù)

def logistic_map(x, r):    """Logistic map function."""    return r * x * (1 - x)  # Initialize parameters N = 500         # Number of data points r = 3.9         # Parameter r, set to a value that causes chaotic behavior x0 = np.random.rand() # Initial value  # Generate chaotic time series data chaotic_data = [x0] for _ in range(1, N):    x_next = logistic_map(chaotic_data[-1], r)    chaotic_data.append(x_next)  # Plot the chaotic time series plt.figure(figsize=(10, 6)) plt.plot(chaotic_data, label=f'Logistic Map (r={r})') plt.title('Chaotic Time Series') plt.xlabel('Time') plt.ylabel('Value') plt.legend() plt.grid(True) plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

recurrence = recurrence_plot(chaotic_data, threshold=0.1)  plt.figure(figsize=(8, 8)) plt.imshow(recurrence, cmap='binary', origin='lower') plt.title('Recurrence Plot') plt.xlabel('Time') plt.ylabel('Time') plt.colorbar(label='Recurrence') plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

標準普爾500指數(shù)

作為最后一個例子,讓我們看看從2013年10月28日至2023年10月27日的標準普爾500指數(shù)真實數(shù)據(jù):b6c28資訊網(wǎng)——每日最新資訊28at.com

import pandas as pd  df = pd.read_csv('standard_and_poors_500_idx.csv', parse_dates=True) df['Date'] = pd.to_datetime(df['Date']) df.set_index('Date', inplace = True) df.drop(columns = ['Open', 'High', 'Low'], inplace = True)  df.plot() plt.title('S&P 500 Index - 10/28/2013 to 10/27/2023') plt.ylabel('S&P 500 Index') plt.xlabel('Date');

b6c28資訊網(wǎng)——每日最新資訊28at.com

recurrence = recurrence_plot(df['Close/Last'], threshold=10)  plt.figure(figsize=(8, 8)) plt.imshow(recurrence, cmap='binary', origin='lower') plt.title('Recurrence Plot') plt.xlabel('Time') plt.ylabel('Time') plt.colorbar(label='Recurrence') plt.show()

b6c28資訊網(wǎng)——每日最新資訊28at.com

選擇合適的相似性閾值是 遞歸圖分析的一個關(guān)鍵步驟。較小的閾值會導(dǎo)致更多的重復(fù)模式,而較大的閾值會導(dǎo)致更少的重復(fù)模式。閾值的選擇通常需要根據(jù)數(shù)據(jù)的特性和分析目標進行調(diào)整。b6c28資訊網(wǎng)——每日最新資訊28at.com

這里我們不得不調(diào)整閾值,最終確得到的結(jié)果為10,這樣可以獲得更大的對比度。上面的遞歸圖看起來很像隨機游走遞歸圖和無規(guī)則的混沌數(shù)據(jù)的混合體。b6c28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

在本文中,我們介紹了遞歸圖以及如何使用Python創(chuàng)建遞歸圖。遞歸圖給了我們一種直觀表征時間序列圖的方法。遞歸圖是一種強大的工具,用于揭示時間序列中的結(jié)構(gòu)和模式,特別適用于那些具有周期性、重復(fù)性或復(fù)雜結(jié)構(gòu)的數(shù)據(jù)。通過可視化和特征提取,研究人員可以更好地理解時間序列數(shù)據(jù)并進行進一步的分析。b6c28資訊網(wǎng)——每日最新資訊28at.com

從遞歸圖中可以提取各種特征,以用于進一步的分析。這些特征可以包括重復(fù)點的分布、Lempel-Ziv復(fù)雜度、最長對角線長度等。b6c28資訊網(wǎng)——每日最新資訊28at.com

遞歸圖在多個領(lǐng)域中得到了廣泛應(yīng)用,包括時間序列分析、振動分析、地震學、生態(tài)學、金融分析、生物醫(yī)學等。它可用于檢測周期性、異常事件、相位同步等。b6c28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-20045-0.html使用遞歸圖 recurrence plot 表征時間序列

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 系統(tǒng)架構(gòu)七個非功能性需求

下一篇: 線性回歸,核技巧和線性核

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • 石頭自清潔掃拖機器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經(jīng)常能看到一個詞叫“縫合怪”,用來形容那些把好多功能或者外觀結(jié)合在一起的產(chǎn)品,通常這樣的詞是貶義詞,但如果真的是產(chǎn)品縫合的好、縫合的實用的話,那它就成了中性詞,今
  • 一篇聊聊Go錯誤封裝機制

    %w 是用于錯誤包裝(Error Wrapping)的格式化動詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數(shù)中的一個特殊格式化動詞,用于將一個錯誤(或其他可打印的值)包裝在一個新的錯誤中。使
  • 一個注解實現(xiàn)接口冪等,這樣才優(yōu)雅!

    場景碼猿慢病云管理系統(tǒng)中其實高并發(fā)的場景不是很多,沒有必要每個接口都去考慮并發(fā)高的場景,比如添加住院患者的這個接口,具體的業(yè)務(wù)代碼就不貼了,業(yè)務(wù)偽代碼如下:圖片上述代碼有
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務(wù),包括但不限于:開發(fā)某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元&ldquo;人在職場,應(yīng)該選擇什么樣的著裝?&rdquo;近日,在網(wǎng)絡(luò)上,一個與著裝相關(guān)的帖子引發(fā)關(guān)注,在該帖子里,一位在高級寫字樓亞洲金
  • 疑似小米14外觀設(shè)計圖曝光:后置相機模組變化不大

    下半年的大幕已經(jīng)開啟,而誰將成為下半年手機圈的主角就成為了大家關(guān)注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 2納米決戰(zhàn)2025

    集微網(wǎng)報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領(lǐng)先地位的英特爾,甚至初成立不久的新
  • 引領(lǐng)旗艦級影像能力向中端機普及 OPPO K11 系列發(fā)布 1799 元起

    7月25日,OPPO正式發(fā)布K系列新品—— OPPO K11 。此次 K11 在中端手機市場長期被忽視的影像板塊發(fā)力,突破性地搭載索尼 IMX890 旗艦大底主攝,支持 OIS
Top