成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用傅里葉變換解碼時(shí)間序列:從頻域視角解析季節(jié)性模式

大數(shù)據(jù) 數(shù)據(jù)分析
本文將詳細(xì)介紹一些基礎(chǔ)但重要的概念,這些方法對(duì)于每位研究時(shí)間序列的數(shù)據(jù)科學(xué)家都具有實(shí)用價(jià)值。

在眾多時(shí)間序列模型中,SARIMA(seasonal autoregressive integrated moving average,季節(jié)性自回歸積分滑動(dòng)平均模型)能夠有效處理時(shí)間序列中的季節(jié)性成分。但是在實(shí)際應(yīng)用中,如何準(zhǔn)確識(shí)別和提取這些季節(jié)性模式一直是一個(gè)挑戰(zhàn)。

傳統(tǒng)上,識(shí)別季節(jié)性模式往往依賴(lài)于數(shù)據(jù)的可視化分析。但是我們可以使用傅里葉變換以及周期圖(Periodogram)這一強(qiáng)大工具,用一種更系統(tǒng)的方法來(lái)解決這個(gè)問(wèn)題

本文將詳細(xì)介紹一些基礎(chǔ)但重要的概念,這些方法對(duì)于每位研究時(shí)間序列的數(shù)據(jù)科學(xué)家都具有實(shí)用價(jià)值。

  1. 傅里葉變換的基本原理
  2. Python實(shí)現(xiàn)傅里葉變換
  3. 周期圖分析方法

問(wèn)題概述

我們以AEP(American Electric Power)能源消耗數(shù)據(jù)集為例(數(shù)據(jù)集使用CC0許可):

import pandas as pd
 import matplotlib.pyplot as plt
 
 df = pd.read_csv("data/AEP_hourly.csv", index_col=0)
 df.index = pd.to_datetime(df.index)
 df.sort_index(inplace=True)
 
 fig, ax = plt.subplots(figsize=(20,4))
 df.plot(ax=ax)
 plt.tight_layout()
 plt.show()

從數(shù)據(jù)的初步可視化中可以明顯觀察到季節(jié)性模式的存在,但要精確捕獲所有這些模式并非易事。

傳統(tǒng)的手動(dòng)分析方法通常需要多個(gè)時(shí)間尺度的可視化,如下所示:

fig, ax = plt.subplots(3, 1, figsize=(20,9))
 
 df_3y = df[(df.index >= '2006–01–01') & (df.index < '2010–01–01')]
 df_3M = df[(df.index >= '2006–01–01') & (df.index < '2006–04–01')]
 df_7d = df[(df.index >= '2006–01–01') & (df.index < '2006–01–08')]
 
 ax[0].set_title('AEP energy consumption 3Y')
 df_3y[['AEP_MW']].groupby(pd.Grouper(freq = 'D')).sum().plot(ax=ax[0])
 for date in df_3y[[True if x % (24 * 365.25 / 2) == 0 else False for x in range(len(df_3y))]].index.tolist():
     ax[0].axvline(date, color = 'r', alpha = 0.5)
 
 ax[1].set_title('AEP energy consumption 3M')
 df_3M[['AEP_MW']].plot(ax=ax[1])
 for date in df_3M[[True if x % (24 * 7) == 0 else False for x in range(len(df_3M))]].index.tolist():
     ax[1].axvline(date, color = 'r', alpha = 0.5)
 
 ax[2].set_title('AEP energy consumption 7D')
 df_7d[['AEP_MW']].plot(ax=ax[2])
 for date in df_7d[[True if x % 24 == 0 else False for x in range(len(df_7d))]].index.tolist():
     ax[2].axvline(date, color = 'r', alpha = 0.5)
 
 plt.tight_layout()
 plt.show()

不同時(shí)間尺度下的AEP能源消耗模式

通過(guò)多尺度分析,我們可以觀察到以下主要周期:

  • 半年度周期(約180天)
  • 周度周期(7天)
  • 日度周期(24小時(shí))

雖然對(duì)于能源消耗數(shù)據(jù)而言,這些季節(jié)性模式可以通過(guò)領(lǐng)域知識(shí)推斷,但僅依靠人工檢查存在以下局限性:

  • 主觀性:容易忽略不明顯的模式
  • 低效率:需要逐一檢查不同時(shí)間窗口
  • 擴(kuò)展性差:難以應(yīng)用于大規(guī)模數(shù)據(jù)分析

作為數(shù)據(jù)科學(xué)家,我們需要一個(gè)能夠快速、準(zhǔn)確識(shí)別時(shí)間序列中關(guān)鍵頻率的工具。這正是傅里葉變換發(fā)揮作用的地方。

1、傅里葉變換的基本原理

傅里葉變換是一種將信號(hào)從時(shí)域轉(zhuǎn)換到頻域的數(shù)學(xué)工具。在時(shí)域中,我們觀察數(shù)據(jù)隨時(shí)間的變化;而在頻域中,我們可以看到構(gòu)成信號(hào)的各個(gè)頻率及其相對(duì)重要性。

根據(jù)傅里葉理論,任何滿(mǎn)足一定條件的函數(shù)f(x)都可以表示為不同頻率、振幅和相位的正弦函數(shù)的疊加。換言之,每個(gè)時(shí)間序列都可以分解為一系列基本波形的組合。

其中:

  • F(f)表示頻域中的函數(shù)
  • f(x)表示時(shí)域中的原始函數(shù)
  • exp(-i2πf(x))是復(fù)指數(shù)函數(shù),用作頻率分析器

函數(shù)F(f)的值表明頻率f在原始信號(hào)中的貢獻(xiàn)程度。

考慮一個(gè)由三個(gè)不同頻率(2Hz、3Hz和5Hz)的正弦波組成的復(fù)合信號(hào):

應(yīng)用傅里葉變換后,我們可以提取這些基本頻率:

頻域表示清晰地顯示出信號(hào)中存在的三個(gè)基本頻率(2Hz、3Hz和5Hz)。將信號(hào)分解為基本波形:

原始信號(hào)(藍(lán)色)是三個(gè)基本波形(紅色)的疊加。這種分解方法可以應(yīng)用于任何時(shí)間序列,用于識(shí)別其主要頻率成分。

2、Python中的傅里葉變換實(shí)現(xiàn)

現(xiàn)在我們將這個(gè)理論應(yīng)用到之前的AEP能源消耗數(shù)據(jù)中。

Python的numpy.fft模塊提供了計(jì)算離散信號(hào)傅里葉變換的工具。FFT(快速傅里葉變換)是一種高效的算法,用于將離散信號(hào)分解為頻率成分:

from numpy import fft
 
 X = fft.fft(df['AEP_MW'])
 N = len(X)
 frequencies = fft.fftfreq(N, 1)
 periods = 1 / frequencies
 fft_magnitude = np.abs(X) / N
 
 mask = frequencies >= 0
 
 # 繪制傅里葉變換結(jié)果
 fig, ax = plt.subplots(figsize=(20, 3))
 ax.step(periods[mask], fft_magnitude[mask]) # 僅繪制正頻率
 ax.set_xscale('log')
 ax.xaxis.set_major_formatter('{x:,.0f}')
 ax.set_title('AEP energy consumption - Frequency-Domain')
 ax.set_xlabel('Frequency (Hz)')
 ax.set_ylabel('Magnitude')
 plt.show()

圖片

頻域可視化顯示了某些頻率具有較高的幅值,表明這些頻率在原始信號(hào)中具有重要作用。

3、周期圖分析

周期圖是信號(hào)功率譜密度(Power Spectral Density, PSD)的頻域表示。相比簡(jiǎn)單的傅里葉變換,周期圖能更好地量化各頻率分量的強(qiáng)度,并且可以有效降低次要頻率的噪聲影響。

周期圖的數(shù)學(xué)定義為:

其中:

  • P(f)是頻率f處的功率譜密度
  • X(f)是信號(hào)的傅里葉變換
  • N是樣本數(shù)量

Python實(shí)現(xiàn)如下:

power_spectrum = np.abs(X)**2 / N  # 計(jì)算每個(gè)頻率的功率
 
 fig, ax = plt.subplots(figsize=(20, 3))
 ax.step(periods[mask], power_spectrum[mask])
 ax.set_title('AEP energy consumption Periodogram')
 ax.set_xscale('log')
 ax.xaxis.set_major_formatter('{x:,.0f}')
 plt.xlabel('Frequency (Hz)')
 plt.ylabel('Power')
 plt.show()

從周期圖分析中,我們可以清晰地識(shí)別出以下主要頻率:

  • 24Hz:對(duì)應(yīng)24小時(shí)周期
  • 4,380Hz:對(duì)應(yīng)6個(gè)月周期
  • 168Hz:對(duì)應(yīng)每星期

除此之外,還發(fā)現(xiàn)了三個(gè)次要周期:

  • 12Hz周期
  • 84Hz周期(對(duì)應(yīng)半周)
  • 8,760Hz周期(對(duì)應(yīng)年度周期)

我們也可以使用scipy.signal模塊中的periodogram函數(shù)獲得相同的結(jié)果:

from scipy.signal import periodogram
 
 frequencies, power_spectrum = periodogram(df['AEP_MW'], return_onesided=False)
 periods = 1 / frequencies
 
 fig, ax = plt.subplots(figsize=(20, 3))
 ax.step(periods, power_spectrum)
 ax.set_title('Periodogram')
 ax.set_xscale('log')
 ax.xaxis.set_major_formatter('{x:,.0f}')
 plt.xlabel('Frequency (Hz)')
 plt.ylabel('Power')
 plt.show()

總結(jié)

在時(shí)間序列分析中,準(zhǔn)確識(shí)別季節(jié)性模式是一個(gè)關(guān)鍵任務(wù)。本文介紹的周期圖分析方法為我們提供了一個(gè)系統(tǒng)、高效的工具,可以準(zhǔn)確識(shí)別時(shí)間序列中的各種周期性成分。這種方法不僅克服了傳統(tǒng)視覺(jué)分析的局限性,還能發(fā)現(xiàn)可能被忽略的次要周期模式,為時(shí)間序列分析提供了更全面的視角。

責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2023-07-19 15:28:10

時(shí)間序列分析季節(jié)性

2023-08-14 16:51:51

傅里葉變換時(shí)間序列去趨勢(shì)化

2020-10-27 10:13:06

Python時(shí)間序列代碼

2023-03-30 15:12:47

2022-10-21 10:43:17

疫情數(shù)據(jù)預(yù)測(cè)時(shí)間序列模型

2024-03-12 12:49:17

Python算法

2022-03-10 08:59:59

傅里葉變換算法系統(tǒng)

2021-04-07 10:02:00

XGBoostPython代碼

2025-04-16 09:21:00

2022-09-30 10:31:06

Python時(shí)間序列數(shù)據(jù)

2012-11-12 14:05:17

數(shù)據(jù)中心防地震

2025-03-26 09:41:19

2022-04-22 12:57:26

云計(jì)算業(yè)務(wù)敏捷性

2023-12-09 16:47:15

C 語(yǔ)言開(kāi)源

2022-04-10 23:29:55

漏洞懸賞漏洞獵人漏洞

2017-03-15 15:21:59

數(shù)據(jù)包漏洞攻擊

2023-10-16 18:02:29

2025-03-07 09:34:14

2010-04-06 12:51:04

2021-04-21 10:26:30

IBM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 黄色在线免费观看 | 99色视频| 久久久久国色av免费观看性色 | 久久在线免费 | 日韩一区精品 | 国产一区 日韩 | 免费毛片www com cn | 成人午夜av | 国产精品久久久久一区二区三区 | 国产一区二区三区在线视频 | 国产精品一区视频 | 日本a视频 | 久久久久国产一级毛片 | 懂色中文一区二区三区在线视频 | 日韩一区二区福利视频 | 亚洲网站在线观看 | 久久久久久成人 | 精品国产一区二区三区久久久四川 | 亚洲精品一区在线观看 | 欧美精品久久久久 | 欧美人人 | 国产99久久精品一区二区永久免费 | 自拍偷拍第一页 | 在线成人av | 亚洲激情专区 | 激情国产| 亚洲va国产日韩欧美精品色婷婷 | 国产成人叼嘿视频在线观看 | 精品乱码久久久久 | 精品免费av | 一区二区中文字幕 | 最近中文字幕在线视频1 | 欧美a v在线 | 成人在线免费看 | 国产精品a一区二区三区网址 | 区一区二区三在线观看 | 天天影视亚洲综合网 | 久久一区二区视频 | 日韩网站免费观看 | 精品亚洲一区二区三区 | jlzzjlzz国产精品久久 |