歷史模擬 VaR 中的缺失數據
VaR 估計的歷史模擬方法依賴於歷史數據的可用性。如果沒有數據(例如,現貨價格和隱含波動率表面),例如在新股票發行或新債券發行的情況下,我們該怎麼辦?(上一句中的“新”不一定意味著“最近”,因為對於 SvaR,可能需要 2007-2008 年的數據)。
那麼,我們能做些什麼來“填補缺失的數據”呢?什麼是最好的行業實踐方法?我可以設想像“代理”和回歸這樣的方法,但這些方法看起來有些粗糙和原始。另一方面,我還可以設想一個具有外生輸入 (NARX) 的非線性自回歸神經網路,但不確定這些是否實際用於數據填充。
我原以為這是一個非常普遍的問題,並希望找到很多關於這個主題的文獻,但可惜我的搜尋沒有發現任何東西。
這個問題非常重要,我同意關於它的實用資訊很少。對我來說,關鍵思想是找到最適合您需求的正確矩陣完成算法。我主要處理股票時間序列,並且由於(例如,正如您所引用的)歷史有限的 IPO,存在大量缺失值問題。最近,我在將機率 PCA作為完成步驟方面取得了很好的成功。這在 python 包
pca-magic
(適當命名)中得到了很好的實現。例如,如果您的返回是在按時間索引的數據框中,並且列是(唯一)標識符(因此,數據中有許多 NaN),您可以簡單地做
from ppca import PPCA from sklearn.preprocessing import StandardScaler scaler = StandardScaler() scaler.fit(df.values) returns = scaler.transform(df.values) n_comp = 20 ppca = PPCA() ppca.fit(data=returns, d=n_comp, verbose=False, tol=1e-5) betas = ppca.C df_beta_returns = pd.DataFrame(index=df.index, data=ppca.transform()) common_returns = np.dot(df_beta_returns, betas.T) imputed = scaler.inverse_transform(common_returns)
這是我估算過去從未存在過的回報的一項資產。魔法!
在您的案例中,您可以使用
imputed
數據框作為歷史 VaR 計算的輸入。該算法的論文可以在http://www.robots.ox.ac.uk/~cvrg/hilary2006/ppca.pdf找到
我認為這個問題可以從兩個方面來解決:
- 統計方法;
- 經濟方法。
雖然我同意 ML/AI 和其他統計工具可以增強時間序列中的缺失數據,但這些缺乏經濟意義。人們可以實現這些技術並為模擬生成一些數字。然而,從經濟學和金融學的角度來看,推導和最終結果也應該是有意義的。我認為這就是為什麼許多人仍然通過代理和使用簡單的 OLS 來填充缺失數據來解決這個問題的原因。
儘管這是非常主觀的,但可以為選擇某個代理提出合理的理由。對於新發行的股票,你基本上沒有關於公司的資訊,我想說最好的近似值是模仿該公司的行業/部門。這可以使用最新的財務報表來增強,從中可以提取一些資訊,例如槓桿,並相應地調整時間序列。
非常有趣的問題。希望看到來自社區的評論/意見。