GARCH 波動率建模、平方收益和收斂
在閱讀了更多Volatility Trading之後,我決定嘗試使用我關注的 ETF 的每日對數回報來製作一個簡單的波動率模型。事實證明,“簡單”是相對的。不幸的是,似乎大多數文獻都對如何做這樣的事情模糊不清。
因此,我首先獲取收盤價的對數,並對它們進行差分以消除數據趨勢並獲得對數回報系列。我通過執行 ADF 證明它是靜止的(p 值 < 0.01)。
現在這就是麻煩開始的地方。由於這是一個單變數 GARCH 模型,我決定使用
rugarch
R 中的包執行。我最初將其指定為 GARCH(1,1)。求解器無法收斂。好的 - 所以我執行一個引導程序並嘗試獲取更多數據,看看我是否至少可以獲得某種形式的收斂 - 它失敗了。提高迭代次數似乎也會使其失敗。所以我無法真正解釋數據的好壞。在閱讀了 Eric Zivot 的單變數 GARCH 模型分析中的實際問題後,我覺得我應該使用某種轉換後的數據。我注意到他提到平方對數返回,所以我盲目地嘗試,GARCH 求解器收斂沒有問題。閱讀更多內容後,我發現另一篇論文——波動率預測 I:GARCH 模型——討論了平方收益是正自相關的。所以我問自己——這個平方回報是什麼?
在此處輸入標題為Squared and Absolute return的文章。不幸的是,這篇文章沒有太大幫助,但它讓我陷入了閱讀CME 小組的波動率估計的困境。第 1.1 節強調,平方收益是波動率的代表,但它非常不精確。這讓我想到了一些問題,希望你們能幫助我:
- 如果平方收益是波動率的不精確代理,為什麼建議我們使用它們建立 GARCH 波動率模型?這不會降低模型預測的有效性嗎?
- Eric Zivots 論文提到了時間序列的 GARCH 效應。您可以檢查的方法之一是 Ljung-Box 測試。但是,我不太明白如何設置它,尤其是在 R 中。我傾向於認為我的對數回歸系列沒有 GARCH 效應,但是平方對數回歸系列有。
- 我們可以使用不同的、更精確的波動率估計器並在此基礎上建立 GARCH 模型嗎?(前 Garman-Klass)
如果這些是微不足道的問題,我深表歉意——我似乎無法找到一個資源來回答我的確切問題。我真的很感謝任何可以幫助我解決這些問題的資源的幫助或指導。在實際使用之前,我真的很想完全理解這一點。提前致謝!
假設您的固定時間序列(這裡是每日接近關閉的日誌回報系列)建模如下 $ \forall t \in \mathcal{T}={1,…,N} $
$$ \begin{align} r_t &= E_{t-1}[r_t] + \epsilon_t \ &= E_{t-1}[r_t] + \sigma_t z_t \end{align} $$ 和 $ z_t \sim N(0,1) $ 和 $ {z_t}{t \in \mathcal{T}} $ 是 IID。 上述等式表明,知道在 $ t-1 $ (即給定過濾 $ \mathcal{F}{t-1} $ ),條件均值和變異數 $ r_t $ 分別由
$$ \begin{align} E_{t-1}[r_t] \text{ and } \sigma^2_t \end{align} $$ 現在我們可以進一步指定條件均值模型,例如 ARMA(p,q) $$ E_{t-1}[r_t] = \omega_1 + \sum_{i=1}^p \alpha_i r_{t-i} + \sum_{j=1}^q \beta_j z_{t-j} $$ 和/或條件變異數模型,例如 GARCH(r,s) $$ \sigma_t^2 = \omega_2 + \sum_{k=1}^r \gamma_k r^2_{t-k} + \sum_{l=1}^s \delta_l \sigma_{t-l}^2 $$ 請注意,這兩個模型可以相互獨立地指定。至關重要的是不要混淆兩者,尤其是在使用第三方庫時。 現在,讓我們忘記這個答案其餘部分中的條件均值,並假設 $ E_{t-1}[y_t]=0 $ 這在實踐中通常是一個合理的近似值,至少就每日日誌回報而言。進一步假設 GARCH (1,1) 得到:
$$ r_t = \sigma_t z_t\ \ \text{ along with }\ \ \sigma_t^2 = \omega + a r_{t-1}^2 + b \sigma_{t-1}^2 $$ 從上面的規範可以清楚地看出:
$$ E_{t-1}[r_t^2] = E_{t-1}[\sigma_t^2 z_t^2] = \sigma_t^2 \underbrace{E_{t-1}[z_t^2]}{=1} $$ 因為 $ z_t \perp \sigma^2_t $ 和 $ \sigma_t^2 $ 是 $ \mathcal{F}{t-1} $ - 可測量的。上面的等式表明,平方收益是條件波動率的無偏代理。然而因為 $ z_t^2 \sim \chi_{(1)}^2 $ 這是一個非常不精確的代理,請參閱CME 論文第 5 頁或Triacca,2007年應用金融經濟學快報第 256 頁,3。 現在回到您的應用程序,您想估計歷史波動率對嗎?你有不同的可能性。讓我們看一下您的建議:
- GARCH(1,1):假設沒有疊加條件均值模型,則需要估計的參數為 $ \omega, a $ 和 $ b $ 在這里和這裡閱讀這些文章可能會對您的努力有所幫助。沒有理由應該使用轉換後的返回值,除非:(1)您使用的函式專門設計用於在輸入中獲取轉換後的返回值,但我覺得這很奇怪(您似乎已經讀過我們在某處使用平方返回值可以您確切指出在哪裡?)(2)諸如取平方根(或自然對數等)之類的變換可能有助於穩定變異數(即使序列平穩),但是您已經通過ADF 測試。換句話說,你使用的函式應該給你一個答案。即使沒有你似乎暗示的 GARCH 效應,在這種情況下 $ a=b=0 $ 你會有一個恆定的變異數(同變異數回報)。恕我直言,您應該進一步調查此步驟失敗的原因,找出沒有收斂的原因。也許使用變異數目標來降低數值優化步驟的複雜性(參見上面的連結文章)?
- Garman-Klass波動率估計器或任何其他波動率估計器,例如Yang-Zhang或樣本在滾動視窗上實現的波動率。顧名思義,這些是估計器而不是模型(儘管它們確實需要基礎建模假設)。它們純粹是描述性的:您應用一個公式並獲得波動率估計。我不明白為什麼要在這樣的估計器之上建立一個 GARCH 模型。請記住,GARCH 是一個條件變異數模型。為什麼要對波動率估計器的條件變異數建模?!
PS:我既不是統計測試方面的專家,也不是 R 方面的專家,所以我無法真正評論如何設置 Ljung-Box 測試。不過,我會說你的傾向是不對的,儘管我猜你可以聲稱,一般來說,回報不是自相關的,而平方回報是自相關的,請參閱這篇關於市場程式化事實的開創性論文。