arch
arch copied to clipboard
Can we introduce an user-defined optional lower-bound in the stationary constraint of the variance process?
Would it be possible to have a feature to set an EPSILON in the stationarity constraint?
Like:
1 - sum(alpha) - sum(beta) -0.5*sum(gamma) - EPSILON >= 0
The reason it that the optimiser sometimes give solution where the constraint is equal to zero, or very close like 1E-10, and that will give a crazy large long-term variance. This seems to sometimes happen when the return data covers a period of ever increasing variance.
By adding an EPSILON to the constraint we can force the variance process to have a minimal amount of mean reversion, e.g. EPSILON=1E-3 would give a variance half life of at most 1000 days, which is reasonable to impose?
Alternatively, we could also set an upper-bound on the long-term variance?
omega / [ 1 - sum(alpha) - sum(beta) - 0.5*sum(gamma) ] < max_LTV
edit: somewhere around here in the code https://github.com/bashtage/arch/blob/a61dc7d43a5ef123bee75eae3d3e12b6c472433e/arch/univariate/volatility.py#L1078