時(shí)間序列分析是一種非常實(shí)用且強(qiáng)大的技術(shù),用于研究隨時(shí)間變化的數(shù)據(jù),例如銷售、交通、氣候等。異常檢測是識別偏離數(shù)據(jù)正常趨勢的值或事件的過程。在本文中,我將解釋什么是時(shí)間序列,它的組成部分是什么,它與其他類型的數(shù)據(jù)有何不同,如何檢測時(shí)間序列中的異常,以及進(jìn)行此類檢測的最常見技術(shù)。
時(shí)間序列分析簡介
時(shí)間序列是在不同時(shí)點(diǎn)記錄一個(gè)或多個(gè)變量值的數(shù)據(jù)。例如,每天訪問網(wǎng)站的人數(shù)、每月城市的 average 溫度、每小時(shí)的股票價(jià)格等。時(shí)間序列非常重要,因?yàn)樗鼈冊试S我們分析過去,理解現(xiàn)在,并預(yù)測未來。此外,時(shí)間序列幫助我們發(fā)現(xiàn)數(shù)據(jù)中的隱藏模式和趨勢,這些可以用于改進(jìn)決策和策略。
然而,時(shí)間序列分析也帶來了挑戰(zhàn),并且與非時(shí)間數(shù)據(jù)分析有所不同。主要區(qū)別之一是時(shí)間序列是時(shí)間依賴的,即數(shù)據(jù)的排序和范圍是相關(guān)且不能被忽視或更改的。另一個(gè)區(qū)別是時(shí)間序列通常是非平穩(wěn)的,即它們的統(tǒng)計(jì)屬性(如均值和方差)會(huì)隨時(shí)間變化。這使得應(yīng)用傳統(tǒng)的統(tǒng)計(jì)方法變得困難,這些方法假設(shè)數(shù)據(jù)的平穩(wěn)性。
此外,時(shí)間序列分析需要對異常檢測采取不同的方法。異常是顯著偏離數(shù)據(jù)正常趨勢的值或事件。異常可能是由測量錯(cuò)誤、結(jié)構(gòu)變化、欺詐活動(dòng)、特殊事件等引起的。異常檢測很重要,因?yàn)樗梢蕴峁╇[藏在數(shù)據(jù)中的問題或機(jī)會(huì)的寶貴見解。然而,檢測時(shí)間序列中的異常比非時(shí)間數(shù)據(jù)更復(fù)雜,因?yàn)楸仨毧紤]到數(shù)據(jù)的時(shí)序依賴性、非平穩(wěn)性和動(dòng)態(tài)性質(zhì)。
時(shí)間序列分析的基本概念
在我們詳細(xì)討論時(shí)間序列分析和異常檢測技術(shù)之前,我們需要定義什么是時(shí)間序列及其組成部分。時(shí)間序列是在不同時(shí)點(diǎn)測量的一個(gè)或多個(gè)變量值的序列。
時(shí)間序列有三個(gè)主要組成部分:日期、時(shí)間和特征。日期和時(shí)間指示了何時(shí)測量變量值。特征是我們希望分析的變量。在我們的示例中,日期是月份的一天,天氣是星期幾,特征是訪客數(shù)量。
為了能夠分析時(shí)間序列,我們需要滿足某些要求。第一個(gè)要求是有足夠的數(shù)據(jù)點(diǎn),即隨時(shí)間變化的變量觀測值。所需的數(shù)據(jù)點(diǎn)數(shù)量取決于我們想要進(jìn)行的分析類型以及數(shù)據(jù)收集的頻率。例如,如果我們想要分析數(shù)據(jù)的季節(jié)性,即數(shù)據(jù)作為時(shí)間的函數(shù)的周期性變化,我們需要至少一個(gè)完整的觀測周期,涵蓋所有可能的季節(jié)。如果數(shù)據(jù)每天收集一次,我們需要至少一年的數(shù)據(jù)才能分析年度季節(jié)性。
第二個(gè)要求是對數(shù)據(jù)的領(lǐng)域有深入的了解,即數(shù)據(jù)生成的背景和變量的含義。這有助于我們解釋分析結(jié)果并識別異常的可能原因。例如,如果我們分析網(wǎng)站的訪客數(shù)量,我們需要知道網(wǎng)站的類型、目標(biāo)受眾、目標(biāo)、影響流量的因素等。
第三個(gè)要求是對分析目標(biāo)有清晰的定義,即我們想要從數(shù)據(jù)中發(fā)現(xiàn)什么以及我們想要如何使用它。分析的目標(biāo)可能因用例和研究問題而異。例如,我們可能想要分析時(shí)間序列有:
描述數(shù)據(jù)隨時(shí)間的行為及其主要特征
基于過去的值預(yù)測未來的數(shù)據(jù)值
檢測數(shù)據(jù)中的異常及其原因
測試關(guān)于數(shù)據(jù)及其關(guān)系的假設(shè)
優(yōu)化數(shù)據(jù)驅(qū)動(dòng)的決策和行動(dòng)
理解時(shí)間序列中的異常
在我們查看如何檢測時(shí)間序列中的異常之前,我們需要了解異常是什么以及它們?nèi)绾卧跀?shù)據(jù)中表現(xiàn)出來。異常是顯著偏離數(shù)據(jù)正常趨勢的值或事件。異??梢苑譃閮煞N類型:點(diǎn)狀或集體。點(diǎn)狀異常是與時(shí)間序列中的其他值非常不同的孤立值。集體異常是與時(shí)間序列的其他部分不同的一組值。
例如,在下面的圖中,我們可以看到一個(gè)月內(nèi)每天記錄網(wǎng)站訪客數(shù)量的時(shí)間序列。點(diǎn)狀異常用紅色標(biāo)出,集體異常用藍(lán)色標(biāo)出。
異常可能有不同的原因和含義。一些異常可能是由于測量、傳輸或數(shù)據(jù)處理錯(cuò)誤引起的。這些異常通常被稱為噪聲,可以被忽略或糾正。其他異??赡苁怯捎诮Y(jié)構(gòu)性變化、欺詐活動(dòng)、特殊事件或其他影響數(shù)據(jù)的因素引起的。這些異常通常被稱為信號,檢測和分析它們可能很重要。
為了檢測時(shí)間序列中的異常,我們首先需要對數(shù)據(jù)隨時(shí)間的正常運(yùn)動(dòng)有所期望。這些期望是基于對時(shí)間序列的主要組成部分的分析,這些組成部分是:
趨勢,即數(shù)據(jù)長期變化的方向和速度。例如,上升趨勢表明數(shù)據(jù)隨時(shí)間增加,而下降趨勢表明數(shù)據(jù)隨時(shí)間減少。
季節(jié)性,即數(shù)據(jù)作為時(shí)間的函數(shù)的周期性變化。例如,年度季節(jié)性表明數(shù)據(jù)具有每年重復(fù)一次的循環(huán)模式,例如玩具店的銷售在12月增加而在1月減少。
周期性,即數(shù)據(jù)作為時(shí)間的函數(shù)的不規(guī)則變化。例如,經(jīng)濟(jì)周期性表明數(shù)據(jù)具有依賴于外部因素(如GDP、通貨膨脹、失業(yè)率等)的波動(dòng)趨勢。
噪聲,即數(shù)據(jù)作為時(shí)間的函數(shù)的隨機(jī)變化。例如,噪聲可能是由測量、傳輸或處理錯(cuò)誤引起的。
在下面的圖中,我們可以看到一個(gè)具有上升趨勢、年度季節(jié)性和噪聲的時(shí)間序列示例。
當(dāng)分析時(shí)間序列時(shí),我們需要考慮這些組件并了解它們?nèi)绾坞S時(shí)間變化。一個(gè)或多個(gè)組件的變化可能會(huì)引起異常。因此,通過理解和建模時(shí)間序列的趨勢、季節(jié)性、周期性和噪聲,我們可以建立對正常行為的期望,并相應(yīng)地檢測偏離這些期望的異常。
時(shí)間序列分析的數(shù)據(jù)要求
如我們所見,為了能夠分析時(shí)間序列并檢測異常值,我們需要擁有滿足特定要求的數(shù)據(jù)。第一個(gè)要求是擁有足夠數(shù)量的數(shù)據(jù)點(diǎn),即隨時(shí)間變化的變量觀測值。所需的數(shù)據(jù)點(diǎn)數(shù)量取決于我們想要進(jìn)行的分析類型以及數(shù)據(jù)的收集頻率。例如,如果我們想要分析數(shù)據(jù)的趨勢,我們需要至少有十二個(gè)覆蓋相當(dāng)長時(shí)間范圍的數(shù)據(jù)點(diǎn)。如果我們想要分析數(shù)據(jù)的季節(jié)性,我們需要至少有一個(gè)完整的觀測周期,涵蓋所有可能的季節(jié)。如果我們想要分析數(shù)據(jù)噪聲,我們需要至少有二十個(gè)足夠變化的數(shù)據(jù)點(diǎn)。
第二個(gè)要求是擁有捕捉時(shí)間變化的數(shù)據(jù),即反映變量隨時(shí)間變化的變動(dòng)。這意味著數(shù)據(jù)應(yīng)該在規(guī)律且一致的時(shí)間間隔內(nèi)收集,不跳過或重復(fù)某些觀測值。此外,數(shù)據(jù)必須是時(shí)間對齊的,即每個(gè)觀測值必須對應(yīng)于變量被測量的時(shí)間。這暗示著數(shù)據(jù)必須轉(zhuǎn)換為適合時(shí)間序列分析的格式,例如日期時(shí)間格式。
第三個(gè)要求是擁有滿足時(shí)間序列主要組件(即趨勢、季節(jié)性和噪聲)分析的最低要求的數(shù)據(jù)。這些要求根據(jù)我們想要用于分析的模型而有所不同。例如,如果我們想要使用線性模型來分析趨勢,我們需要擁有在變量和時(shí)間之間具有線性關(guān)系的數(shù)據(jù)。如果我們想要使用指數(shù)模型來分析趨勢,我們需要擁有在變量和時(shí)間之間具有指數(shù)關(guān)系的數(shù)據(jù)。如果我們想要使用ARIMA模型來分析季節(jié)性和噪聲,我們需要擁有穩(wěn)定或可微分的數(shù)據(jù)。
時(shí)間序列分析中的差分
如我們所見,時(shí)間序列分析中的一個(gè)主要挑戰(zhàn)是數(shù)據(jù)中存在非穩(wěn)定性,即數(shù)據(jù)的統(tǒng)計(jì)屬性(如均值和方差)隨時(shí)間變化。這使得應(yīng)用傳統(tǒng)的統(tǒng)計(jì)方法變得困難,因?yàn)檫@些方法假設(shè)數(shù)據(jù)是穩(wěn)定的。為了使用這些方法,我們必須首先轉(zhuǎn)換數(shù)據(jù),使其變得穩(wěn)定,或至少近似穩(wěn)定。進(jìn)行這種轉(zhuǎn)換的最常見技術(shù)之一是差分。
差分包括從時(shí)間序列中的每個(gè)值中減去前一個(gè)值,從而得到一個(gè)代表數(shù)據(jù)隨時(shí)間變化的新的時(shí)序。例如,如果我們有一個(gè)時(shí)間序列 {x1, x2, x3, …},它的一階差分是 {x2 - x1, x3 - x2, …}。差分可以重復(fù)多次,從而實(shí)現(xiàn)二階差分、三階差分等。差分的目的是從時(shí)間序列中移除趨勢和季節(jié)性成分,這些是非穩(wěn)定性的主要原因。實(shí)際上,如果數(shù)據(jù)具有趨勢或季節(jié)性,其值將與前一個(gè)或后一個(gè)值相關(guān)。減去這些值可以減少或消除這種相關(guān)性。
例如,我們可以看到一個(gè)具有上升趨勢和年度季節(jié)性的時(shí)間序列。其一階差分去除了趨勢,但沒有去除季節(jié)性。其二階差分去除了趨勢和季節(jié)性。
差分是最廣泛使用的時(shí)間序列分析和異常檢測模型之一——ARIMA模型的基礎(chǔ)。
ARIMA模型介紹
ARIMA模型是時(shí)間序列分析和異常檢測中廣泛使用的模型之一。ARIMA代表自回歸差分移動(dòng)平均模型(Autoregressive Integrated Moving Average)。這個(gè)模型結(jié)合了三個(gè)主要組成部分:
自回歸(AR)部分,它建模時(shí)間序列值與之前值之間的相關(guān)性。例如,如果數(shù)據(jù)是周期性的,時(shí)間序列值將受到過去值的影響。
差分(I)部分,它通過使時(shí)間序列差分來建模,使其變得穩(wěn)定。例如,如果數(shù)據(jù)具有趨勢或季節(jié)性,差分將從時(shí)間序列中移除這些成分。
移動(dòng)平均(MA)部分,它建模時(shí)間序列誤差與之前誤差之間的相關(guān)性。例如,如果數(shù)據(jù)有噪聲,時(shí)間序列誤差將受到過去誤差的影響。
ARIMA模型有三個(gè)主要參數(shù):p、d和q。p參數(shù)表示模型中使用的自回歸項(xiàng)的數(shù)量。d參數(shù)表示為了使時(shí)間序列穩(wěn)定而必須對時(shí)間序列進(jìn)行差分的次數(shù)。q參數(shù)表示模型中使用的移動(dòng)平均項(xiàng)的數(shù)量。例如,ARIMA(1,1,1)模型使用一個(gè)自回歸項(xiàng)、一個(gè)差分和一個(gè)移動(dòng)平均項(xiàng)。
ARIMA模型可以用來描述、預(yù)測和檢測時(shí)間序列中的異常。為此,我們需要遵循幾個(gè)步驟:
首先,我們需要檢查時(shí)間序列是否穩(wěn)定。我們可以使用統(tǒng)計(jì)測試,如增強(qiáng)的Dickey-Fuller測試,來檢查時(shí)間序列的均值和方差是否隨時(shí)間恒定。
其次,我們需要對時(shí)間序列進(jìn)行差分,直到它變得穩(wěn)定。我們可以使用圖表,如自相關(guān)函數(shù)圖和偏自相關(guān)函數(shù)圖,來確定所需的差分次數(shù)。
第三,我們需要使用優(yōu)化方法,如最大似然法,來估計(jì)ARIMA模型的參數(shù)。我們可以使用模型選擇標(biāo)準(zhǔn),如赤池信息準(zhǔn)則或貝葉斯信息準(zhǔn)則,來選擇p、d和q參數(shù)的最優(yōu)值。
第四,我們需要使用驗(yàn)證方法,如Ljung-Box測試或Jarque-Bera測試,來驗(yàn)證ARIMA模型。我們可以使用圖表,如殘差圖或預(yù)測圖,來檢查模型是否與數(shù)據(jù)擬合良好,以及數(shù)據(jù)中是否存在任何異常。
第五,我們需要使用ARIMA模型來描述時(shí)間序列的主要特征,預(yù)測未來的時(shí)間序列值,并檢測時(shí)間序列中的異常。我們可以使用準(zhǔn)確性度量,如均方誤差或平均絕對誤差,來評估預(yù)測和異常的質(zhì)量。
時(shí)間序列異常檢測
在估計(jì)和驗(yàn)證我們的時(shí)間序列的ARIMA模型后,我們可以使用它來檢測數(shù)據(jù)中的異常。異常是與數(shù)據(jù)的正常運(yùn)行趨勢顯著偏離的值或事件。為了檢測異常,我們需要將觀察到的時(shí)間序列值與ARIMA模型預(yù)測的值進(jìn)行比較。如果兩個(gè)值之間的差異大于某個(gè)閾值,我們可以將觀察到的值視為異常。
定義異常的閾值取決于多個(gè)因素,如置信水平、誤差分布、數(shù)據(jù)的頻繁程度等。通常,我們可以使用置信區(qū)間的概念來確定閾值。置信區(qū)間是一個(gè)以一定概率包含預(yù)測值的區(qū)間。例如,95%的置信區(qū)間意味著預(yù)測值在該范圍內(nèi)的概率為95%。如果觀察到的值在置信區(qū)間之外,我們可以將其視為異常。
當(dāng)我們在時(shí)間序列中檢測到異常時(shí),我們還必須嘗試?yán)斫馑鼈兊脑蚝秃x。一些異??赡苁怯捎跍y量、傳輸或數(shù)據(jù)處理錯(cuò)誤造成的。這些異常通常被稱為噪聲,可以被忽略或糾正。其他異常可能是由于結(jié)構(gòu)性變化、欺詐活動(dòng)、特殊事件或其他影響數(shù)據(jù)的因素造成的。這些異常通常被稱為信號,檢測和分析它們可能很重要。
為了理解異常的原因和含義,我們需要使用我們對數(shù)據(jù)領(lǐng)域的知識,即數(shù)據(jù)生成的背景和變量的含義。此外,我們需要使用其他信息來源,如其他相關(guān)時(shí)間序列、歷史數(shù)據(jù)、新聞、報(bào)告等。這有助于我們解釋異常檢測結(jié)果并確定可能采取的行動(dòng)。
在本文中,我們已經(jīng)看到了如何使用ARIMA模型進(jìn)行時(shí)間序列分析和異常檢測。
結(jié)論
在本文中,我們已經(jīng)看到了如何使用ARIMA模型進(jìn)行時(shí)間序列分析和異常檢測。我們已經(jīng)了解了什么是時(shí)間序列,它的組成部分是什么,它與其他類型的數(shù)據(jù)有何不同,如何在時(shí)間序列中檢測異常,以及進(jìn)行這些操作的最常見技術(shù)。我們已經(jīng)看到了如何驗(yàn)證數(shù)據(jù)的平穩(wěn)性,如何對時(shí)間序列進(jìn)行差分,如何估計(jì)和驗(yàn)證ARIMA模型,如何使用ARIMA模型來描述、預(yù)測和檢測時(shí)間序列中的異常,以及如何解釋異常檢測結(jié)果。
時(shí)間序列分析和異常檢測是研究隨時(shí)間變化的數(shù)據(jù)(如銷售、交通、氣候等)的非常有用的強(qiáng)大技術(shù)。這些技術(shù)允許我們分析過去,理解現(xiàn)在,并預(yù)測未來。此外,這些技術(shù)幫助我們發(fā)現(xiàn)數(shù)據(jù)中隱藏的模式和趨勢,這可以用來改進(jìn)決策和策略。最后,這些技術(shù)幫助我們識別數(shù)據(jù)中的隱藏問題或機(jī)會(huì),這可能是由數(shù)據(jù)中的異常引起的。
審核編輯:黃飛
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7257瀏覽量
91942 -
時(shí)間序列
+關(guān)注
關(guān)注
0文章
31瀏覽量
10579 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1473瀏覽量
35053
原文標(biāo)題:時(shí)間序列分析的異常檢測綜述
文章出處:【微信號:可靠性雜壇,微信公眾號:可靠性雜壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】全書概覽與時(shí)間序列概述
【《時(shí)間序列與機(jī)器學(xué)習(xí)》閱讀體驗(yàn)】+ 了解時(shí)間序列
時(shí)間序列小波分析的操作步驟及實(shí)例分析

多變量水質(zhì)參數(shù)時(shí)間異常事件檢測算法

基于導(dǎo)數(shù)序列的時(shí)間序列同構(gòu)關(guān)系

寶信利用Spark Analytics Zoo對基于LSTM的時(shí)間序列異常檢測的探索
如何使用頻繁模式發(fā)現(xiàn)進(jìn)行時(shí)間序列異常檢測詳細(xì)方法概述

基于時(shí)間卷積網(wǎng)絡(luò)的通用日志序列異常檢測框架

一種多維時(shí)間序列汽車駕駛異常點(diǎn)檢測模型
時(shí)間序列分析的定義
一種新的無監(jiān)督時(shí)間序列異常檢測方法
采用基于時(shí)間序列的日志異常檢測算法應(yīng)用
智能電網(wǎng)時(shí)間序列異常檢測:a survey

評論