波動率

使用組件 sGarch (rugarch) 提取任何時間序列的短期和長期波動率

  • May 2, 2021

我嘗試用​​ R 中的 rugarch 包估計一個分量 sGarch 模型。我的目標是提取任何時間序列的短期和長期波動率分量。我對係數不感興趣。

這裡有人知道我如何得到這樣的輸出嗎?

我知道那 sigma(fitted model)給了我 $ \sigma^2_t $ 但我無法得到輸出 $ q_t $ . 如果我使用uncvariance(fitted model),它只是給出一個數字。

提前致謝!

這是一些程式碼:

# With an arbitrary data input, here I used some spot rate data

garchspec <- ugarchspec(variance.model = list(model = "csGARCH", garchOrder = c(1,1)))

garchfit <- ugarchfit(garchspec, SpotRates)

print(garchfit)

sig <- sigma(garchfit)
sig2 <- uncvariance(garchfit)

以及模型的描述(取自“rugarch_package 簡介”):

在此處輸入圖像描述

在這裡。我給包作者寫了一封電子郵件,他給了我一個小費。為了幫助更多的人,我在這裡發布一個解決方案:

garchspec <- ugarchspec(any spec)

garchfit <- ugarchfit(any fit)

q_t <- garchfit@fit$q

感謝@Stéphane 的輸入!

軟體包的作者不包括此選項並非不可能。

在這種情況下,如果你知道他們如何初始化他們的過濾,你可以恢復他們給你的東西(參數、條件變異數、平均方程殘差)並過濾掉你的序列 $ q_t $ 自己遞歸。以下是您如何控制包中估計的初始化:

The option rec.init, introduced in version 1.0-14 allows to set the 
type of method for the conditional recursion initialization, with 
default value ’all’ indicating that all the data is used to calculate 
the mean of the squared residuals from the conditional mean 
filtration. To use the first ’n’ points for the calculation, a 
positive integer greater than or equal to one (and less than the total 
estimation datapoints) can instead be provided. If instead a positive 
numeric value less than 1 is provided, this is taken as the weighting 
in an exponential smoothing backcast method for calculating the 
initial recursion value.

一旦你選擇了一個選項,即使包不允許你獲得你想要的過濾系列,你總是可以使用它們給你的東西自己遞歸地重新計算東西。

是的,這很愚蠢而且很浪費,因為他們已經在其他地方計算過了……但是,哦,好吧。

引用自:https://quant.stackexchange.com/questions/51288