NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4128 most downloaded on PyPI
ARCH for Python
Last release 11 months ago
21 Oct 2025
Release timing varies
gaps range from 2 weeks to 12 months
Nearly every release is documented
notes for 47 of 48 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
48 releases · first in 2014
This is primarily a compatibility release.
This is primarily a compatibility release.
This is a bug fix and documentation release:
This is a bug fix and documentation release:
ARCHModelFixedResult.One column per quarter.
This is a minor release that fixes one unlikely to encounter bug and improves the documentation.
This is a minor release that fixes one unlikely to encounter bug and improves the documentation.
Full compatability with NumPy 2
[!NOTE] In order to use NumPy 2, the environment must consist of packages that have been built against NumPy 2.0.0rc1 or later.
This is a performance and compatibility release.
This is a performance and compatibility release.
This is a maintenance and bug-fix release:
This is a maintenance and bug-fix release:
FIGARCH models #606__future__ import reindex a no-op.This release fixes a bug that affects forecasting when:
This release fixes a bug that affects forecasting when:
This release only rolls back Cython from the 3.0.0 branch to the latest release 0.29.34. This change to allow arch to be built on conda-forge which do
This release only rolls back Cython from the 3.0.0 branch to the latest release 0.29.34. This change to allow arch to be built on conda-forge which does not have support for Cython 3.0.
This major release makes the following changes that affect the supported configurations and build system.
This major release makes the following changes that affect the supported configurations and build system.
This release fixes a non-trivial bug. It is likely the final release from the 5.x branch, and has been released so that users on Python 3.8 will not b
This release fixes a non-trivial bug. It is likely the final release from the 5.x branch, and has been released so that users on Python 3.8 will not be affected.
This is a compatibility release the improves compatibility with NumPy 1.25 (unreleased) and adds initial support for pandas copy-on-write behavior. Th
This is a compatibility release the improves compatibility with NumPy 1.25 (unreleased) and adds initial support for pandas copy-on-write behavior. There are no new features.
This is a compatibility release for pandas 2.0.
This is a compatibility release for pandas 2.0.
This release fixes some small (non-code) issues with the 5.3.0 release documentation.
This release fixes some small (non-code) issues with the 5.3.0 release documentation.
This release contains two small fixes:
This release contains two small fixes:
This is a bug fix release that fixes two small bugs.
This is a bug fix release that fixes two small bugs.
This is an enhancement that improves the DF-GLS test. It also adds official support for Python 3.10.
This is an enhancement that improves the DF-GLS test. It also adds official support for Python 3.10.
This is a small release that fixes a packaging issue.
This is a small release that fixes a packaging issue.
The IIDBootstrap.random_state property has also been deprecated in favor of IIDBootstrap.generator.
Release 5.0 contains new features and backward-incompatible changes.
trend cannot be set after the test is created.seed keyword argument to all bootstraps (e.g., IIDBootstrap and StationaryBootstrap) that allows a NumPy numpy.random.Generator to be used. The seed keyword argument also accepts legacy numpy.random.RandomState instances and integers. If an integer is passed, the random number generator is constructed by calling numpy.random.default_rng The seed keyword argument replaces the random_state keyword argument.IIDBootstrap.random_state property has also been deprecated in favor of IIDBootstrap.generator.IIDBootstrap.get_state and IIDBootstrap.set_state methods have been replaced by the IIDBootstrap.state property.seed keyword argument to all distributions (e.g., Normal and StudentsT) that allows a NumPy numpy.random.Generator to be used. The seed keyword argument also accepts legacy numpy.random.RandomState instances and integers. If an integer is passed, the random number generator is constructed by calling numpy.random.default_rng The seed keyword argument replaces the random_state keyword argument.Normal.random_state property has also been deprecated in favor of Normal.generator.ARCHInMean mean process supporting (G)ARCH-in-mean models.VolatilityProcess with VolatilityProcess.volatility_updaterthat contains a VolatilityUpdater to allow ARCHInMean to be created from different
volatility processes.Removed dependence on property-cached
Bumped minimum NumPy, SciPy, pandas, statsmodels and Cython
Added compatability with Cython 3
NumPy 1.25 fixes
Initial pandas copy-on-write support
Switched doc theme to sphinx-immaterial
Small fixes for typing issues
Compatability release with pandas 2.0
Add testing and wheel support for Python 3.11
Fixed a bug in ~arch.univariate.arch_model where power was not passed to the ~arch.univariate.FIGARCH constructor (572).
Fixed a bug that affected downstream projects due to an overly specific assert (569).
Fixed a bug in in ~arch.univariate.base.ARCHModelResult.std_resid that would raise an exception when the data used to construct the model with a NumPy array (565).
Fixed a bug in ~arch.univariate.base.ARCHModelResult.forecast and related forecast methods when producing multi-step forecasts usign simulation with exogenous variables (551).
Improved automatic lag length selection in ~arch.unitroot.DFGLS by using OLS rather than GLS detrended data when selecting the lag length. This problem was studied by Perron, P., & Qu, Z. (2007).
All unit root tests are now immutable, and so properties such as trend cannot be set after the test is created.
Added seed keyword argument to all bootstraps (e.g., ~arch.bootstrap.IIDBootstrap and ~arch.bootstrap.StationaryBootstrap) that allows a NumPy numpy.random.Generator to be used. The seed keyword argument also accepts legacy numpy.random.RandomState instances and integers. If an integer is passed, the random number generator is constructed by calling numpy.random.default_rng The seed keyword argument replaces the random_state keyword argument.
The ~arch.bootstrap.IIDBootstrap.random_state property has also been deprecated in favor of ~arch.bootstrap.IIDBootstrap.generator.
The ~arch.bootstrap.IIDBootstrap.get_state and ~arch.bootstrap.IIDBootstrap.set_state methods have been replaced by the ~arch.bootstrap.IIDBootstrap.state property.
Added seed keyword argument to all distributions (e.g., ~arch.univariate.distribution.Normal and ~arch.univariate.distribution.StudentsT) that allows a NumPy numpy.random.Generator to be used. The seed keyword argument also accepts legacy numpy.random.RandomState instances and integers. If an integer is passed, the random number generator is constructed by calling numpy.random.default_rng The seed keyword argument replaces the random_state keyword argument.
The Normal.random_state property has also been deprecated in favor of ~arch.univariate.Normal.generator.
Added ~arch.univariate.ARCHInMean mean process supporting (G)ARCH-in-mean models.
Extended ~arch.univariate.volatility.VolatilityProcess with ~arch.univariate.volatility.VolatilityProcess.volatility_updater that contains a ~arch.univariate.recursions.VolatilityUpdater to allow ~arch.univariate.ARCHInMean to be created from different volatility processes.
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
This is a feature and bug fix release. The two key new features are:
This is a feature and bug fix release. The two key new features are:
reindex=True in forecast().Removes an accidental requirement on Python 3.7
This release fixes two issues:
This is a bug-fix release that fixes a bug that affects the fitted conditional variance from EWMAVariance.
This is a bug-fix release that fixes a bug that affects the fitted conditional variance from EWMAVariance.
This is a version bump release to allow wheels to be rebuilt. There are not significant changes from 4.16.
This is a version bump release to allow wheels to be rebuilt. There are not significant changes from 4.16.
This is a feature and big-fix release:
This is a feature and big-fix release:
This is a minor release with doc fixes and other small updates.
This is a minor release with doc fixes and other small updates.
The only notable feature is PhillipsPerron.regression which returns regression results from the model estimated as part of the test.
This is a feature and bug release.
This is a feature and bug release.
arch.covariance.kernel. Examples include the
arch.covariance.kernel.Bartlett and the arch.covariance.kernel.Parzen kernels. All estimators support
automatic bandwidth selection.arch.unitroot.cointegration.engle_granger) and Phillips-Ouliaris arch.unitroot.cointegration.phillips_ouliaris) cointegration testsarch.unitroot.cointegration.CanonicalCointegratingReg, arch.unitroot.cointegration.DynamicOLS, and arch.unitroot.cointegration.FullyModifiedOLS.arch.unitroot.ADF, arch.unitroot.KPSS, arch.unitroot.PhillipsPerron, arch.unitroot.VarianceRatio, and arch.unitroot.ZivotAndrews when test specification is infeasible to the time series being too short or the required regression model having reduced rank.extra_kwargs.arch.univariate.SkewStudent which did not use the user-provided RandomState when one was provided. This prevented reproducing simulated values.Restore the vendored copy of property_cached which is required to build conda packages
Added typing support to all classes, functions, and methods.
SkewStudent.moment and SkewStudent.partial_moment.This is a feature and bug release.
This is a feature and bug release.
ARCHModelResult.std_residThis release contains 2 big fixes.
This release contains 2 big fixes.
arch_lm_test that assumed that the model data is contained in
a pandas Series.Fix an import bug that prevents conda packages from being built
This is a bug fix release:
This is a feature and bug release.
This is a feature and bug release.
auto_bandwidth to compute optimized bandwidth for a number of common kernel covariance estimators. This code was written by Michael Rabba.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 ARCHModelResult.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.ARCHModelResult.optimization_result to simplify checking for convergence of the numerical optimizer.random_state argument to HARX.forecast to allow a RandomState objects to be passed in when forecasting when method='bootstrap'. This allows the repeatable forecast to be produced.VarianceRatio that used the wrong variance in nonrobust inference with overlapping samples.This is a small release that fixes an issue identified after 4.8.0 was released where extension modules would not be correctly imported.
This is a small release that fixes an issue identified after 4.8.0 was released where extension modules would not be correctly imported.
This is a feature and bug release. Highlights include:
This is a feature and bug release. Highlights include:
IndependentSamplesBootstrap to bootstrap inference on statistics from independent samples that may
have uneven length.arch_lm_test to ARCH-LM tests on model residuals or standardized residuals.ADF when applying to very short time series.random_state when initializing a bootstrap.This is a feature and bug release:
This is a feature and bug release:
backcast in place of the automatically generated value.This is a feature release with 1 new feature:
This is a feature release with 1 new feature:
This is a feature release with 1 new feature:
This is a feature release with 1 new feature:
Packing only release to fix an issue on PyPi.
Packing only release to fix an issue on PyPi.
This is a minor release containing mostly bug fixes.
This is a minor release containing mostly bug fixes.
Changes include:
Nothing published for this version
Fixed a bug that prevented 1-step forecasts with exogenous regressors
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 containing all changes since 4.1 including:
Release containing all changes since 4.1 including:
fix from being used with a new model (:issue:156)first_obs and last_obs parameters to fix to mimic fitMinor release with bug fixes and the FixedVariance process. Adds support for 3.6 in anaconda.org.
Minor release with bug fixes and the FixedVariance process. Adds support for 3.6 in anaconda.org.
Variance forecasting to ARCH models
Variance forecasting to ARCH models
Added the keyword argument reindex to ~arch.univariate.HARX.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 ~arch.univariate.HARX.forecast. It is now possible to pass values for E_t[X_{t+h}] using the x argument.
Improved ~arch.univariate.HARX.fit performance of ARCH models.
Fixed a bug where `typing_extensions was subtly introduced as a run-time dependency.
Fixed a bug that produced incorrect conditional volatility from EWMA models (458).
Added ~arch.univariate.APARCH volatility process (443).
Added support for Python 3.9 in pyproject.toml (438).
Fixed a bug in model degree-of-freedom calculation (437).
Improved HARX initialization (417).
This is a minor release with doc fixes and other small updates. The only notable feature is ~arch.unitroot.PhillipsPerron.regression which returns regression results from the model estimated as part of the test (395).
Added Kernel-based long-run variance estimation in arch.covariance.kernel. Examples include the ~arch.covariance.kernel.Bartlett and the ~arch.covariance.kernel.Parzen kernels. All estimators suppose automatic bandwidth selection.
Improved exceptions in ~arch.unitroot.ADF, ~arch.unitroot.KPSS, ~arch.unitroot.PhillipsPerron, ~arch.unitroot.VarianceRatio, and ~arch.unitroot.ZivotAndrews when test specification is infeasible to the time series being too short or the required regression model having reduced rank (364).
Fixed a bug when using "bca" confidence intervals with extra_kwargs (366).
Added Phillips-Ouliaris (~arch.unitroot.cointegration.phillips_ouliaris) cointegration tests (360).
Added three methods to estimate cointegrating vectors: ~arch.unitroot.cointegration.CanonicalCointegratingReg, ~arch.unitroot.cointegration.DynamicOLS, and ~arch.unitroot.cointegration.FullyModifiedOLS (356, 359).
Added the Engle-Granger (~arch.unitroot.cointegration.engle_granger) cointegration test (354).
Issue warnings when unit root tests are mutated. Will raise after 5.0 is released.
Fixed a bug in arch.univariate.SkewStudent which did not use the user-provided RandomState when one was provided. This prevented reproducing simulated values (353).
Restored the vendored copy of property_cached for conda package building.
Added typing support to all classes, functions and methods (338, 341, 342, 343, 345, 346).
Fixed an issue that caused tests to fail on SciPy 1.4+ (339).
Dropped support for Python 3.5 inline with NEP 29 (334).
Added methods to compute moment and lower partial moments for standardized residuals. See, for example, ~arch.univariate.SkewStudent.moment and ~arch.univariate.SkewStudent.partial_moment (329).
Fixed a bug that produced an OverflowError when a time series has no variance (331).
Added ~arch.univariate.base.ARCHModelResult.std_resid (326).
Error if inputs are not ndarrays, DataFrames or Series (315).
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 (322).
Fixed a bug in arch_lm_test that assumed that the model data is contained in a pandas Series. (313).
Fixed a bug that can affect use in certain environments that reload modules (317).
Removed support for Python 2.7.
Added ~arch.unitroot.auto_bandwidth to compute optimized bandwidth for a number of common kernel covariance estimators (303). This code was written by Michael Rabba.
Added a parameter rescale to ~arch.univariate.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 ~arch.univariate.base.ARCHModelResult.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 (288).
Added ~arch.univariate.base.ARCHModelResult.optimization_result to simplify checking for convergence of the numerical optimizer (292).
Added random_state argument to ~arch.univariate.HARX.forecast to allow a ~numpy.random.RandomState object to be passed in when forecasting when method='bootstrap'. This allows the repeatable forecast to be produced (290).
Fixed a bug in ~arch.unitroot.VarianceRatio that used the wrong variance in nonrobust inference with overlapping samples (286).
Fixed a bug which prevented extension modules from being correctly imported.
Added Zivot-Andrews unit root test ~arch.unitroot.ZivotAndrews. This code was originally written by Jim Varanelli.
Added data dependent lag length selection to the KPSS test, ~arch.unitroot.KPSS. This code was originally written by Jim Varanelli.
Added ~arch.bootstrap.IndependentSamplesBootstrap to perform bootstrap inference on statistics from independent samples that may have uneven length (260).
Added ~arch.univariate.base.ARCHModelResult.arch_lm_test to perform ARCH-LM tests on model residuals or standardized residuals (261).
Fixed a bug in ~arch.unitroot.ADF when applying to very short time series (262).
Added ability to set the random_state when initializing a bootstrap (259).
Added support for Fractionally Integrated GARCH (FIGARCH) in ~arch.univariate.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 (248).
Added support for MIDAS volatility processes using Hyperbolic weighting in ~arch.univariate.MIDASHyperbolic (233).
Added a parameter to forecast that allows a user-provided callable random generator to be used in place of the model random generator (225).
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.
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.
Added ~arch.univariate.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.
Fixed a bug that prevented fix from being used with a new model (156).
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 (195).
Primarily doc fixes and a few bugs squished. No major new features.
Primarily doc fixes and a few bugs squished. No major new features.
Added a small number of features, primarily the fix method which allows models to be "fit" using user-specified parameters.
Added a small number of features, primarily the fix method which allows models to be "fit" using
user-specified parameters.
New release featuring many small fixes and three multiple comparison procedures:
New release featuring many small fixes and three multiple comparison procedures:
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.
Reorganized the ARCH code to allow expansion
Added multiple comparison procedures
Typographical and other small changes
Add unit root tests: * Augmented Dickey-Fuller * Dickey-Fuller GLS * Phillips-Perron * KPSS * Variance Ratio
Removed deprecated locations for ARCH modeling functions
Initial release of arch. Matches code available on pypi and binstar.
Initial release of arch. Matches code available on pypi and binstar.
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
Your coding agent can read these notes before it upgrades. Set up the MCP server →