- Python機器學習之金融風險管理
- (土)阿卜杜拉·卡拉桑
- 847字
- 2025-05-19 16:26:07
第2章 時間序列建模簡介
市場行為需要大量歷史數據(例如外匯或股票的高頻買賣報價)來進行研究。雖然不能進行對照實驗,但可以基于歷史數據進行廣泛的測試。
——Sergio Focardi
絕大多數金融數據都具有時間維度,這一點令時間序列建模成為金融業的必要工具。本章將介紹傳統的時間序列建模。第3章將介紹現代化的、在數據準備和模型結構方面完全不同的、基于深度學習的時間序列建模。傳統的時間序列模型包括移動平均(Moving Average,MA)模型、自回歸(Autoregressive,AR)模型和差分自回歸移動平均(Autoregressive Integrated Moving Average,ARIMA)模型。這些模型的共同點是包含歷史觀測值。如果觀測值來自誤差項,將其稱為移動平均模型。如果觀測值來自變量自身,即用變量自身的歷史數據對自身進行預測,則稱為自回歸模型。ARIMA則是這兩類模型的擴展。
以下是關于時間序列的定義(Brockwell和Davis,2016)[1]:
[1] 譯者注:本章代碼所用到的statsmodels庫是基于Brockwell和Davis所開發的1987版本和2010版本的,詳情參見statsmodels官網。
時間序列是指這樣一組觀測值Xt,每個觀測值都在特定的時間t記錄。離散時間序列是指這樣一組時間序列:觀測時間集T0是一個離散時間序列,表示以固定時間間隔進行觀測。連續時間序列是指在一定時間間隔內連續記錄觀測值時得到的連續時間序列。
我們先來看看帶有時間維度的數據是什么樣的。圖2-1展示了2010—2020年的石油價格,以下是生成這張圖的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中讀取數據。

圖2-1 2010年1月1日—2020年1月1日的石油價格

API是一種使用代碼來檢索數據的工具。本書將會用到各種API。在前面這段代碼中,我們使用了Quandl API。
通過Quandl API可以訪問Quandl網站上關于金融、經濟和其他方面的數據。
從前面的定義可以看到,時間序列建模適用于如下領域。
● 醫療。
● 金融。
● 經濟。
● 網絡分析。
● 天文。
● 氣象。
時間序列建模方法之所以優越,是因為該方法認為過去的數據點之間的相關性能夠更好地解釋當前值。因此,由于時間上的相關性,同一時期股價的動態可以通過其自身的歷史值更好地來理解。我們如何了解數據的動態呢?這個問題我們可以通過闡述時間序列的成分來回答。
- Mastering Entity Framework Core 2.0
- Visual Basic .NET程序設計(第3版)
- Drupal 8 Blueprints
- 造個小程序:與微信一起干件正經事兒
- Rake Task Management Essentials
- jQuery從入門到精通 (軟件開發視頻大講堂)
- KnockoutJS Starter
- Android群英傳
- 計算機應用基礎(第二版)
- 物聯網系統架構設計與邊緣計算(原書第2版)
- Apache Solr PHP Integration
- Visual Basic程序設計實驗指導及考試指南
- AutoCAD基礎教程
- 虛擬現實建模與編程(SketchUp+OSG開發技術)
- 你好!Python