當從單變量波動率預測跳到多變量波動率預測時,咱們須要明白,如今咱們不只要預測單變量波動率元素,還要預測協方差元素。假設你有兩個序列,那麼這個協方差元素就是2乘2方差-協方差矩陣的對角線。咱們應該使用的準確術語是 "方差-協方差矩陣",由於該矩陣由對角線上的方差元素和非對角線上的協方差元素組成。可是因爲讀 "方差-協方差矩陣 "很是累人,因此一般被稱爲協方差矩陣,或者有時不太正式地稱爲var-covar矩陣。算法
若是你還在讀這篇文章,說明你在創建相關關係模型方面有一些經驗。鑑於你知道各個序列的方差,相關和協方差之間的聯繫是直接的。 網絡
因此當我第一次研究這個問題時,我不明白爲何咱們不單獨創建全部非對角線的模型,例如使用樣本成對相關的滾動窗口呢?你想有一個有效的相關矩陣,這意味着對稱(很容易施加)和正負無限。ide
首先,爲何非負定屬性很重要,其次,爲何它不容易施加。把非負定屬性看做是多變量的,至關於單變量狀況下對波動率的正向施加。你不會想讓你的模型生成負的波動率吧?在單變量的狀況下,乘以任何平方數,咱們均可以保持在正數的範圍內。在更高的維度上,確保協方差的 "正性 "涉及到乘法,不是乘以一個平方的標量,而是乘以一個 "平方 "的矢量。
3d
將XC表示爲居中的隨機變量X,因此 。如今根據定義
是一個協方差矩陣,顯然是非負定的。如今,若是咱們用矩陣乘以一個 "平方 "向量,
咱們能夠將向量 "插入 "指望值中(由於(1)向量不是隨機變量,以及(2)指望算子的線性)。咱們(應該)仍然獲得非負定矩陣
。 你用哪一個向量
並不重要,由於它是 "平方 "的。blog
若是咱們對協方差條目進行單獨建模,並將它們 "修補 "成一個矩陣,將每一個成對的協方差放在正確的位置(例如,變量1和變量3之間的協方差在條目和
,不能保證咱們最終獲得一個非負定的矩陣。因爲不存在非負定的協方差矩陣,那麼咱們就有可能獲得一個無效的協方差矩陣。遞歸
從業人員因爲擺脫了繁瑣的學術判斷過程,可能會擺脫這個理論上的失誤。然而,還有其餘問題,在本質上是計算上的問題。一個非負的無限矩陣能夠有零或負的行列式。在許多貝葉斯的應用中,咱們但願使用精確矩陣而不是協方差矩陣。爲了計算精確矩陣,咱們簡單地反轉協方差矩陣,但這意味着咱們要除以行列式,所以,行列式爲零就會產生問題。
get
文獻中的主要構建模塊是GARCH過程。假設咱們有一個隨機變量,咱們能夠用它的波動率來建模。 it
(1) io
很容易理解。對於今天的波動率來講,重要的是昨天的波動率,特別強調的是昨天的衝擊,
。請記住,若是
,那麼
僅僅是對方差
的估計,而沒有考慮到t-1之前的任何狀況。
class
如今,添加另外一個隨機變量 。你如今有兩個波動率和一個協方差項。可是,爲何不以向量自動迴歸(VAR)擴展自動迴歸的一樣方式來擴展這個過程?進入VEC模型。
(2)
這裏是一個矢量化運算符,將一個矩陣做爲一個矢量進行堆疊。因爲矩陣的對稱性,咱們不須要全部的係數,因此更好的表述:
(3)
這個模型背後的直覺與VAR的基礎是同樣的。也許當股票的波動率高時,債券的波動率就低,也許當債券的波動率高時,與股票的協方差就高,等等。
這個模型的一個潛在問題,也是與VAR類似的,就是波動率是獨立的過程,這意味着只有A和B的對角線是重要的,在這種狀況下,咱們只是用沒必要要的估計噪音來干擾這個模型。以前提到的另外一個計算問題是,因爲咱們沒有對矩陣過程自己進行建模,而是對三個項逐一進行建模,因此咱們不能確保結果是一個有效的協方差矩陣,特別是沒有施加非負-無限約束。BEKK模型(Baba, Engle, Kraft and Kroner, 1990)取得了這一進展。有一個很好的理由不詳細討論這些 "第一代 "模型。它們對於少數幾個變量來講是很是難以估計的。我沒有親自嘗試過那些模型。對於這些模型,即便人們成功地進行了估計,就實踐者而言,估計的複雜性給結果帶來了很大問題。
恩格爾(2002)在其開創性的論文中提出了下一個重要的步驟,隨後文獻中出現了一個高潮。"Dynamic Conditional Correlation: 一類簡單的多變量廣義自迴歸條件異方差模型"。從摘要中能夠看出:"這些(模型)具備單變量GARCH模型的靈活性,加上參數化的相關模型"。這類條件相關模型的關鍵切入點是要認識到
(4)
是一個矩陣,對角線上是各個序列的波動率(如今單獨估計),對角線外是零。這只是以矩陣形式對咱們開始時的常規方程進行了處理。
,由於
。如今具有幾個條件:
如今咱們進行估計。
讓咱們獲得一些數據。咱們提取三個ETF的過去幾年的數據。SPY(追蹤標準普爾500指數),TLT和IEF(分別追蹤長期和中期債券)。
k <- 3 # 多少年數據 sym = c('SPY', 'TLT', "IEF") # 標準普爾500指數,長期和中期債券,全部ETFs for (i in 1:l)getSymbols(sym[i], src="yahoo", from=start, to=end) ret <- na.omit(ret)# 刪除第一個觀察值
如今來演示如何使用CCC和DCC模型構建協方差矩陣。咱們首先獲得單變量波動率。咱們須要它們,它們位於對角線矩陣的對角線上。咱們用重尾的不對稱GARCH來估計它們。
garch(distribution="std") #std是學生t分佈 volatilityfit # 用一個矩陣來保存三種資產的波動率 for (i in 1:l) model = ugarchfit(spec,ret[,i])
如今,一旦咱們有了,咱們就可以建立基於CCC和DCC的協方差矩陣。對於CCC(恆定條件相關),咱們使用樣本相關矩陣,而對於DCC(動態),咱們使用基於例如3個月的移動窗口估計的相關矩陣。
# 建立一個CCC模型的協方差 nassets <- l # 爲了提升可讀性,l看起來太像1了。 # 爲不一樣時期的矩陣製做容器。 array(dim=c(n, nassets, TT)) # 計算樣本無條件的相關矩陣。 samp_cor <- cor(ret) # 在整個循環過程當中會保持不變 wind <- 60 # 大概三個月的時間 for (i in (w+1):TT) (volatilitfit[i,])*diag(assets) cov_ccc cor_tv cov_dcc<- dt %*% cor_tv[,,i] %*% dt
結果按年計算,並乘以100,轉爲百分比,以提升可讀性。繪製它。
par()$mar # 邊距 plot(ann*cov_ccc[1,1,]~time plot(ann*cov_ccc[1,2,]~time)
在上圖中,咱們有協方差矩陣的對角線。咱們看到(1)中期債券的波動性最低,正如預期的那樣,(2)SPY的波動性很大,方差也很高。(3) 曲線長端的方差高於中期的方差,這是收益率曲線文獻中一個典型的事實。(4) 有趣的是,長期債券的波動性一直在上升,這多是對即將提升政策利率的高度警覺。
在下圖中,咱們有三個協方差項,一次是假設CCC的估計(實線),一次是假設DCC的估計(虛線)。對於中期和長期債券之間的協方差,若是你假設恆定或動態相關矩陣,並不重要。然而,這對SPY與債券的協方差項確實很重要。例如,基於DCC的協方差矩陣認爲在2013年中期股票和債券之間的協方差幾乎爲零,而基於CCC的協方差則代表在此期間的協方差爲負。到底是恆定的仍是動態的,對跨資產投資組合的構建可能有很大的影響。
最受歡迎的看法
1.HAR-RV-J與遞歸神經網絡(RNN)混合模型預測和交易大型股票指數的高頻波動率
2.R語言中基於混合數據抽樣(MIDAS)迴歸的HAR-RV模型預測GDP增加
3.波動率的實現:ARCH模型與HAR-RV模型
4.R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測
5.GARCH(1,1),MA以及歷史模擬法的VaR比較
6.R語言多元COPULA GARCH 模型時間序列預測
7.R語言基於ARMA-GARCH過程的VAR擬合和預測
8.matlab預測ARMA-GARCH 條件均值和方差模型
9.R語言對S&P500股票指數進行ARIMA + GARCH交易策略