egarch – Exponential GARCH with leverage asymmetry (Nelson 1991).#
Back to family axis | Back to L4 | Browse all options
Operational op under axis
family, sub-layerL4_A_model_selection, layerl4. Standalone callable:mf.functions.egarch_fit.
Function signature#
mf.functions.egarch_fit(
X: np.ndarray | pd.DataFrame,
y: np.ndarray | pd.Series,
) -> EGARCHFitResult
Parameters#
name |
type |
default |
constraint |
description |
|---|---|---|---|---|
|
`np.ndarray |
pd.DataFrame` |
— |
— |
|
`np.ndarray |
pd.Series` |
— |
— |
Returns#
EGARCHFitResult — frozen dataclass with fit results.
Attribute |
Type |
Description |
|---|---|---|
|
|
Fitted conditional mean mu. |
|
|
Number of non-missing observations. |
|
|
Fitted EGARCH parameters dict. |
|
|
Conditional mean broadcast over len(X) rows. |
|
|
h-step-ahead variance forecast. |
|
|
Table: conditional mean and fitted parameters. |
Behavior#
EGARCH(p, o, q) on log-variance: ln σ²_t = ω + Σ α_i (|z_{t-i}| − E|z|) + Σ γ_i z_{t-i} + Σ β_j ln σ²_{t-j}. The asymmetry term γ captures the leverage effect (negative shocks raise volatility more than positive ones), and the log specification removes any need for non-negativity constraints on the parameters.
Defaults (Nelson 1991 §3): p = o = q = 1, mean_model = 'constant', dist = 'normal'. Wraps arch.arch_model(vol='EGARCH') – requires [arch] extra.
When to use
Asymmetric / leverage volatility; equity returns where bad news amplifies vol; macro variables with sign-asymmetric volatility responses.
When NOT to use
Without [arch] extra installed; symmetric volatility series where GARCH(1,1) is sufficient (parsimony).
In recipe context#
Set params.family = "egarch" in the relevant layer to activate this op within a recipe:
# Layer L4 recipe fragment
params:
family: egarch
References#
macroforecast design Part 2, L4: ‘forecasting model is the layer where every authoring iteration ends – pick family, tune, repeat.’
Nelson (1991) ‘Conditional Heteroskedasticity in Asset Returns: A New Approach’, Econometrica 59(2): 347-370.