最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)時(shí)間序列變化點(diǎn)檢測(cè)功能

 更新時(shí)間:2024年09月09日 09:18:43   作者:deephub  
平穩(wěn)性是時(shí)間序列分析與預(yù)測(cè)的核心概念,在平穩(wěn)條件下,時(shí)間序列的統(tǒng)計(jì)特性(如均值)在時(shí)間維度上保持不變,僅存在隨機(jī)波動(dòng),但是時(shí)間序列通常會(huì)經(jīng)歷結(jié)構(gòu)性斷裂或變化,本文給大家介紹了Python實(shí)現(xiàn)時(shí)間序列變化點(diǎn)檢測(cè)功能,需要的朋友可以參考下

平穩(wěn)性是時(shí)間序列分析與預(yù)測(cè)的核心概念。在平穩(wěn)條件下,時(shí)間序列的統(tǒng)計(jì)特性(如均值)在時(shí)間維度上保持不變,僅存在隨機(jī)波動(dòng)。

但是實(shí)際數(shù)據(jù)集中很少觀察到完全的平穩(wěn)性。時(shí)間序列通常會(huì)經(jīng)歷結(jié)構(gòu)性斷裂或變化。這些變化會(huì)引入非平穩(wěn)性,從而改變時(shí)間序列的整體分布,這些標(biāo)志著變化開(kāi)始的時(shí)間點(diǎn)被稱(chēng)為變化點(diǎn)。

在時(shí)間序列分析和預(yù)測(cè)中,準(zhǔn)確檢測(cè)結(jié)構(gòu)變化至關(guān)重要。新出現(xiàn)的分布模式往往會(huì)導(dǎo)致歷史數(shù)據(jù)失去代表性,進(jìn)而影響基于這些數(shù)據(jù)訓(xùn)練的模型的有效性。因此需要采用最新數(shù)據(jù)更新模型或采取其他適當(dāng)策略。對(duì)于歷史數(shù)據(jù)中的變化點(diǎn),可以通過(guò)特征工程方法(如干預(yù)分析)進(jìn)行處理。

但需要注意的是,結(jié)構(gòu)變化與異常值是兩個(gè)不同的概念。異常值是指與時(shí)間序列的基本結(jié)構(gòu)或分布所定義的正常行為顯著偏離的觀測(cè)值。而變化點(diǎn)則是指時(shí)間序列的整體結(jié)構(gòu)發(fā)生轉(zhuǎn)變,導(dǎo)致分布特性的改變。

接下來(lái),我們首先詳細(xì)探討不同類(lèi)型的結(jié)構(gòu)變化。

結(jié)構(gòu)變化的類(lèi)型

結(jié)構(gòu)變化可以分為多種類(lèi)型。深入理解這些變化的性質(zhì)對(duì)于選擇適當(dāng)?shù)奶幚聿呗灾陵P(guān)重要。

水平變化

水平變化主要體現(xiàn)在序列的均值或方差上。均值的變化表現(xiàn)為平均水平的移動(dòng),可以是永久性的,也可以是暫時(shí)性的。

永久性水平移動(dòng)是指序列的平均值永久性地轉(zhuǎn)移到一個(gè)新的水平。例如當(dāng)一家零售企業(yè)開(kāi)設(shè)新店時(shí),銷(xiāo)售時(shí)間序列可能會(huì)轉(zhuǎn)移到一個(gè)更高的水平,反映出擴(kuò)大的客戶(hù)基礎(chǔ)。

在這里插入圖片描述

暫時(shí)性水平移動(dòng)是指平均值在一段時(shí)間后恢復(fù)到原有水平。例如制造工廠的一臺(tái)機(jī)器因維修而臨時(shí)停機(jī),生產(chǎn)時(shí)間序列在維修期間會(huì)出現(xiàn)暫時(shí)性的低值。一旦機(jī)器恢復(fù)運(yùn)行,生產(chǎn)水平預(yù)計(jì)會(huì)回到正常狀態(tài)。

在這里插入圖片描述

方差變化

方差的變化會(huì)導(dǎo)致時(shí)間序列離散程度的增加或減少,具有非恒定方差的時(shí)間序列通常被稱(chēng)為異方差序列。方差的變化同樣可以是永久性的或暫時(shí)性的。

在這里插入圖片描述

方差的周期性變化是波動(dòng)聚類(lèi)現(xiàn)象的典型特征。波動(dòng)聚類(lèi)指的是時(shí)間序列呈現(xiàn)出低方差期和高方差期交替出現(xiàn)的模式。換言之,大(?。┓茸兓鶗?huì)連續(xù)出現(xiàn)。

以下是表示每小時(shí)風(fēng)速變化的時(shí)間序列示例,展示了波動(dòng)聚類(lèi)現(xiàn)象:

在這里插入圖片描述

具有波動(dòng)聚類(lèi)特征的時(shí)間序列示例。

波動(dòng)聚類(lèi)在氣象學(xué)(如風(fēng)速分析)和金融學(xué)(如資產(chǎn)價(jià)格研究)等領(lǐng)域中較為常見(jiàn)。

基于Python的變化點(diǎn)檢測(cè)代碼實(shí)現(xiàn)

變化點(diǎn)檢測(cè)算法旨在精確識(shí)別時(shí)間序列分布發(fā)生顯著變化的時(shí)間點(diǎn)。本節(jié)將詳細(xì)探討多種變化點(diǎn)檢測(cè)方法的實(shí)際應(yīng)用。

我們從 datasetsforecast 庫(kù)中加載一個(gè)示例時(shí)間序列數(shù)據(jù):

 fromdatasetsforecast.m4importM4  
 
 dataset, *_=M4.load('./data', 'Monthly')  
 
 series=dataset.query(f'unique_id=="M1430"').reset_index(drop=True)  
 series['time'] =pd.date_range(end='2023-12-01', periods=series.shape[0], freq='M')  

此數(shù)據(jù)集是非常有名的銷(xiāo)量預(yù)測(cè)比賽M4

利用kats進(jìn)行變化點(diǎn)檢測(cè)

kats是Meta開(kāi)發(fā)的一個(gè)功能強(qiáng)大的時(shí)間序列分析庫(kù)。它提供了多種變化檢測(cè)方法,包括CUSUM(累積和)和貝葉斯在線變化點(diǎn)檢測(cè)等。

kats要求使用特定的數(shù)據(jù)結(jié)構(gòu),可以按以下方式進(jìn)行設(shè)置:

 fromkats.constsimportTimeSeriesData  
 
 ts=TimeSeriesData(df=series[['time', 'y']])

CUSUM(累積和)是一種廣泛應(yīng)用于檢測(cè)時(shí)間序列均值變化的方法。其原理是計(jì)算相對(duì)于預(yù)期值的偏差累積和。如果序列的均值保持穩(wěn)定,累積和將呈現(xiàn)圍繞零的隨機(jī)波動(dòng)。累積和的持續(xù)正向(或負(fù)向)變化則表明均值發(fā)生了上升(或下降)移動(dòng)。

以下代碼展示了如何使用kats中的CUSUM方法:

 fromkats.tests.detectors.test_cusum_detectionimportCUSUMDetector  
 
 model=CUSUMDetector(ts)  
 change_points=model.detector(direction=['decrease', 'increase'])  
 model.plot(change_points)

detector方法的 direction 參數(shù)用于指定需要監(jiān)測(cè)的變化方向。在本例中我們同時(shí)監(jiān)測(cè)序列的上升和下降變化。

CUSUM方法實(shí)現(xiàn)了對(duì)變化點(diǎn)的準(zhǔn)確檢測(cè):

在這里插入圖片描述

另一種與CUSUM相似的方法是在移動(dòng)平均的基礎(chǔ)上計(jì)算z分?jǐn)?shù)。kats中的 RobustStatDetector 就采用了這種方法:

 fromkats.tests.detectors.test_robust_stat_detectionimportRobustStatDetector  
 
 model=RobustStatDetector(ts)  
 change_points=model.detector(p_value_cutoff=0.001, comparison_window=12)  
 model.plot(change_points)

在這個(gè)方法中,我們將p值閾值設(shè)置為0.001,窗口大小設(shè)置為12(對(duì)應(yīng)于一年的數(shù)據(jù),因?yàn)樵撔蛄惺前丛率占模?/p>

在這里插入圖片描述

使用kats中的RobustStatDetector檢測(cè)變化點(diǎn)。RobustStatDetector在這個(gè)例子中檢測(cè)到了幾個(gè)相互靠近的變化點(diǎn)。

利用ruptures進(jìn)行變化點(diǎn)檢測(cè)

ruptures庫(kù)同樣提供了多種變化點(diǎn)檢測(cè)算法的實(shí)現(xiàn),包括PELT(修剪精確線性時(shí)間)、基于核的算法和動(dòng)態(tài)規(guī)劃算法等。

以下是使用PELT算法檢測(cè)均值變化的示例:

 importrupturesasrpt  
 
 # 將時(shí)間序列轉(zhuǎn)換為numpy數(shù)組  
 signal=series['y'].values  
 
 # 擬合PELT模型  
 model=rpt.Pelt(model="rbf").fit(signal)  
 
 # 獲取變化點(diǎn)  
 result=model.predict(pen=10)

PELT算法的核心思想是將時(shí)間序列分割成具有不同統(tǒng)計(jì)特性(如均值)的多個(gè)片段。它通過(guò)最小化一個(gè)用戶(hù)定義的成本函數(shù)來(lái)實(shí)現(xiàn)這一目標(biāo),該函數(shù)的具體形式取決于需要檢測(cè)的變化類(lèi)型。在這個(gè)例子中我們使用了基于徑向基函數(shù)的模型(model=“rbf”)。

以下是PELT模型的檢測(cè)結(jié)果:

在這里插入圖片描述

變化點(diǎn)的處理策略

在識(shí)別出變化點(diǎn)后,下一步就是采取適當(dāng)?shù)奶幚泶胧?。以下是幾種常用的處理方法:

差分法

對(duì)時(shí)間序列進(jìn)行差分是處理均值變化的一種有效方法。這種技術(shù)通過(guò)計(jì)算連續(xù)觀測(cè)值之間的差值來(lái)穩(wěn)定序列的平均水平。

以下是示例序列的一階差分結(jié)果:

在這里插入圖片描述

差分法能夠有效消除許多類(lèi)型的非平穩(wěn)性,使得后續(xù)的分析和建模工作更加可靠。

虛擬變量法

另一種處理變化點(diǎn)的方法是引入虛擬變量。這種方法在變化點(diǎn)之前賦值為0,之后賦值為1,從而在模型中顯式地表示結(jié)構(gòu)變化。

在這里插入圖片描述

虛擬變量法允許模型捕捉變化前后的不同行為,提高了模型的靈活性和準(zhǔn)確性。

區(qū)制轉(zhuǎn)換模型

對(duì)于暫時(shí)性變化,區(qū)制轉(zhuǎn)換模型(regime-switching)是一種較為復(fù)雜但有效的建模方法。這類(lèi)模型能夠根據(jù)當(dāng)前的狀態(tài)或區(qū)制采用不同的參數(shù)設(shè)置。

閾值自回歸(TAR)模型是區(qū)制轉(zhuǎn)換模型的一個(gè)典型例子。TAR模型對(duì)不同范圍的時(shí)間序列值采用不同的參數(shù),從而能夠捕捉復(fù)雜的非線性動(dòng)態(tài)。

總結(jié)結(jié)論

通過(guò)本文的分析,我們可以得出以下幾點(diǎn)重要結(jié)論:

時(shí)間序列常常受到結(jié)構(gòu)變化的影響,這些變化會(huì)顯著改變序列的統(tǒng)計(jì)分布特性。結(jié)構(gòu)變化可能發(fā)生在均值或方差上,并且可能是永久性的或暫時(shí)性的。準(zhǔn)確識(shí)別變化的性質(zhì)對(duì)于選擇適當(dāng)?shù)奶幚矸椒ㄖ陵P(guān)重要。現(xiàn)代統(tǒng)計(jì)和機(jī)器學(xué)習(xí)提供了多種變化點(diǎn)檢測(cè)方法,如CUSUM和PELT算法。這些方法在kats和ruptures等Python庫(kù)中都有實(shí)現(xiàn),為實(shí)踐應(yīng)用提供了便利。對(duì)于檢測(cè)到的變化點(diǎn),可以采用多種處理策略。差分法和引入虛擬變量是處理均值變化的常用方法,而對(duì)于更復(fù)雜的情況,可以考慮使用區(qū)制轉(zhuǎn)換模型。數(shù)據(jù)預(yù)處理在處理結(jié)構(gòu)變化中扮演著關(guān)鍵角色。合適的預(yù)處理不僅可以穩(wěn)定序列的方差,還能為后續(xù)的建模工作奠定基礎(chǔ)。

通過(guò)深入理解時(shí)間序列的結(jié)構(gòu)變化,并靈活運(yùn)用各種檢測(cè)和處理方法,分析人員可以顯著提高時(shí)間序列模型的準(zhǔn)確性和可靠性,為決策提供更有力的支持。

以上就是Python實(shí)現(xiàn)時(shí)間序列變化點(diǎn)檢測(cè)功能的詳細(xì)內(nèi)容,更多關(guān)于Python時(shí)間序列變化點(diǎn)檢測(cè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 分割python多空格字符串的兩種方法小結(jié)

    分割python多空格字符串的兩種方法小結(jié)

    這篇文章主要介紹了分割python多空格字符串的兩種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python讀取圖像矩陣文件并轉(zhuǎn)換為向量實(shí)例

    python讀取圖像矩陣文件并轉(zhuǎn)換為向量實(shí)例

    這篇文章主要介紹了python讀取圖像矩陣文件并轉(zhuǎn)換為向量實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 使用 Python 查找本月的最后一天的方法匯總

    使用 Python 查找本月的最后一天的方法匯總

    這篇文章主要介紹了使用 Python 查找本月的最后一天,在本文中,我們學(xué)習(xí)了使用 datetime 和 calendar 等內(nèi)置庫(kù)以及 arrow 和 pandas 等第三方庫(kù)在 Python 中查找月份最后一天的各種方法,需要的朋友可以參考下
    2023-05-05
  • python處理xls文件openpyxl基礎(chǔ)操作

    python處理xls文件openpyxl基礎(chǔ)操作

    這篇文章主要為大家介紹了python處理xls文件openpyxl基礎(chǔ)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python實(shí)現(xiàn)生成bmp圖像的方法

    Python實(shí)現(xiàn)生成bmp圖像的方法

    本文主要介紹了Python實(shí)現(xiàn)生成bmp圖像的方法,對(duì)大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 找不到Anaconda prompt終端的原因分析及解決方案

    找不到Anaconda prompt終端的原因分析及解決方案

    因?yàn)閍naconda還沒(méi)有初始化,在安裝anaconda的過(guò)程中,有一行是否要添加anaconda到菜單目錄中,由于沒(méi)有勾選,導(dǎo)致沒(méi)有菜單部分的初始化,故找不到,這篇文章主要介紹了找不到Anaconda prompt終端的原因分析及解決方案,需要的朋友可以參考下
    2025-03-03
  • Pytorch 如何實(shí)現(xiàn)常用正則化

    Pytorch 如何實(shí)現(xiàn)常用正則化

    這篇文章主要介紹了Pytorch 實(shí)現(xiàn)常用正則化的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解Python Flask框架的安裝及應(yīng)用

    詳解Python Flask框架的安裝及應(yīng)用

    Flask誕生于愚人節(jié)開(kāi)的一個(gè)玩笑,后來(lái)逐漸發(fā)展成為一個(gè)成熟的 Python Web框架,越來(lái)越受到開(kāi)發(fā)者的喜愛(ài)。本文將以一個(gè)博客后臺(tái)為例,詳解Flask框架的安裝及應(yīng)用,需要的可以參考一下
    2022-05-05
  • python單星號(hào)(*)與雙星號(hào)(**)使用示例demo

    python單星號(hào)(*)與雙星號(hào)(**)使用示例demo

    這篇文章詳細(xì)介紹了Python中*與**操作符的使用場(chǎng)景及注意事項(xiàng),并通過(guò)示例代碼展示了它們?cè)诤瘮?shù)形參和實(shí)參、序列解包以及函數(shù)參數(shù)順序中的應(yīng)用,需要的朋友可以參考下
    2024-12-12
  • pygame實(shí)現(xiàn)彈球游戲流程

    pygame實(shí)現(xiàn)彈球游戲流程

    這篇文章主要介紹了pygame實(shí)現(xiàn)彈球游戲流程,彈球游戲(Pinball Pro)是安卓手機(jī)上排名第一的彈球游戲,真實(shí)再現(xiàn)了一直以來(lái)最經(jīng)典的彈珠臺(tái)游戲的玩法
    2023-01-01

最新評(píng)論

外汇| 望谟县| 临沭县| 屏东县| 新竹县| 富宁县| 临泉县| 台湾省| 临颍县| 板桥市| 康平县| 天柱县| 齐齐哈尔市| 丰县| 英吉沙县| 彰化县| 克东县| 四川省| 洛隆县| 青河县| 新乐市| 天气| 扬州市| 松江区| 舞阳县| 松阳县| 华蓥市| 将乐县| 安阳市| 弋阳县| 龙泉市| 固原市| 威远县| 井冈山市| 临安市| 屯昌县| 漳州市| 江津市| 嘉荫县| 康马县| 镇宁|