鳥瞰金融風險管理與合成數據
紫式晦澀每日一篇文章第23天
前言
-
今天是2022年第21天, 全年第3週, 一月的第三個週五. 今天接到新的家教需求, 關於金融方面的機器學習. 今天藉著文章來思考一下「金融風險管理」相關的機器學習技能. 把書上的知識很快實踐, 標準化成為結果, 是很重要的能力! 因此, 要去了解與Python相關的金融風險管理機器學習任務.
-
今天的素材主要來自Machine Learning for Financial Risk Management with Python 裡面的目錄來建立初步的知識體系.
本書十章節
- 目錄概覽:
- Ch01. 主要「風險管理(Risk Management)」的概念.
- Ch02. 傳統模型「時間序列應用 (Time-series applications)」.
- Ch03. 實踐序列建模的「深度學習工具(Deep learning tools)」.
- Ch04. 波動率指數預測(Volatility prediction)
- Ch05. 提升傳統「市場風險模型(Market Risk models)」估計表現的「機器學習模型 (Machine learning-based models)」
- Ch06. 估計「信用風險 (Credit Risk)」的機器學習方法.
- Ch07. 「流動性(Liquidity)」建模, 以高斯混合模型(Gauddian Mixture model).
- Ch08. 操作風險(Operational Risk)
- Ch09. 公司治理風險 (Corporate Governance Risk)
- Ch10. 利用「合成數據(Synthetic Data)」來估計各種不同的金融風險.
- 時間序列傳統模型:
- 移動平均模型 (Moving Average)
- 自回歸模型 (AutoRegressive)
- 自回歸移動平均模型 (Autoregressive Integrated Moving Average)
- 市場風險模型(Market Risk models):
- 風險價值模型 (Value-at-Risk, VaR): 量化基於市場移動所造成的潛在損失. 對共變矩陣除噪音.
- 條件風險值模型 (CVaR, Expected Shortfall): 大的為預期的損失. 結合資料的流動性維度(Liqudity dimension)
第十章內容
- 背景:
- 由於對保密性和數據要求不斷增加的擔憂,合成數據的生成在金融領域越來越受到關注。
- 那麼,為什麼不使用真實數據,而要用合成數據來餵養你的模型,只要它能模仿必要的統計屬性?這聽起來很吸引人,不是嗎?
- 合成數據的生成是本章的一部分;另一部分是關於另一個未受重視但相當重要和有趣的話題:隱馬爾可夫模型(HMM)。
- 你可能會問:合成數據和HMM之間有什麼共同點?好吧,我們可以從HMM中生成合成數據,這是本章的目的之一。
- 另一個目的是介紹這兩個重要的主題,因為它們在機器學習中經常被使用。
合成數據生成
- 合成數據對金融產業的幫助:
- 金融數據的保密性、敏感性和成本大大限制了其使用。這反過來又阻礙了金融領域有用知識的進展和傳播。合成數據解決了這些缺點,幫助研究人員和從業人員進行分析和傳播結果。
- 產生合成數據有三種方法:
- 合成數據是由「模仿了真實數據的統計特性」而產生。
- 即使有一種觀點認為,數據必須以其原始形式進行建模,但從真實數據中生成合成數據並不是我們可以創造它的唯一方式(Patki, Wedge, and Veeramachaneni 2016)。
- 相反,我們有三種方式可以生成合成數據。
- 方法一: 基於真實數據:
- 合成數據可以從真實數據中生成。
- 這個過程的工作流程是從獲得真實數據開始的,然後繼續建模以揭開數據的分布,最後一步是從這個現有的模型中抽出合成數據。
- 方法二: 基於模型:
- 合成數據可以從一個模型或知識中獲得。
- 一般來說,這種類型的合成數據生成可以通過使用現有模型或研究者的知識來應用。
- 方法三: 基於混合:
- 一個混合過程包括前面兩個步驟,因為有時只有一部分數據變得可用,這部分真實數據被用來生成合成數據,另一部分合成數據可以從模型中獲得。
- 隱私與效用:
- 我們很快就會看到我們如何應用這些技術來生成合成數據。
- 就其性質而言,合成數據生成過程在隱私和效用之間有一個不折不扣的權衡。
- 確切地說,從真實的未披露的數據中生成的合成數據會產生高效用。
- 然而,合成數據生成的效用在很大程度上取決於真實公共數據的去身份化和聚合。
- 合成數據生成的效用取決於成功的建模或分析人員的專業知識。
衡量合成數據品質
- 四種衡量方法: KL散度, 可區分, ROC曲線, 統計量:
- 正如你所想象的,可以應用各種工具來衡量合成數據的有效性;然而,我們將把注意力限制在四個普遍接受的方法上。
- KL-發散、可區分、ROC曲線,以及比較主要的統計數據,如平均值、中位數等。
- 由於KL-發散和ROC分別在第8章和第6章討論過,我們將跳過這些,從可區分方法開始討論。
- 可區分 (Distinguishable):
- 可區分法,顧名思義,試圖通過使用區分真實和合成數據的分類模型,在真實記錄和合成記錄之間進行區分,如果是真實的,就給1,如果不是就給0。
- 如果輸出結果更接近於1,它就預測該記錄是真實的,否則就使用「傾向得分(Propensity Score)」預測它是合成數據(El Emam 2020)。
- 統計量:
- 另一種方法簡單而強大,是基於比較真實和合成數據的主要統計數據。
- 鑒於所採用的模型,可以比較真實數據和合成數據的平均值(或其他統計量),以瞭解合成數據對真實數據的模仿程度。
合成數據的優勢與劣勢
- 優點一:增加數據的可用性:
- 合成數據的生成為我們提供了一個強大的工具,我們可以通過它來克服獲取真實數據的困難,因為真實數據可能是昂貴的和專有的。
- 優點二:提高分析能力:
- 合成數據作為真實數據的一個很好的代理,可以用於各種分析過程,這反過來又可以提高我們對特定主題的理解。
- 此外,合成數據可用於標記,為高度精確的分析鋪平道路。
- 優點三:處理常見的統計問題:
- 合成數據的生成可以緩解真實數據產生的問題。
- 真實數據可能伴隨著一些問題–如缺失值、離群值等,嚴重影響模型的性能。
- 合成數據提供了一個應對這些統計問題的工具,從而使我們最終可能獲得更好的建模性能。
- 缺點一: 無法保持機密性:
- 由於網絡攻擊,合成數據可能成為私人信息洩露的來源。例如,客戶的證書可以通過反向工程獲得。
- 缺點二:質量問題:
- 在合成數據的生成過程中,有兩件重要的事情需要考慮:研究人員的能力和數據的特點。
- 這兩點決定了合成數據生成的質量過程。
- 如果缺乏這兩點,很可能會期待低質量的合成數據。
生成合成數據的手段
- CTGAN:
-
- real data:
fetch_california_housing
- real data:
-
- library:
CTGANSynthesizer
- library:
1from ctgan import CTGANSynthesizer
2
3ctgan = CTGANSynthesizer(epochs=10)
4ctgan.fit(california_housing_df)
5synt_sample = ctgan.sample(len(california_housing_df))
- 描述統計量來檢查合成數據的相似性:
- 生成合成數據後,可以通過描述性統計來檢查合成數據的相似性。
- 像往常一樣,描述性統計是很方便的,但是我們還有一個工具,就是來自合成數據庫(SDV)的軟件包。
- 這個函數的輸出將是一個介於0和1之間的數字,它將表明兩個表的相似程度,0是最差的,1是可能的最佳分數。
- 此外,生成過程的結果可以被可視化(在生成的圖10-2和10-3中),並與真實數據進行比較,這樣我們就可以充分瞭解合成數據是否能很好地代表真實數據。
利用真實數據可以很好產生合成數據.
- 由模型產生合成數據:
- 用
sklearn
來做分類與迴歸分析模型. - 用
make_regression
可從迴歸分析模型來產生合成數據. - 用
make_classification
從分類模型來產生合成數據
- 由無監督學習產生合成數據:
- 用
make_blobs
來做合成數據.
-
在Bandit裡面, 一開始也都沒data, 可否用合成數據來幫助bandit的學習任務呢? 從real data出發?
後記
-
到此思考整理了Machine Learning for Financial Risk Management with Python 裡面的目錄, 了解與Python相關的金融風險管理機器學習任務.
-
這個書的第10章竟然就講了合成數據!這個對我們高度相關, 要仔細讀讀. 讀完之後感覺這是一個很好hands on的材料!之後可以持續發展!另外文章也有提到一些文獻, 之後可以逐漸調查.
-
之後做Data-centric的研究, 感覺是正確發展Data science的方向!如同Computer science是研究計算機的科學, Information Science是研究資訊的科學, Statistics是「科學可證偽性」的基礎! 持續向上, 共勉之!
2022.01.21. 紫蕊 於 西拉法葉, 印第安納, 美國.
評論