1.7 波動率過程
波動率過程用於添加到均值模型來捕獲時變的波動性。
1.7.1 常數方差
class arch.univariate.
ConstantVariance
[source]
常數波動率過程
注意:
模型在所有期間具有相同方差
backcast
(resids)[source]
構建回測值來啓動遞歸
Parameters: | resids (ndarray) – 殘差向量 (接近) |
---|---|
Returns: | backcast – 在波動率遞歸回測中使用的值 |
Return type: | 浮點(float) |
bounds
(resids)[source]
參數的收益率邊界
Parameters: | resids (ndarray) – 殘差向量 (接近) |
---|---|
Returns: | bounds –最大最小值的邊界列表 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型的方差
Parameters: |
|
---|
constraints
()[source]
爲參數估計構建參數約束數組
Returns: |
|
---|
注意:
構建線性非均衡約束模型時A.dot(parameters) - b >= 0,使用返回值。
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值
Parameters: | resids (ndarray) –計算起始值時的殘差數組(無偏) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.2 GARCH
class arch.univariate.
GARCH
(p=1, o=0, q=1, power=2.0)[source]
GARCH以及相關的模型估計
下列模型可以使用GARCH模型時進一步具體化:
- ARCH(p)
- GARCH(p,q)
- GJR-GARCH(p,o,q)
- AVARCH(p)
- AVGARCH(p,q)
- TARCH(p,o,q)
- 主觀的,預定義精度的模型
Parameters: |
---|
num_params
int – 模型參數個數。
舉例:
>>> from arch.univariate import GARCH 標準 GARCH(1,1)
>>> garch = GARCH(p=1, q=1) 非對稱GJR-GARCH 過程
>>> gjr = GARCH(p=1, o=1, q=1) 非對稱TARCH過程
>>> tarch = GARCH(p=1, o=1, q=1, power=1.0) 注意:
在該過程類中,方差的動態變化表示如下:
backcast
(resids)[source]
開始遞歸的回測值構建
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | backcast – 波動率遞歸中使用的回測值 |
Return type: | float |
bounds
(resids)[source]
收益率參數邊界
Parameters: | resids (ndarray) –殘差向量(一致) |
---|---|
Returns: | bounds – 邊界值列表 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型的方差
Parameters: |
|
---|
constraints
()[source]
爲參數估計構建約束數組
Returns: |
|
---|
注意:
構建線性非均衡約束模型時A.dot(parameters) - b >= 0,使用返回值。
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
爲ARCH模型返回起始值
Parameters: | resids (ndarray) – 計算起始值時使用的殘差數組 (一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.3 部分協整GARCH:(FI) GARCH
class arch.univariate.
FIGARCH
(p=1, q=1, power=2.0, truncation=1000)[source]
FIGARCH 模型
Parameters: |
---|
num_params
int – 模型參數個數
舉例:
>>> from arch.univariate import FIGARCH 標準 FIGARCH
>>> figarch = FIGARCH()
FIARCH
>>> fiarch = FIGARCH(p=0)
FIAVGARCH 過程
>>> fiavarch = FIGARCH(power=1.0) 注意:
在該過程類中,方差變化表述如下:
L爲滯後算子,d爲分佈差分參數
.模型使用 ARCH(∞∞)估計:
權重設置:
遞歸等式:
精度不是2, ARCH(∞∞) 仍舊成立。
backcast
(resids)[source]
爲回測開始遞歸計算構建值
Parameters: | resids (ndarray) – 殘差向量 (一致) |
---|---|
Returns: | backcast – 波動性遞歸中回測使用的值 |
Return type: | float |
bounds
(resids)[source]
返回參數界限
Parameters: | resids (ndarray) – 殘差向量 (一致) |
---|---|
Returns: | bounds – 參數上下界 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型方差
Parameters: |
|
---|
constraints
()[source]
爲參數估計構建參數約束。
Returns: |
|
---|
注意:
在構建線性非均衡約束時使用了返回值: A.dot(parameters) - b >= 0
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值l
Parameters: | resids (ndarray) – 計算起始值時的殘差數組 (一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.4 EGARCH
classarch.univariate.
EGARCH
(p=1, o=0, q=1)[source]
EGARCH 模型估計
Parameters: |
---|
num_params
int – 模型參數數量
舉例:
>>> from arch.univariate import EGARCH 對稱 EGARCH(1,1)
>>> egarch = EGARCH(p=1, q=1) 標準 EGARCH 過程
>>> egarch = EGARCH(p=1, o=1, q=1) 指數ARCH過程
>>> earch = EGARCH(p=5) 注意:
在該類中,方差變化表述如下:
backcast
(resids)[source]
構建回測值來啓動遞歸
Parameters: | resids (ndarray) –殘差向量 (一致) |
---|---|
Returns: | backcast –波動率遞歸使用的值 |
Return type: | float |
bounds
(resids)[source]
返回參數上下界
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | bounds – 列出上下界 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH 模型方差
Parameters: |
|
---|
constraints
()[source]
構建參數約束用於參數估計
Returns: |
|
---|
注意:
構建線性非均衡約束時,使用返回值的形式: A.dot(parameters) - b >= 0
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值
Parameters: | resids (ndarray) –計算起始值時的殘差數組 (一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.5 HARCH
class arch.univariate.
HARCH
(lags=1)[source]
異方差ARCH過程
Parameters: | lags ({list, array, int}) – 模型滯後階數列表,或如爲標量包括所有趨近該值的滯後階數 |
---|
num_params
int – 模型參數個數
舉例:
>>> from arch.univariate import HARCH
Lag-1 HARCH,與 ARCH(1)一致
>>> harch = HARCH()
更有用且顯示的滯後長度:
>>> harch = HARCH(lags=[1, 5, 22]) 注意:
在一個異方差ARCH過程中,方差變化表述如下:
當滯後階數爲[1,5,22], 模型爲:
HARCH過程是ARCH過程的一種特殊情況,其中一般情況下ARCH過程更爲通用的參數受到限制。
backcast
(resids)
構建回測值以開始遞歸
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | backcast –波動率遞歸回測時使用的值 |
Return type: | float |
bounds
(resids)[source]
返回參數上下界
Parameters: | resids (ndarray) – 參數向量 (一致) |
---|---|
Returns: | bounds – 上下界列表 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型的方差
Parameters: |
|
---|
constraints
()[source]
爲估計參數構建參數約束
Returns: |
|
---|
注意:
構建線性非均衡約束時以該方式使用返回值:A.dot(parameters) - b >= 0
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型值:
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值
Parameters: | resids (ndarray) – 計算起始值時的殘差數組(一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.6 MIDAS Hyperbolic
class arch.univariate.
MIDASHyperbolic
(m=22, asym=False)[source]
MIDAS 雙曲ARCH 過程
Parameters: |
---|
num_params
int – 模型參數個數
舉例:
>>> from arch.univariate import MIDASHyperbolic
22-lag MIDAS 雙曲過程
>>> harch = MIDASHyperbolic()
Longer 66-period lag
>>> harch = MIDASHyperbolic(m=66) 非對稱 MIDAS 雙曲過程 >>> harch = MIDASHyperbolic(asym=True) 注意:
在一個 MIDAS雙曲過程中,方差表述如下:
其中
參考:
[*] | Foroni, Claudia, and Massimiliano Marcellino. “A survey of Econometric Methods for Mixed-Frequency Data”. Norges Bank. (2013). |
[†] | Sheppard, Kevin. “Direct volatility modeling”. Manuscript. (2018). |
backcast
(resids)
構建回測值以開始遞歸
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | backcast – 波動率遞歸中回測使用的值 |
Return type: | float |
bounds
(resids)[source]
Returns bounds for parameters
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | bounds –上下界列表 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型方差
Parameters: |
|
---|
constraints
()[source]
約束
注意:
參數爲(omega, alpha, gamma, theta)
A.dot(parameters) - b >= 0
- omega >0
- alpha>0 or alpha + gamma > 0
- alpha<1 or alpha+0.5*gamma<1
- theta > 0
- theta < 1
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值
Parameters: | resids (ndarray) – 起算起始值時使用的殘差數組(一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.7 ARCH
classarch.univariate.
ARCH
(p=1)[source]
ARCH 過程
Parameters: | p (int) – 對稱項階數 |
---|
num_params
int –模型參數個數
舉例:
ARCH(1)過程
>>> from arch.univariate import ARCH
ARCH(5) 過程
>>> arch = ARCH(p=5)
注意:
方差變化表述如下:
backcast
(resids)
構建回測值以開始遞歸
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | backcast – 波動率遞歸回測中使用的值。 |
Return type: | float |
bounds
(resids)
返回參數上下界
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | bounds –上下界列表 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)
計算ARCH模型方差
Parameters: |
|
---|
constraints
()
爲估計參數構建參數約束
Returns: |
|
---|
注意:
使用返回值以該方式構建線性非均衡約束 A.dot(parameters) - b >= 0
simulate
(parameters, nobs, rng, burn=500, initial_value=None)
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值
Parameters: | resids (ndarray) –計算起始值時使用的殘差數組(一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.8 非參方差過程
一些波動率過程使用固定參數,因而無參數可以估計.
EWMA Variance
classarch.univariate.
EWMAVariance
(lam=0.94)[source]
Bases: arch.univariate.volatility.VolatilityProcess
指數加權移動平均(RiskMetrics) 方差過程
Parameters: | lam ({float, None}, optional) – 平滑參數,默認爲 0.94. 若設置爲none則同其他模型參數一起估計lam |
---|
num_params
int – 模型參數個數
舉例:
每日 RiskMetrics EWMA 過程
>>> from arch.univariate import EWMAVariance >>> rm = EWMAVariance(0.94) 注意:
方差動態變化表述如下:
若lam給出,既然平滑參數按固定參數對待,則該模型沒有參數。設定 lam 爲 None,則在擬合模型時聯合估計該參數。
backcast
(resids)
構建回測值以開始遞歸
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | backcast – 在波動率遞歸中回測使用的值。 |
Return type: | float |
bounds
(resids)[source]
返回參數上下界
Parameters: | resids (ndarray) –殘差向量(一致) |
---|---|
Returns: | bounds – 上下界列表 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型方差
Parameters: |
|
---|
constraints
()[source]
爲估計參數構建參數約束
Returns: |
|
---|
注意:
使用返回值在構建線性非均衡約束時採用該形式:A.dot(parameters) - b >= 0
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
返回ARCH模型的起始值
Parameters: | resids (ndarray) –計算起始值時使用的殘差數組(一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.9 風險指標 (2006)
class arch.univariate.
RiskMetrics2006
(tau0=1560, tau1=4, kmax=14, rho=1.4142135623730951)[source]
Bases: arch.univariate.volatility.VolatilityProcess
RiskMetrics 2006 方差過程
Parameters: |
---|
num_params
int – 模型參數個數
舉例:
Daily RiskMetrics 2006 process
>>> from arch.univariate import RiskMetrics2006 >>> rm = RiskMetrics2006() 注意:
該模型的方差變化以加權平均EWMA方差過程方式呈現,平滑係數和權重分別由tau0, tau1 和 rho決定.
既然平滑參數固定,則該模型沒有參數。
backcast
(resids)[source]
構建回測值以開始遞歸
Parameters: | resids (ndarray) –殘差向量(一致) |
---|---|
Returns: | backcast – 對應於每個EWMA項的回測值 |
Return type: | ndarray |
bounds
(resids)[source]
返回參數上下界
Parameters: | resids (ndarray) – 殘差向量(一致) |
---|---|
Returns: | bounds – 列出每個元素上下界 (lower, upper). |
Return type: | list[tuple[float,float]] |
compute_variance
(parameters, resids, sigma2, backcast, var_bounds)[source]
計算ARCH模型方差
Parameters: |
|
---|
constraints
()[source]
爲估計參數構建參數約束。
Returns: |
|
---|
注意:
使用返回值在構建非均衡線性約束時以該形式構建: A.dot(parameters) - b >= 0
simulate
(parameters, nobs, rng, burn=500, initial_value=None)[source]
模擬模型數據
Parameters: | |
---|---|
Returns: |
|
starting_values
(resids)[source]
ARCH模型的收益率起始值
Parameters: | resids (ndarray) – 計算起始值時使用的殘差數組(一致) |
---|---|
Returns: | sv – 起始值數組 |
Return type: | ndarray |
1.7.10 固定方差
固定方差 FixedVariance
class 是一個特殊用途的波動性過程,它允許'之'字形(zig-zag)的波動率過程。具體參考實例。
class arch.univariate.
FixedVariance
(variance, unit_scale=False)[source]
基類: arch.univariate.volatility.VolatilityProcess
固定波動率過程
Parameters: |
|
---|
注意:
當估計均值模型時,本類允許使用GLS方法,來使用固定不變的系列方差。
1.7.11 編寫新波動率過程
所有的波動率過程必須繼承自該類:class:VolatilityProcess,該類提供全部public方法.
class arch.univariate.volatility.
VolatilityProcess
[source]
ARCH模型的抽象基類。該類允許條件均值模型獨立於條件方差,即使參數時聯合估計得出的。