① (三)時間序列分析的基本方法
1.模型的選擇和建模基本步驟
(1)建模基本步驟
1)用觀測、調查、取樣,取得時間序列動態數據。
2)作相關圖,研究變化的趨勢和周期,並能發現跳點和拐點。拐點則是指時間序列從上升趨勢突然變為下降趨勢的點,如果存在拐點,則在建模時必須用不同的模型去分段擬合該時間序列。
3)辨識合適的隨機模型,進行曲線擬合。
(2)模型的選擇
當利用過去觀測值的加權平均來預測未來的觀測值時,賦予離得越近的觀測值以更多的權,而「老」觀測值的權數按指數速度遞減,稱為指數平滑(exponential smoothing),它能用於純粹時間序列的情況。
對於短的或簡單的時間序列,可用趨勢模型和季節模型加上誤差來進行擬合。對於平穩時間序列,可用自回歸(AR)模型、移動平均(MA)模型或其組合的自回歸移動平均(ARMA)模型等來擬合。
一個純粹的AR模型意味著變數的一個觀測值由其以前的p個觀測值的線性組合加上隨機誤差項而成,就像自己對自己回歸一樣,所以稱為自回歸模型。
MA模型意味著變數的一個觀測值由目前的和先前的n個隨機誤差的線性的組合。
當觀測值多於50個時一般採用ARMA模型。
對於非平穩時間序列,則要先將序列進行差分(Difference,即每一觀測值減去其前一觀測值或周期值)運算,化為平穩時間序列後再用適當模型去擬合。這種經差分法整合後的ARMA模型稱為整合自回歸移動平均模型(Autoregressive Integrated Moving Average),簡稱ARIMA模型(張文彤,2002;薛薇,2005;G.E.P.Box et al.,1994)。
ARIMA模型要求時間序列滿足平穩性和可逆性的條件,即序列均值不隨著時間增加或減少,序列的方差不隨時間變化。但由於我們所關注的地層元素含量變化為有趨勢和周期成分的時間序列,都不是平穩的,這就需要對其進行差分來消除這些使序列不平穩的成分。所以我們選擇更強有力的ARIMA模型。
2.平穩性和周期性研究
有些數學模型要檢驗周期性變化是否為平穩性過程,即其統計特性不隨時間而變化,我們可根據序列圖、自相關函數圖、偏自相關函數圖和譜密度圖等對序列的平穩性和周期性進行識別。當序列圖上表現有明顯分段特徵時可採用分段計演算法,若分段求得的每段頻譜圖基本一致或相似,則認為過程是平穩的,否則是非平穩的。
自相關函數ACF(Autocorrelations function)是描述序列當前觀測值與序列前面的觀測值之間簡單和常規的相關系數;而偏自相關函數PACF(Partial autocorrelations function)是在控制序列其他的影響後,測度序列當前值與某一先前值之間的相關程度。
平穩過程的自相關系數和偏自相關系數只是時間間隔的函數,與時間起點無關,都會以某種方式衰減趨近於0。
當ACF維持許多期的正相關,且ACF的值通常是很緩慢地遞減到0,則序列為非平穩型。
序列的自相關-偏自相關函數具有對稱性,即反映了周期性變化特徵。
3.譜分析
確定性周期函數X(t)(設周期為T)在一定條件下通過傅里葉(Fourier)級數展開可表示成一些不同頻率的正弦和餘弦函數之和(陳磊等,2001),這里假設為有限項,即:
洞庭湖區第四紀環境地球化學
其中,頻率fk=k/T,k=1,2,…,N。
上式表明:如果拋開相位的差別,這類函數的周期變化完全取決於各餘弦函數分量的頻率和振幅。換句話說,我們可以用下面的函數來表示X(t)的波動特徵:
洞庭湖區第四紀環境地球化學
函數p(f)和函數X(t)表達了同樣的周期波動,兩者實際上是等價的,只不過是從頻域和時域兩個不同角度來描述而已。稱p(f)為X(t)的功率譜密度函數,簡稱譜密度。它不僅反映了X(t)中各固有分量的周期情況,還同時顯示出這些周期分量在整體X(t)中各自的重要性。具體說,在X(t)中各周期分量的對應頻率處,譜密度函數圖應出現較明顯的凸起,分量的振幅越大,峰值越高,對X(t)的整體影響也越大。
事實上,無論問題本身是否具有周期性或不確定性(如連續型隨機過程或時間序列)都可以採用類似的方法在頻域上加以描述,只是表示的形式和意義比上面要復雜得多。時間序列的譜分析方法就是要通過估計時間序列的譜密度函數,找出序列中的各主要周期分量,通過對各分量的分析達到對時間序列主要周期波動特徵的把握。
根據譜分析理論,對一個平穩時間序列{Xt},如果其自協方差函數R(k)滿足
如何從實際問題所給定的時間序列 {Xt,t=1,2,…,n} 中估計出其譜密度或標准譜密度函數是譜分析要解決的主要問題。本書採用圖基-漢寧(Tukey-Hanning)窗譜估計法。
② 16種常用的數據分析方法-時間序列分析
時間序列(time series)是系統中某一變數的觀測值按時間順序(時間間隔相同)排列成一個數值序列,展示研究對象在一定時期內的變動過程,從中尋找和分析事物的變化特徵、發展趨勢和規律。它是系統中某一變數受其它各種因素影響的總結果。
研究時間序列主要目的可以進行預測,根據已有的時間序列數據預測未來的變化。時間序列預測關鍵:確定已有的時間序列的變化模式,並假定這種模式會延續到未來。
時間序列的基本特點
假設事物發展趨勢會延伸到未來
預測所依據的數據具有不規則性
不考慮事物發展之間的因果關系
時間序列數據用於描述現象隨時間發展變化的特徵。
時間序列考慮因素
時間序列分析就其發展歷史階段和所使用的統計分析方法看分為傳統的時間序列分析和現代時間序列分析,根據觀察時間的不同,時間序列中的時間可以是可以是年份、季度、月份或其他任何時間形式。
時間序列分析時的主要考慮的因素是:
l長期趨勢(Long-term trend)
時間序列可能相當穩定或隨時間呈現某種趨勢。
時間序列趨勢一般為線性的(linear),二次方程式的 (quadratic)或指數函數(exponential function)。
l季節性變動(Seasonal variation)
按時間變動,呈現重復性行為的序列。
季節性變動通常和日期或氣候有關。
季節性變動通常和年周期有關。
l周期性變動(Cyclical variation)
相對於季節性變動,時間序列可能經歷「周期性變動」。
周期性變動通常是因為經濟變動。
l隨機影響(Random effects)
除此之外,還有偶然性因素對時間序列產生影響,致使時間序列呈現出某種隨機波動。時間序列除去趨勢、周期性和季節性後的偶然性波動,稱為隨機性(random),也稱不規則波動(irregular variations)。
時間序列的主要成分
時間序列的成分可分為4種:
l趨勢(T)、
l季節性或季節變動(S)、
l周期性或循環波動(C)、
l隨機性或不規則波動(I)。
傳統時間序列分析的一項主要內容就是把這些成分從時間序列中分離出來,並將它們之間的關系用一定的數學關系式予以表達,而後分別進行分析。
時間序列建模基本步驟
1)用觀測、調查、統計、抽樣等方法取得被觀測系統時間序列動態數據。
2)根據動態數據作相關圖,進行相關分析,求自相關函數。
相關圖能顯示出變化的趨勢和周期,並能發現跳點和拐點。
跳點是指與其他數據不一致的觀測值。如果跳點是正確的觀測值,在建模時應考慮進去,如果是反常現象,則應把跳點調整到期望值。
拐點則是指時間序列從上升趨勢突然變為下降趨勢的點。如果存在拐點,則在建模時必須用不同的模型去分段擬合該時間序列,例如採用門限回歸模型。
3)辨識合適的隨機模型,進行曲線擬合,即用通用隨機模型去擬合時間序列的觀測數據。
對於短的或簡單的時間序列,可用趨勢模型和季節模型加上誤差來進行擬合。
對於平穩時間序列,可用通用ARMA模型(自回歸滑動平均模型)及其特殊情況的自回歸模型、滑動平均模型或組合-ARMA模型等來進行擬合。
當觀測值多於50個時一般都採用ARMA模型。對於非平穩時間序列則要先將觀測到的時間序列進行差分運算,化為平穩時間序列,再用適當模型去擬合這個差分序列。
spss時間序列分析過程
第一步:定義日期標示量:
打開數據文件,單擊"數據",選擇"定義日期和時間",彈出"定義日期"對話框,
數據中的起始時間就是數據文件裡面的單元格第一個時間,我的第一個是1997年8月,每行表示的是月度銷售量,因此,需要從"定義日期"對話框的左側"個案是"框中選擇"年,月",在左側輸入『1997』,月框中輸入『8』,表示第一個個案的起始月是1997年8月,
最後點擊確認,這樣spss數據文件裡面就會生成3個新的變數
如下圖:
第二步:了解時間序列的變化趨勢
了解時間序列的變化趨勢做一個序列表就可以了,單擊"分析",裡面選擇"時間序列預測,選擇"序列圖"對話框,然後把'平均值'移到"變數"框裡面,『DATE_』移到"時間軸標簽"框中,單擊"確定"。結果如圖
根據序列圖的分析知道,序列的波動隨著季節的波動越來越大,所以我們選擇乘法模型;
第三步:分析
單擊「分析」,選擇時間序列預測,然後選擇「季節性分解」,彈出「季節性分解」對話框,確認無誤之後點擊確定,如圖:
多了四個變數:
lERR表示誤差分析;
lSAS表示季節因素校正後序列;
lSAF表示季節因子;
lSTC表示長期趨勢和循環變動序列。
我們可以把新出現的四個變數、平均值和DATE_做序列圖。先把ERR、SAS、STC和平均值和DATE_做個序列圖,效果如下:
再單獨做個SAT和DATE_的時間序列圖
第四步:預測
1、 單擊「分析」,選擇「時間序列預測」,然後選擇「創建傳統模型」,之後就會彈出「時間序列建模」對話框。
2、 將「平均值」移至「因變數」框中,然後確定中間的「方法」,在下拉列表中選擇「專家建模器」項,單擊右側的「條件」按鈕,彈出「時間序列建模器:專家建模器條件」對話框。
3、 在「時間序列建模器:專家建模器條件」對話框的「模型」選項卡中,在「模型類型」框中選擇「所有模型」項,並勾選「專家建模器考慮季節性模型」復選框,設置完,點「繼續」按鈕
4、 在「時間序列建模器」對話框中,切換至「保存」選項卡中,勾選「預測值」復選框,單擊「導出模型條件」框中「XML文件」後面的「瀏覽」按鈕,然後設置導出的模型文件和保存路徑,然後單擊「確定」按鈕就可以了。
做完上面的步驟之後,在原始數據上面就又會多一列預測值出現。如圖:
之前保存了預測的模型,我們現在就利用那個模型進行預測數據。
1、 單擊「分析」,選擇「時間序列預測」,然後選擇「應用傳統模型」,彈出「應用模型序列」對話框。具體的操作如下圖:
最後一步切換至「保存」界面,勾選「預測值」之後單擊確定就可以了。
從預測值直接看看不出來,可以把預測的數據和原始數據放到一起看下,也是直接做序列圖就可以。
這樣就完成了一次時間序列的模型,具體的預測數據可以看原始數據上面的出現的新的一列數據。
- End -
③ 時間序列的種類
一、絕對數時間序列
1、時期序列:由時期總量指標排列而成的時間序列 。
時期序列的主要特點有:
1)、序列中的指標數值具有可加性。
2)、序列中每個指標數值的大小與其所反映的時期長短有直接聯系。
3)、序列中每個指標數值通常是通過連續不斷登記匯總取得的。
2、時點序列:由時點總量指標排列而成的時間序列
時點序列的主要特點有:
1)、序列中的指標數值不具可加性。
2)、序列中每個指標數值的大小與其間隔時間的長短沒有直接聯系。
3)、序列中每個指標數值通常是通過定期的一次登記取得的。
二、相對數時間序列
把一系列同種相對數指標按時間先後順序排列而成的時間序列叫做相對數時間序列。
三、平均數時間序列
平均數時間序列是指由一系列同類平均指標按時間先後順序排列的時間序列。
(3)時間序列分析方法的主要流派及發展歷程擴展閱讀
時間序列數據變動存在著規律性與不規律性
時間序列中的每個觀察值大小,是影響變化的各種不同因素在同一時刻發生作用的綜合結果。從這些影響因素發生作用的大小和方向變化的時間特性來看,這些因素造成的時間序列數據的變動分為四種類型。
1、趨勢性:某個變數隨著時間進展或自變數變化,呈現一種比較緩慢而長期的持續上升、下降、停留的同性質變動趨向,但變動幅度可能不相等。
2、周期性:某因素由於外部影響隨著自然季節的交替出現高峰與低谷的規律。
3、隨機性:個別為隨機變動,整體呈統計規律。
4、綜合性:實際變化情況是幾種變動的疊加或組合。預測時設法過濾除去不規則變動,突出反映趨勢性和周期性變動。
④ 時間序列預測方法有哪些分類,分別適合使用的情況是
時間序列預測方法根據對資料分析方法的不同,可分為:簡單序時平均數法、加權序時平均數法、移動平均法、加權移動平均法、趨勢預測法、指數平滑法、季節性趨勢預測法、市場壽命周期預測法等。
1、簡單序時平均數法只能適用於事物變化不大的趨勢預測。如果事物呈現某種上升或下降的趨勢,就不宜採用此法。
2、加權序時平均數法就是把各個時期的歷史數據按近期和遠期影響程度進行加權,求出平均值,作為下期預測值。
3、簡單移動平均法適用於近期期預測。當產品需求既不快速增長也不快速下降,且不存在季節性因素時,移動平均法能有效地消除預測中的隨機波動。
4、加權移動平均法即將簡單移動平均數進行加權計算。在確定權數時,近期觀察值的權數應該大些,遠期觀察值的權數應該小些。
5、指數平滑法即根用於中短期經濟發展趨勢預測,所有預測方法中,指數平滑是用得最多的一種。
6、季節趨勢預測法根據經濟事物每年重復出現的周期性季節變動指數,預測其季節性變動趨勢。
7、市場壽命周期預測法,適用於對耐用消費品的預測。這種方法簡單、直觀、易於掌握。
(4)時間序列分析方法的主要流派及發展歷程擴展閱讀:
時間序列預測法的特徵
1、時間序列分析法是根據過去的變化趨勢預測未來的發展,前提是假定事物的過去延續到未來。運用過去的歷史數據,通過統計分析,進一步推測未來的發展趨勢。不會發生突然的跳躍變化,是以相對小的步伐前進;過去和當前的現象,可能表明現在和將來活動的發展變化趨向。
2.時間序列數據變動存在著規律性與不規律性
時間序列中的每個觀察值大小,是影響變化的各種不同因素在同一時刻發生作用的綜合結果。從這些影響因素發生作用的大小和方向變化的時間特性來看,這些因素造成的時間序列數據的變動分為四種類型:趨勢性、周期性、隨機性、綜合性。
⑤ 應用時間序列分析有哪幾種方法
時間序列分析常用的方法:趨勢擬合法和平滑法。
1、趨勢擬合法就是把時間作為自變數,相應的序列觀察值作為因變數,建立序列值隨時間變化的回歸模型的方法。包括線性擬合和非線性擬合。
線性擬合的使用場合為長期趨勢呈現出線形特徵的場合。參數估計方法為最小二乘估計。
非線性擬合的使用場合為長期趨勢呈現出非線形特徵的場合。其參數估計的思想是把能轉換成線性模型的都轉換成線性模型,用線性最小二乘法進行參數估計。實在不能轉換成線性的,就用迭代法進行參數估計。
2、平滑法是進行趨勢分析和預測時常用的一種方法。它是利用修勻技術,削弱短期隨機波動對序列的影響,使序列平滑化,從而顯示出長期趨勢變化的規律 。
(5)時間序列分析方法的主要流派及發展歷程擴展閱讀
時間序列分析的主要用途:
1、系統描述
根據對系統進行觀測得到的時間序列數據,用曲線擬合方法對系統進行客觀的描述。
2、系統分析
當觀測值取自兩個以上變數時,可用一個時間序列中的變化去說明另一個時間序列中的變化,從而深入了解給定時間序列產生的機理。
3、預測未來
一般用ARMA模型擬合時間序列,預測該時間序列未來值。
4、決策和控制
根據時間序列模型可調整輸入變數使系統發展過程保持在目標值上,即預測到過程要偏離目標時便可進行必要的控制。
⑥ 時間序列分析法是什麼
時間序列分析法是一種歷史資料延伸預測,也稱歷史引申預測法。它是對以時間數列所能反映的社會經濟現象的發展過程和規律性進行引申外推、預測其發展趨勢的方法。
時間序列,也叫時間數列、歷史復數或動態數列。它是將某種統計指標的數值,按時間先後順序排列所形成的數列。時間序列預測法就是通過編制和分析時間序列,根據時間序列所反映出來的發展過程、方向和趨勢進行類推或延伸,藉以預測下一段時間或以後若干年內可能達到的水平。其內容包括:收集與整理某種社會現象的歷史資料;對這些資料進行檢查鑒別,排成數列;分析時間數列,從中尋找該社會現象隨時間變化而變化的規律,得出一定的模式;以此模式去預測該社會現象將來的情況。
⑦ 五種經典的時間序列類型
時間序列類型只有三種:
1、絕對數時間序列:由時期總量指標排列而成的時間序列。
2、相對數時間序列:把一系列同種相對數指標按時間先後順序排列而成的時間序列叫做相對數時間序列。
3、平均數時間序列:平均數時間序列是指由一系列同類平均指標按時間先後順序排列的時間序列。
時間序列的特徵:
1、時間序列分析法是根據過去的變化趨勢預測未來的發展,它的前提是假定事物的過去延續到未來。
2、時間序列數據變動存在著規律性與不規律性。
以上內容參考:網路-時間序列
⑧ 時間序列分析方法
時間序列是指一組在連續時間上測得的數據,其在數學上的定義是一組向量x(t), t=0,1,2,3,...,其中t表示數據所在的時間點,x(t)是一組按時間順序(測得)排列的隨機變數。包含單個變數的時間序列稱為單變數時間序列,而包含多個變數的時間序列則稱為多變數。
時間序列在很多方面多有涉及到,如天氣預報,每天每個小時的氣溫,股票走勢等等,在商業方面有諸多應用,如:
下面我們將通過一個航班數據來說明如何使用已有的工具來進行時間序列數據預測。常用來處理時間序列的包有三個:
對於基於AR、MA的方法一般需要數據預處理,因此本文分為三部分:
通過簡單的初步處理以及可視化可以幫助我們有效快速的了解數據的分布(以及時間序列的趨勢)。
觀察數據的頻率直方圖以及密度分布圖以洞察數據結構,從下圖可以看出:
使用 statsmodels 對該時間序列進行分解,以了解該時間序列數據的各個部分,每個部分都代表著一種模式類別。借用 statsmodels 序列分解我們可以看到數據的主要趨勢成分、季節成分和殘差成分,這與我們上面的推測相符合。
如果一個時間序列的均值和方差隨著時間變化保持穩定,則可以說這個時間序列是穩定的。
大多數時間序列模型都是在平穩序列的前提下進行建模的。造成這種情況的主要原因是序列可以有許多種(復雜的)非平穩的方式,而平穩性只有一種,更加的易於分析,易於建模。
在直覺上,如果一段時間序列在某一段時間序列內具有特定的行為,那麼將來很可能具有相同的行為。譬如已連續觀察一個星期都是六點出太陽,那麼可以推測明天也是六點出太陽,誤差非常小。
而且,與非平穩序列相比,平穩序列相關的理論更加成熟且易於實現。
一般可以通過以下幾種方式來檢驗序列的平穩性:
如果時間序列是平穩性的,那麼在ACF/PACF中觀測點數據與之前數據點的相關性會急劇下降。
下圖中的圓錐形陰影是置信區間,區間外的數據點說明其與觀測數據本身具有強烈的相關性,這種相關性並非來自於統計波動。
PACF在計算X(t)和X(t-h)的相關性的時候,挖空在(t-h,t)上所有數據點對X(t)的影響,反應的是X(t)和X(t-h)之間真實的相關性(直接相關性)。
從下圖可以看出,數據點的相關性並沒有急劇下降,因此該序列是非平穩的。
如果序列是平穩的,那麼其滑動均值/方差會隨著時間的變化保持穩定。
但是從下圖我們可以看到,隨著時間的推移,均值呈現明顯的上升趨勢,而方差也呈現出波動式上升的趨勢,因此該序列是非平穩的。
一般來講p值小於0.05我們便認為其是顯著性的,可以拒絕零假設。但是這里的p值為0.99明顯是非顯著性的,因此接受零假設,該序列是非平穩的。
從上面的平穩性檢驗我們可以知道該時間序列為非平穩序列。此外,通過上面1.3部分的序列分解我們也可以看到,該序列可分解為3部分:
我們可以使用數據轉換來對那些較大的數據施加更大的懲罰,如取對數、開平方根、立方根、差分等,以達到序列平穩的目的。
滑動平均後數據失去了其原來的特點(波動式上升),這樣損失的信息過多,肯定是無法作為後續模型的輸入的。
差分是常用的將非平穩序列轉換平穩序列的方法。ARIMA中的 'I' 便是指的差分,因此ARIMA是可以對非平穩序列進行處理的,其相當於先將非平穩序列通過差分轉換為平穩序列再來使用ARMA進行建模。
一般差分是用某時刻數值減去上一時刻數值來得到新序列。但這里有一點區別,我們是使用當前時刻數值來減去其對應時刻的滑動均值。
我們來看看剛剛差分的結果怎麼樣。
讓我們稍微總結下我們剛剛的步驟:
通過上面的3步我們成功的將一個非平穩序列轉換成了一個平穩序列。上面使用的是最簡單的滑動均值,下面我們試試指數滑動平均怎麼樣。
上面是最常用的指數滑動平均的定義,但是pandas實現的指數滑動平均好像與這個有一點區別,詳細區別還得去查pandas文檔。
指數滑動均值的效果看起來也很差。我們使用差分+指數滑動平均再來試試吧。
在上面我們通過 取log+(指數)滑動平均+差分 已經成功將非平穩序列轉換為了平穩序列。
下面我們看看,轉換後的平穩序列的各個成分是什麼樣的。不過這里我們使用的是最簡單的差分,當前時刻的值等於原始序列當前時刻的值減去原始序列中上一時刻的值,即: x'(t) = x(t) - x(t-1)。
看起來挺不錯,是個平穩序列的樣子。不過,還是檢驗一下吧。
可以看到,趨勢(Trend)部分已基本被去除,但是季節性(seasonal)部分還是很明顯,而ARIMA是無法對含有seasonal的序列進行建模分析的。
在一開始我們提到了3個包均可以對時間序列進行建模。
為了簡便,這里 pmdarima 和 statsmodels.tsa 直接使用最好的建模方法即SARIMA,該方法在ARIMA的基礎上添加了額外功能,可以擬合seasonal部分以及額外添加的數據。
在使用ARIMA(Autoregressive Integrated Moving Average)模型前,我們先簡單了解下這個模型。這個模型其實可以包括三部分,分別對應著三個參數(p, d, q):
因此ARIMA模型就是將AR和MA模型結合起來然後加上差分,克服了不能處理非平穩序列的問題。但是,需要注意的是,其仍然無法對seasonal進行擬合。
下面開始使用ARIMA來擬合數據。
(1) 先分訓練集和驗證集。需要注意的是這里使用的原始數據來進行建模而非轉換後的數據。
(2)ARIMA一階差分建模並預測
(3)對差分結果進行還原
先手動選擇幾組參數,然後參數搜索找到最佳值。需要注意的是,為了避免過擬合,這里的階數一般不太建議取太大。
可視化看看結果怎麼樣吧。
(6)最後,我們還能對擬合好的模型進行診斷看看結果怎麼樣。
我們主要關心的是確保模型的殘差(resial)部分互不相關,並且呈零均值正態分布。若季節性ARIMA(SARIMA)不滿足這些屬性,則表明它可以進一步改善。模型診斷根據下面的幾個方面來判斷殘差是否符合正態分布:
同樣的,為了方便,我們這里使用 pmdarima 中一個可以自動搜索最佳參數的方法 auto_arima 來進行建模。
一般來說,在實際生活和生產環節中,除了季節項,趨勢項,剩餘項之外,通常還有節假日的效應。所以,在prophet演算法裡面,作者同時考慮了以上四項,即:
上式中,
更多詳細Prophet演算法內容可以參考 Facebook 時間序列預測演算法 Prophet 的研究 。
Prophet演算法就是通過擬合這幾項,然後把它們累加起來得到時間序列的預測值。
Prophet提供了直觀且易於調整的參數:
Prophet對輸入數據有要求:
關於 Prophet 的使用例子可以參考 Prophet example notebooks
下面使用 Prophet 來進行處理數據。
參考:
Facebook 時間序列預測演算法 Prophet 的研究
Prophet example notebooks
auto_arima documentation for selecting best model
數據分析技術:時間序列分析的AR/MA/ARMA/ARIMA模型體系
https://github.com/advaitsave/Introction-to-Time-Series-forecasting-Python
時間序列分析
My First Time Series Comp (Added Prophet)
Prophet官方文檔: https://facebookincubator.github.io
⑨ 1.3 時間序列分析方法
早期的時序分析通常都是通過直觀的數據比較或繪圖觀測,尋找序列中蘊含的發展規律,這種分析方法就成為描述性時序分析。古埃及人發現尼羅河泛濫的規律就是依靠這種分析方法。而在天文、物理、海洋學等自然科學領域,這種簡單的描述性時序分析方法也常常使人們發現意想不到的規律。
比如根據《史記 貨殖列傳》記載,早在春秋戰國時期,范蠡和計然就提出我國農業生產具有「六歲穰、六歲旱,十二歲一大飢」的自然規律。《越絕書 計倪內經》則描述的更加詳細,「太陰三歲處金則穰,三歲處氺則毀,三歲處木則康,三歲處火則旱......天下六歲一穰,六歲一康,凡十二歲一飢」。
用現代漢語來表述就是「木星繞天空運行,運行三年,如果處於金位,則該年為大豐收年;如果處於水位,則該年為大災年;再運行三年,如果處於木位,則該年為小豐收年,如果處於火位,則該年為小災年,所以天下平均六年一個大豐收年,六年一個小豐收年,十二年為一個大飢荒」。這是2500多年前,我國對農業生成具有3年一個小波動,12年左右一個大周期的記錄,是一個典型的描述性時間序列分析。
描述性時序序列分析方法是人民在認識自然、改造自然的過程中發現的實用方法,對於很多自然現象,只要人們觀察時間足夠長,就能運描述性時序分析發現蘊含在時間里的自然規律,根據自然規律,做恰當的政策安排,就能有利於社會的發展和進步。
人們沒有採取任何復雜的模型或分析方法,僅僅是按照時間序列收集數據,描述和呈現序列的波動,就了解到小麥產量的周期波動特徵,產生該周期特徵的氣候原因以及周期波動對價格的影響。操作簡單,直觀有效是描述性時間序列分析方法的突出特點。它通常也是人們進行統計時序分析的第一步,通過圖示的方法直觀的反映出序列的波動特徵。
隨著研究領域的不斷拓廣,人們發現單純的描述性時序分析有很大的局限性,在金融、保險、法律、人口、心理學等社會科學研究領域,隨機變數的發展通常會呈現出非常強的隨機性,想通過對時序序列簡單的觀察和描述,總結出隨機變數發展變化的規律,並准確預測出它們將來的走勢通常是非常困難的。
為了更准確的估計隨機時序發展變化的規律,從20世紀20年代開始,學術界利用數理統計學原理分析時序序列。研究重心從總結表現現象轉移到分析序列值內在的相互關繫上,由此開辟了一門應用統計學科,時序序列分析。
縱觀時間序列分析方法的發展歷史可以將時間序列分析方法分為兩大類。
頻域分析方法也成為頻譜分析或譜分析方法
早期的頻譜分析方法假設任何一種無趨勢的時間序列都可以分解成若干不同頻率的周期波動,藉助傅里葉分析從頻率的角度揭示時間序列的規律,後來又藉助了傅里葉變換,用正弦、餘弦項之和來逼近某個函數。20世紀60年代,burg在分析地震信號時提出最大熵譜值估值理論,該理論克服了傳統譜分析所有雇的解析度不高和頻率漏泄等缺點,使得譜分析僅以一個新階段,稱之為現代譜分析階段。
目前譜分析方法主要用於電器工程,信息工程,物理學,天文學,海洋學和氣象科學等領域,它是一種非常有用的縱向數據分析方法,但是由於譜分析過程一般都比較復雜,研究人員通常需要很強的數學基礎才能熟練使用它,同時它的分析結果也比較抽象,不易於進行直觀的解釋,所以譜分析方法的使用具有很大的局限性。
時域(time domain)分析方法主要是從序列自相關的角度解釋時間序列的發展規律。相對於譜分析方法,它具有理論基礎扎實、操作步驟規范、分析結果易於解釋等有點。目前它已經廣泛應用於自然科學和社會科學的各個領域,成為時間序列分析的主流方法。本書就是介紹時域分析方法。
時域分析方法的基本思想是事件的發展通常都具有一定的慣性,這種慣性用統計的語言來描述就是序列值之間存在一定的相互關系,而且這種相互關系具有某種統計規律。我們分析的重點就是尋找這種規律,並擬合出適當的數學模型來描述這種規律,進而利用這個擬合模型來預測序列未來的走勢。
時域分析方法具有相對固定的分析套路,通常都遵循如下分析步驟:
時域分析方法的產生最早可以最早追溯到1987年,英國統計學家G.M.JenKins聯合出版了 Times Series Ananlysis Forecasting and Control一書。在書中,Box和Jenkins在總結前人的基礎上,系統的闡述了對求和自回歸移動平均(autoregressive integrated moving average)ARIMA模型的識別、估計、檢驗及預測的原理和方法。這些知識現在被稱為經典的時序序列分析方法,是時域分析的核心方法。為了紀念Box和Jinkens對時間序列的發展的特殊貢獻,現在人們也常把ARIMA模型稱為Box-Jenkins模型。
Box-Jenkins模型實際上是主要運用於單變數、同方差的線性模型。隨著人們對各領域時序序列的深入研究,發現該經典模型在理論和應用上都還存在許多局限性。所以近20年來,統計學家紛紛轉向多變數場合、異方差場合和非線性場合的時序序列分析方法的研究,並且取得了突破進展。
⑩ 時間序列分析的簡介
它包括一般統計分析(如自相關分析,譜分析等),統計模型的建立與推斷,以及關於時間序列的最優預測、控制與濾波等內容。經典的統計分析都假定數據序列具有獨立性,而時間序列分析則側重研究數據序列的互相依賴關系。後者實際上是對離散指標的隨機過程的統計分析,所以又可看作是隨機過程統計的一個組成部分。例如,記錄了某地區第一個月,第二個月,……,第N個月的降雨量,利用時間序列分析方法,可以對未來各月的雨量進行預報。
隨著計算機的相關軟體的開發,數學知識不再是空談理論,時間序列分析主要是建立在數理統計等知識之上,應用相關數理知識在相關方面的應用等。