Change Logs

Version 5

Release 5.5

  • NumPy 1.25 fixes

  • Initial pandas copy-on-write support

  • Switched doc theme to sphinx-immaterial

  • Small fixes for typing issues

Release 5.4

  • Compatability release with pandas 2.0

  • Add testing and wheel support for Python 3.11

Release 5.3

  • Fixed a bug in arch_model() where power was not passed to the FIGARCH constructor (GH572).

  • Fixed a bug that affected downstream projects due to an overly specific assert (GH569).

Release 5.2

  • Fixed a bug in in std_resid() that would raise an exception when the data used to construct the model with a NumPy array (GH565).

  • Fixed a bug in forecast() and related forecast methods when producing multi-step forecasts usign simulation with exogenous variables (GH551).

Release 5.1

Unit Root

  • Improved automatic lag length selection in DFGLS by using OLS rather than GLS detrended data when selecting the lag length. This problem was studied by Perron, P., & Qu, Z. (2007).

Release 5.0

Unit Root

  • All unit root tests are now immutable, and so properties such as trend cannot be set after the test is created.


Volatility Modeling


  • Added support for using an environmental variable to disable C-extension compilation.

    • Linux and OSX: export ARCH_NO_BINARY=1

    • PowerShell: $env:ARCH_NO_BINARY=1

    • cmd: set ARCH_NO_BINARY=1

Version 4

Release 4.19

  • Added the keyword argument reindex to forecast() that allows the returned forecasts to have minimal size when reindex=False. The default is reindex=True which preserved the current behavior. This will change in a future release. Using reindex=True often requires substantially more memory than when reindex=False. This is especially true when using simulation or bootstrap-based forecasting.

  • The default value reindex can be changed by importing

from arch.__future__ import reindexing
  • Fixed handling of exogenous regressors in forecast(). It is now possible to pass values for \(E_t[X_{t+h}]\) using the x argument.

Release 4.18

  • Improved fit() performance of ARCH models.

  • Fixed a bug where `typing_extensions was subtly introduced as a run-time dependency.

Release 4.17

  • Fixed a bug that produced incorrect conditional volatility from EWMA models (GH458).

Release 4.16

  • Added APARCH volatilty process (GH443).

  • Added support for Python 3.9 in pyproject.toml (GH438).

  • Fixed a bug in model degree-of-freedom calculation (GH437).

  • Improved HARX initialization (GH417).

Release 4.15

  • This is a minor release with doc fixes and other small updates. The only notable feature is regression() which returns regression results from the model estimated as part of the test (GH395).

Release 4.14

Release 4.13

  • Restored the vendored copy of property_cached for conda package building.

Release 4.12

  • Added typing support to all classes, functions and methods (GH338, GH341, GH342, GH343, GH345, GH346).

  • Fixed an issue that caused tests to fail on SciPy 1.4+ (GH339).

  • Dropped support for Python 3.5 inline with NEP 29 (GH334).

  • Added methods to compute moment and lower partial moments for standardized residuals. See, for example, moment() and partial_moment() (GH329).

  • Fixed a bug that produced an OverflowError when a time series has no variance (GH331).

Release 4.11

  • Added std_resid() (GH326).

  • Error if inputs are not ndarrays, DataFrames or Series (GH315).

  • Added a check that the covariance is non-zero when using “studentized” confidence intervals. If the function bootstrapped produces statistics with 0 variance, it is not possible to studentized (GH322).

Release 4.10

  • Fixed a bug in arch_lm_test that assumed that the model data is contained in a pandas Series. (GH313).

  • Fixed a bug that can affect use in certain environments that reload modules (GH317).

Release 4.9

  • Removed support for Python 2.7.

  • Added auto_bandwidth() to compute optimized bandwidth for a number of common kernel covariance estimators (GH303). This code was written by Michael Rabba.

  • Added a parameter rescale to arch_model() that allows the estimator to rescale data if it may help parameter estimation. If rescale=True, then the data will be rescaled by a power of 10 (e.g., 10, 100, or 1000) to produce a series with a residual variance between 1 and 1000. The model is then estimated on the rescaled data. The scale is reported scale(). If rescale=None, a warning is produced if the data appear to be poorly scaled, but no change of scale is applied. If rescale=False, no scale change is applied and no warning is issued.

  • Fixed a bug when using the BCA bootstrap method where the leave-one-out jackknife used the wrong centering variable (GH288).

  • Added optimization_result() to simplify checking for convergence of the numerical optimizer (GH292).

  • Added random_state argument to forecast() to allow a RandomState object to be passed in when forecasting when method=’bootstrap’. This allows the repeatable forecast to be produced (GH290).

  • Fixed a bug in VarianceRatio that used the wrong variance in nonrobust inference with overlapping samples (GH286).

Release 4.8.1

  • Fixed a bug which prevented extension modules from being correctly imported.

Release 4.8

  • Added Zivot-Andrews unit root test ZivotAndrews. This code was originally written by Jim Varanelli.

  • Added data dependent lag length selection to the KPSS test, KPSS. This code was originally written by Jim Varanelli.

  • Added IndependentSamplesBootstrap to perform bootstrap inference on statistics from independent samples that may have uneven length (GH260).

  • Added arch_lm_test() to perform ARCH-LM tests on model residuals or standardized residuals (GH261).

  • Fixed a bug in ADF when applying to very short time series (GH262).

  • Added ability to set the random_state when initializing a bootstrap (GH259).

Release 4.7

  • Added support for Fractionally Integrated GARCH (FIGARCH) in FIGARCH.

  • Enable user to specify a specific value of the backcast in place of the automatically generated value.

  • Fixed a big where parameter-less models where incorrectly reported as having constant variance (GH248).

Release 4.6

  • Added support for MIDAS volatility processes using Hyperbolic weighting in MidasHyperbolic (GH233).

Release 4.5

  • Added a parameter to forecast that allows a user-provided callable random generator to be used in place of the model random generator (GH225).

  • Added a low memory automatic lag selection method that can be used with very large time-series.

  • Improved performance of automatic lag selection in ADF and related tests.

Release 4.4

  • Added named parameters to Dickey-Fuller regressions.

  • Removed use of the module-level NumPy RandomState. All random number generators use separate RandomState instances.

  • Fixed a bug that prevented 1-step forecasts with exogenous regressors.

  • Added the Generalized Error Distribution for univariate ARCH models.

  • Fixed a bug in MCS when using the max method that prevented all included models from being listed.

Release 4.3

  • Added FixedVariance volatility process which allows pre-specified variances to be used with a mean model. This has been added to allow so-called zig-zag estimation where a mean model is estimated with a fixed variance, and then a variance model is estimated on the residuals using a ZeroMean variance process.

Release 4.2

  • Fixed a bug that prevented fix from being used with a new model (GH156).

  • Added first_obs and last_obs parameters to fix to mimic fit.

  • Added ability to jointly estimate smoothing parameter in EWMA variance when fitting the model.

  • Added ability to pass optimization options to ARCH model estimation (GH195).

Version 3

  • Added forecast code for mean forecasting

  • Added volatility hedgehog plot

  • Added fix to arch models which allows for user specified parameters instead of estimated parameters.

  • Added Hansen’s Skew T distribution to distribution (Stanislav Khrapov)

  • Updated IPython notebooks to latest IPython version

  • Bug and typo fixes to IPython notebooks

  • Changed MCS to give a pvalue of 1.0 to best model. Previously was NaN

  • Removed hold_back and last_obs from model initialization and to fit method to simplify estimating a model over alternative samples (e.g., rolling window estimation)

  • Redefined hold_back to only accept integers so that is simply defined the number of observations held back. This number is now held out of the sample irrespective of the value of first_obs.

Version 2

Version 2.2

  • Added multiple comparison procedures

  • Typographical and other small changes

Version 2.1

  • Add unit root tests: * Augmented Dickey-Fuller * Dickey-Fuller GLS * Phillips-Perron * KPSS * Variance Ratio

  • Removed deprecated locations for ARCH modeling functions

Version 1

Version 1.1

  • Refactored to move the univariate routines to arch.univariate and added deprecation warnings in the old locations

  • Enable numba jit compilation in the python recursions

  • Added a bootstrap framework, which will be used in future versions. The bootstrap framework is general purpose and can be used via high-level functions such as conf_int or cov, or as a low level iterator using bootstrap