时间序列分析学习笔记
1、點序列
模式發(fā)生時間的一個有序序列,se=<t1,t2,t3,t4,t5>
2、周期點序列
<0,5,10,15,20,27,30,35,40>是一個周期為5、時間容忍度為2的周期點序列。
3、部分周期模式
<0,5,10,15,27,30,35,40>可以分為<0,5,10,15>、<15,27>和<27,30,35,40>三個子序列,其中<0,5,10,15>和<27,30,35,40>都是周期為5,時間容忍度為2的周期點序列,因此<0,5,10,15,27,30,35,40>是部分周期點序列,其中[0,15]和[27,40]是開時間段,而[15,27]是關(guān)時間段。
?4、時間間隔周期點序列(基于方差的模式)
定義4.1 給定一個時間點序列?se=<t1,t2,t3,t4,t5>,其對應(yīng)的時間間隔序列為<(t2-t1),(t3-t2),(t4-t3),(t5-t4)>,其中每個元素為點序列中相鄰兩個時間點的時間間隔,如果該時間間隔序列的方差小于給定閾值(例如1.2,這個閾值的選擇下面說),則稱該序列是 周期為p的一個周期點序列,其中p為時間間隔的平均值,即
同時模式e稱為周期為p的周期模式。
如果用泊松過程來模擬一個事件的時間點序列的產(chǎn)生過程,事件發(fā)生概率均值為的泊松過程的時間間隔是服從指數(shù)分布的,其方差為,其中是兩個事件時間間隔的均值。
對于有N個時間點的時間序列來說,如果起始時間和最后一個時間點的時間差為T,稱[0,T]為該時間點序列的時間窗,平均時間間隔為T/N,即=,因此方差為,計作。
從上面的公式可以看出,方差的大小與時間窗和窗口內(nèi)的時間點數(shù)目有關(guān),在給定時間窗的前提下,序列內(nèi)的時間點越多,方差越小;因此,衡量一個序列是否具有周期性(或者說周期性的強度),需要有一個參照,我們可以選擇相同時間窗下隨機事件時間序列的方差來做對比,以此定義上文中的方差閾值為。
重新定義上面的4.1:
定義4.5?給定一個時間點序列?se=<t1,t2,t3,t4,t5>,其對應(yīng)的時間間隔序列為<(t2-t1),(t3-t2),(t4-t3),(t5-t4)>,如果該時間間隔序列的方差與相同時間窗相同長度的隨機事件時間間隔序列的方差之比小于給定方差比閾值,則稱該序列是周期為p的一個周期點序列,其中p為時間間隔的平均值,即
同時模式e稱為周期為p的周期模式。
?5、基于方差的周期模式的類型
上面定義4.5中是基本的周期模式,除此之外還有:
(1)部分周期模式:點序列分割為不重疊的子序列,部分子序列是滿足給定方差比閾值的周期點序列(簡稱為周期子序列),且周期均為p,其余子序列不滿足方差比閾值,且至少存在這樣的一個子序列,則稱該序列是周期為p的部分周期點序列,同時模式e稱為周期為p的部分周期模式。
根據(jù)應(yīng)用背景的不同,部分周期模式可以加上另外的約束條件,例如屬于周期點序列的子序列的個數(shù)占子序列總個數(shù)的比例大于給定閾值,或者關(guān)時間段占總時間窗的比例小于給定閾值等。
(2)周期變化的周期模式:如果該點序列可以分割為不重疊的子序列,每個子序列都是滿足給定方差比閾值的周期點序列,但周期不完全相同,即至少存在兩個不同的周期,則稱該序列為周期變化的部分周期點序列,同時模式e稱為周期變化的部分周期模式。
(3)周期變化的部分周期模式:如果該點序列可以分割為多個不重疊的子序列,其中至少存在一個子序列不滿足方差比閾值,其余每個子序列都滿足給定方差比閾值,但周期不完全相同,即至少存在兩個不同的周期,則稱該序列為周期變化的部分周期點序列,同時模式e稱為周期變化的部分周期模式。
周期變化的意義
周期發(fā)生變化通常也隱含這事件發(fā)生的環(huán)境因素發(fā)生變化,因此這種模式的發(fā)現(xiàn)對于推薦系統(tǒng)識別上下文的改變也是有幫助的。另外,周期的增加或減少也隱含著其他的信息,例如,如果一個用戶對某購物網(wǎng)站的訪問周期變長,那預(yù)示著該用戶可能轉(zhuǎn)向其他網(wǎng)站購物,這對于防止用戶的流失也具有潛在價值。
?6、周期模式的發(fā)現(xiàn)方法
解決的問題是,給定一個模式及其點序列的時間間隔序列,如何判斷該模式是否是周期模式、屬于何種周期模式以及周期是多少的方法。
周期模式發(fā)現(xiàn)兩種方法:
(1)貪婪分割法:高效,但有可能漏掉某些周期模式;
(2)準遍歷法(之所以叫“準”,是因為并不是完全遍歷,對于一個滿足條件的子序列的所有子序列將不再需要進一步檢查):更全面地找出所有周期模式,但效率相對較低。
實現(xiàn)方式:頻繁模式或者頻繁事件組(frequent episude)的發(fā)現(xiàn)方法來實現(xiàn)。
(Aggarwal,et al.,2000;Agrawal and Srikant,1994;Bayardo,1998;Han,et al.,2004;Mannila,et al.,1997)
算法的輸入輸出如下:
INPUT:
(1)模式e的時間間隔序列;
(2)方差比閾值;
(3)最小序列長度閾值;
? (4) 最小開時間段比例;
(5)最大周期差異比例;
OUTPUT:
判斷模式e屬于哪種周期模式
算法都分為2步實現(xiàn):
第一步是找出子序列:
分割法用分割的方式找不重疊的子序列;準遍歷法用近似遍歷給定時間間隔序列的的方法尋找所有可能的子序列;
這一步需要用到的參數(shù)是:
“方差比閾值”:用來決定是否具有周期性;
“最小序列長度閾值?”:用來決定是否需要繼續(xù)分割或者決定遍歷的步長;
第二步是判斷所屬的周期類型
這一步兩種方法都基本一樣,主要通過幾個參數(shù)來判斷。
“最大周期差異比例” :用來決定是周期變化還是等周期的模式;
“?最小開時間段比例” :用來決定是否是部分周期模式;
?7、預(yù)測事件的發(fā)生
通過判斷下一個發(fā)生的時間間隔的取值范圍來預(yù)測該事件是否仍保持周期性。
設(shè)?
?
,,
計算下一個時間間隔:
?
預(yù)測的準確度:
可以將序列的前五分之四作為已知序列,剩下的作為測試部分,如果已知序列滿足周期模式的條件,則根據(jù)定理預(yù)測其下一個時間間隔的取值范圍;如果測試部分的時間間隔落入這個取值范圍,則視為預(yù)測準確;否則為錯誤。(要注意排除準確度跟序列長度本身的關(guān)系)
其他的預(yù)測方法:隱馬爾可夫模型,進行下一個時間間隔以及狀態(tài)的預(yù)測,進一步提高預(yù)測的準確度。
應(yīng)用:
用于預(yù)測事件的下一個發(fā)生時間,也便于在事件沒有如期發(fā)生時讓商家觀察到客戶行為的變化,從而采取適當?shù)拇胧?#xff0c;例如挽留客戶的行為。
?8、時間序列分析/預(yù)測的算法
感覺更偏向于研究數(shù)據(jù)的統(tǒng)計分布、季節(jié)性時間周期什么的,這樣的數(shù)據(jù)結(jié)構(gòu)是會分 時序列、數(shù)值列 來輸入,注重的是分布的規(guī)律,根據(jù)分布的規(guī)律來預(yù)測;
holt winters
arima
garch
decompose
markov chain predict
9、注意的問題
個人用戶的數(shù)據(jù)的周期或者發(fā)展趨勢很有可能會受到總體數(shù)據(jù)趨勢發(fā)展變化的影響,因此我們在分析個人的周期性行為或者預(yù)測發(fā)展趨勢的時候,其實不妨先分析一下大盤的整體趨勢是怎么樣的。因為如果用戶根本不是很個性化,那么整體的趨勢可能更有說服力。
?
?
?
?參考書籍:《社會計算:用戶在線行為分析與挖掘》劉紅巖著
python pandas
http://www.cnblogs.com/foley/p/5582358.html
轉(zhuǎn)載于:https://www.cnblogs.com/zichun-zeng/p/7732395.html
總結(jié)
以上是生活随笔為你收集整理的时间序列分析学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决度盘下载慢的问题(用百度自家的产品,
- 下一篇: AxMath安装和使用