- Python機(jī)器學(xué)習(xí)之金融風(fēng)險(xiǎn)管理
- (土)阿卜杜拉·卡拉桑
- 847字
- 2025-05-19 16:26:07
第2章 時(shí)間序列建模簡(jiǎn)介
市場(chǎng)行為需要大量歷史數(shù)據(jù)(例如外匯或股票的高頻買賣報(bào)價(jià))來進(jìn)行研究。雖然不能進(jìn)行對(duì)照實(shí)驗(yàn),但可以基于歷史數(shù)據(jù)進(jìn)行廣泛的測(cè)試。
——Sergio Focardi
絕大多數(shù)金融數(shù)據(jù)都具有時(shí)間維度,這一點(diǎn)令時(shí)間序列建模成為金融業(yè)的必要工具。本章將介紹傳統(tǒng)的時(shí)間序列建模。第3章將介紹現(xiàn)代化的、在數(shù)據(jù)準(zhǔn)備和模型結(jié)構(gòu)方面完全不同的、基于深度學(xué)習(xí)的時(shí)間序列建模。傳統(tǒng)的時(shí)間序列模型包括移動(dòng)平均(Moving Average,MA)模型、自回歸(Autoregressive,AR)模型和差分自回歸移動(dòng)平均(Autoregressive Integrated Moving Average,ARIMA)模型。這些模型的共同點(diǎn)是包含歷史觀測(cè)值。如果觀測(cè)值來自誤差項(xiàng),將其稱為移動(dòng)平均模型。如果觀測(cè)值來自變量自身,即用變量自身的歷史數(shù)據(jù)對(duì)自身進(jìn)行預(yù)測(cè),則稱為自回歸模型。ARIMA則是這兩類模型的擴(kuò)展。
以下是關(guān)于時(shí)間序列的定義(Brockwell和Davis,2016)[1]:
[1] 譯者注:本章代碼所用到的statsmodels庫(kù)是基于Brockwell和Davis所開發(fā)的1987版本和2010版本的,詳情參見statsmodels官網(wǎng)。
時(shí)間序列是指這樣一組觀測(cè)值Xt,每個(gè)觀測(cè)值都在特定的時(shí)間t記錄。離散時(shí)間序列是指這樣一組時(shí)間序列:觀測(cè)時(shí)間集T0是一個(gè)離散時(shí)間序列,表示以固定時(shí)間間隔進(jìn)行觀測(cè)。連續(xù)時(shí)間序列是指在一定時(shí)間間隔內(nèi)連續(xù)記錄觀測(cè)值時(shí)得到的連續(xù)時(shí)間序列。
我們先來看看帶有時(shí)間維度的數(shù)據(jù)是什么樣的。圖2-1展示了2010—2020年的石油價(jià)格,以下是生成這張圖的Python代碼:
In [1]: import quandl import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') plt.style.use('seaborn') In [2]: oil = quandl.get("NSE/OIL", authtoken="insert you api token", start_date="2010-01-01", end_date="2020-01-01") ? In [3]: plt.figure(figsize=(10, 6)) plt.plot(oil.Close) plt.ylabel('$') plt.xlabel('Date') plt.show()
? 從Quandl中讀取數(shù)據(jù)。

圖2-1 2010年1月1日—2020年1月1日的石油價(jià)格
API是一種使用代碼來檢索數(shù)據(jù)的工具。本書將會(huì)用到各種API。在前面這段代碼中,我們使用了Quandl API。
通過Quandl API可以訪問Quandl網(wǎng)站上關(guān)于金融、經(jīng)濟(jì)和其他方面的數(shù)據(jù)。
從前面的定義可以看到,時(shí)間序列建模適用于如下領(lǐng)域。
● 醫(yī)療。
● 金融。
● 經(jīng)濟(jì)。
● 網(wǎng)絡(luò)分析。
● 天文。
● 氣象。
時(shí)間序列建模方法之所以優(yōu)越,是因?yàn)樵摲椒ㄕJ(rèn)為過去的數(shù)據(jù)點(diǎn)之間的相關(guān)性能夠更好地解釋當(dāng)前值。因此,由于時(shí)間上的相關(guān)性,同一時(shí)期股價(jià)的動(dòng)態(tài)可以通過其自身的歷史值更好地來理解。我們?nèi)绾瘟私鈹?shù)據(jù)的動(dòng)態(tài)呢?這個(gè)問題我們可以通過闡述時(shí)間序列的成分來回答。
- Learning Microsoft Windows Server 2012 Dynamic Access Control
- scikit-learn Cookbook
- Learn Programming in Python with Cody Jackson
- Building Mapping Applications with QGIS
- Android底層接口與驅(qū)動(dòng)開發(fā)技術(shù)詳解
- C程序設(shè)計(jì)實(shí)踐教程
- Android開發(fā)案例教程與項(xiàng)目實(shí)戰(zhàn)(在線實(shí)驗(yàn)+在線自測(cè))
- iPhone應(yīng)用開發(fā)從入門到精通
- 從零開始學(xué)Python網(wǎng)絡(luò)爬蟲
- 深度探索Go語言:對(duì)象模型與runtime的原理特性及應(yīng)用
- C陷阱與缺陷
- Scala Functional Programming Patterns
- Learning D
- jQuery從入門到精通(微課精編版)
- Pandas 1.x Cookbook