%global _empty_manifest_terminate_build 0
Name: python-arch
Version: 5.4.0
Release: 1
Summary: ARCH for Python
License: NCSA
URL: https://github.com/bashtage/arch
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f0/f6/4306a2c1171e562806e927632398bc3a0eeb6063cbb99e781820eb62aecc/arch-5.4.0.tar.gz
Requires: python3-numpy
Requires: python3-scipy
Requires: python3-pandas
Requires: python3-statsmodels
Requires: python3-property-cached
%description
# arch
[![arch](https://bashtage.github.io/arch/doc/_static/images/color-logo-256.png)](https://github.com/bashtage/arch)
Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for
financial econometrics, written in Python (with Cython and/or Numba used
to improve performance)
| Metric | |
| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Latest Release** | [![PyPI version](https://badge.fury.io/py/arch.svg)](https://badge.fury.io/py/arch) |
| | [![conda-forge version](https://anaconda.org/conda-forge/arch-py/badges/version.svg)](https://anaconda.org/conda-forge/arch-py) |
| **Continuous Integration** | [![Build Status](https://dev.azure.com/kevinksheppard0207/kevinksheppard/_apis/build/status/bashtage.arch?branchName=main)](https://dev.azure.com/kevinksheppard0207/kevinksheppard/_build/latest?definitionId=1&branchName=main) |
| | [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/nmt02u7jwcgx7i2x?svg=true)](https://ci.appveyor.com/project/bashtage/arch/branch/main) |
| **Coverage** | [![codecov](https://codecov.io/gh/bashtage/arch/branch/main/graph/badge.svg)](https://codecov.io/gh/bashtage/arch) |
| **Code Quality** | [![Code Quality: Python](https://img.shields.io/lgtm/grade/python/g/bashtage/arch.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/bashtage/arch/context:python) |
| | [![Total Alerts](https://img.shields.io/lgtm/alerts/g/bashtage/arch.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/bashtage/arch/alerts) |
| | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/93f6fd90209842bf97fd20fda8db70ef)](https://www.codacy.com/manual/bashtage/arch?utm_source=github.com&utm_medium=referral&utm_content=bashtage/arch&utm_campaign=Badge_Grade) |
| | [![codebeat badge](https://codebeat.co/badges/18a78c15-d74b-4820-b56d-72f7e4087532)](https://codebeat.co/projects/github-com-bashtage-arch-main) |
| **Citation** | [![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.593254.svg)](https://doi.org/10.5281/zenodo.593254) |
| **Documentation** | [![Documentation Status](https://readthedocs.org/projects/arch/badge/?version=latest)](https://arch.readthedocs.org/en/latest/) |
## Module Contents
- [Univariate ARCH Models](#volatility)
- [Unit Root Tests](#unit-root)
- [Cointegration Testing and Analysis](#cointegration)
- [Bootstrapping](#bootstrap)
- [Multiple Comparison Tests](#multiple-comparison)
- [Long-run Covariance Estimation](#long-run-covariance)
### Python 3
`arch` is Python 3 only. Version 4.8 is the final version that supported Python 2.7.
## Documentation
Documentation from the main branch is hosted on
[my github pages](https://bashtage.github.io/arch/).
Released documentation is hosted on
[read the docs](https://arch.readthedocs.org/en/latest/).
## More about ARCH
More information about ARCH and related models is available in the notes and
research available at [Kevin Sheppard's site](https://www.kevinsheppard.com).
## Contributing
Contributions are welcome. There are opportunities at many levels to contribute:
- Implement new volatility process, e.g., FIGARCH
- Improve docstrings where unclear or with typos
- Provide examples, preferably in the form of IPython notebooks
## Examples
### Volatility Modeling
- Mean models
- Constant mean
- Heterogeneous Autoregression (HAR)
- Autoregression (AR)
- Zero mean
- Models with and without exogenous regressors
- Volatility models
- ARCH
- GARCH
- TARCH
- EGARCH
- EWMA/RiskMetrics
- Distributions
- Normal
- Student's T
- Generalized Error Distribution
See the [univariate volatility example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/univariate_volatility_modeling.ipynb) for a more complete overview.
```python
import datetime as dt
import pandas_datareader.data as web
st = dt.datetime(1990,1,1)
en = dt.datetime(2014,1,1)
data = web.get_data_yahoo('^FTSE', start=st, end=en)
returns = 100 * data['Adj Close'].pct_change().dropna()
from arch import arch_model
am = arch_model(returns)
res = am.fit()
```
### Unit Root Tests
- Augmented Dickey-Fuller
- Dickey-Fuller GLS
- Phillips-Perron
- KPSS
- Zivot-Andrews
- Variance Ratio tests
See the [unit root testing example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/unitroot_examples.ipynb)
for examples of testing series for unit roots.
### Cointegration Testing and Analysis
- Tests
- Engle-Granger Test
- Phillips-Ouliaris Test
- Cointegration Vector Estimation
- Canonical Cointegrating Regression
- Dynamic OLS
- Fully Modified OLS
See the [cointegration testing example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/unitroot_cointegration_examples.ipynb)
for examples of testing series for cointegration.
### Bootstrap
- Bootstraps
- IID Bootstrap
- Stationary Bootstrap
- Circular Block Bootstrap
- Moving Block Bootstrap
- Methods
- Confidence interval construction
- Covariance estimation
- Apply method to estimate model across bootstraps
- Generic Bootstrap iterator
See the [bootstrap example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/bootstrap_examples.ipynb)
for examples of bootstrapping the Sharpe ratio and a Probit model from statsmodels.
```python
# Import data
import datetime as dt
import pandas as pd
import numpy as np
import pandas_datareader.data as web
start = dt.datetime(1951,1,1)
end = dt.datetime(2014,1,1)
sp500 = web.get_data_yahoo('^GSPC', start=start, end=end)
start = sp500.index.min()
end = sp500.index.max()
monthly_dates = pd.date_range(start, end, freq='M')
monthly = sp500.reindex(monthly_dates, method='ffill')
returns = 100 * monthly['Adj Close'].pct_change().dropna()
# Function to compute parameters
def sharpe_ratio(x):
mu, sigma = 12 * x.mean(), np.sqrt(12 * x.var())
return np.array([mu, sigma, mu / sigma])
# Bootstrap confidence intervals
from arch.bootstrap import IIDBootstrap
bs = IIDBootstrap(returns)
ci = bs.conf_int(sharpe_ratio, 1000, method='percentile')
```
### Multiple Comparison Procedures
- Test of Superior Predictive Ability (SPA), also known as the Reality
Check or Bootstrap Data Snooper
- Stepwise (StepM)
- Model Confidence Set (MCS)
See the [multiple comparison example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/multiple-comparison_examples.ipynb)
for examples of the multiple comparison procedures.
### Long-run Covariance Estimation
Kernel-based estimators of long-run covariance including the
Bartlett kernel which is known as Newey-West in econometrics.
Automatic bandwidth selection is available for all of the
covariance estimators.
```python
from arch.covariance.kernel import Bartlett
from arch.data import nasdaq
data = nasdaq.load()
returns = data[["Adj Close"]].pct_change().dropna()
cov_est = Bartlett(returns ** 2)
# Get the long-run covariance
cov_est.cov.long_run
```
## Requirements
These requirements reflect the testing environment. It is possible
that arch will work with older versions.
- Python (3.7+)
- NumPy (1.17+)
- SciPy (1.3+)
- Pandas (1.0+)
- statsmodels (0.11+)
- matplotlib (3+), optional
- property-cached (1.6.4+), optional
### Optional Requirements
- Numba (0.49+) will be used if available **and** when installed without building the binary modules. In order to ensure that these are not built, you must set the environment variable `ARCH_NO_BINARY=1` and install without the wheel.
```shell
export ARCH_NO_BINARY=1
python -m pip install arch
```
or if using Powershell on windows
```powershell
$env:ARCH_NO_BINARY=1
python -m pip install arch
```
- jupyter and notebook are required to run the notebooks
## Installing
Standard installation with a compiler requires Cython. If you do not
have a compiler installed, the `arch` should still install. You will
see a warning but this can be ignored. If you don't have a compiler,
`numba` is strongly recommended.
### pip
Releases are available PyPI and can be installed with `pip`.
```shell
pip install arch
```
You can alternatively install the latest version from GitHub
```bash
pip install git+https://github.com/bashtage/arch.git
```
Setting the environment variable `ARCH_NO_BINARY=1` can be used to
disable compilation of the extensions.
### Anaconda
`conda` users can install from conda-forge,
```bash
conda install arch-py -c conda-forge
```
**Note**: The conda-forge name is `arch-py`.
### Windows
Building extension using the community edition of Visual Studio is
simple when using Python 3.7 or later. Building is not necessary when numba
is installed since just-in-time compiled code (numba) runs as fast as
ahead-of-time compiled extensions.
### Developing
The development requirements are:
- Cython (0.29+, if not using ARCH_NO_BINARY=1)
- pytest (For tests)
- sphinx (to build docs)
- sphinx_material (to build docs)
- jupyter, notebook and nbsphinx (to build docs)
### Installation Notes
1. If Cython is not installed, the package will be installed
as-if `ARCH_NO_BINARY=1` was set.
2. Setup does not verify these requirements. Please ensure these are
installed.
%package -n python3-arch
Summary: ARCH for Python
Provides: python-arch
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
BuildRequires: python3-cffi
BuildRequires: gcc
BuildRequires: gdb
%description -n python3-arch
# arch
[![arch](https://bashtage.github.io/arch/doc/_static/images/color-logo-256.png)](https://github.com/bashtage/arch)
Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for
financial econometrics, written in Python (with Cython and/or Numba used
to improve performance)
| Metric | |
| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Latest Release** | [![PyPI version](https://badge.fury.io/py/arch.svg)](https://badge.fury.io/py/arch) |
| | [![conda-forge version](https://anaconda.org/conda-forge/arch-py/badges/version.svg)](https://anaconda.org/conda-forge/arch-py) |
| **Continuous Integration** | [![Build Status](https://dev.azure.com/kevinksheppard0207/kevinksheppard/_apis/build/status/bashtage.arch?branchName=main)](https://dev.azure.com/kevinksheppard0207/kevinksheppard/_build/latest?definitionId=1&branchName=main) |
| | [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/nmt02u7jwcgx7i2x?svg=true)](https://ci.appveyor.com/project/bashtage/arch/branch/main) |
| **Coverage** | [![codecov](https://codecov.io/gh/bashtage/arch/branch/main/graph/badge.svg)](https://codecov.io/gh/bashtage/arch) |
| **Code Quality** | [![Code Quality: Python](https://img.shields.io/lgtm/grade/python/g/bashtage/arch.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/bashtage/arch/context:python) |
| | [![Total Alerts](https://img.shields.io/lgtm/alerts/g/bashtage/arch.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/bashtage/arch/alerts) |
| | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/93f6fd90209842bf97fd20fda8db70ef)](https://www.codacy.com/manual/bashtage/arch?utm_source=github.com&utm_medium=referral&utm_content=bashtage/arch&utm_campaign=Badge_Grade) |
| | [![codebeat badge](https://codebeat.co/badges/18a78c15-d74b-4820-b56d-72f7e4087532)](https://codebeat.co/projects/github-com-bashtage-arch-main) |
| **Citation** | [![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.593254.svg)](https://doi.org/10.5281/zenodo.593254) |
| **Documentation** | [![Documentation Status](https://readthedocs.org/projects/arch/badge/?version=latest)](https://arch.readthedocs.org/en/latest/) |
## Module Contents
- [Univariate ARCH Models](#volatility)
- [Unit Root Tests](#unit-root)
- [Cointegration Testing and Analysis](#cointegration)
- [Bootstrapping](#bootstrap)
- [Multiple Comparison Tests](#multiple-comparison)
- [Long-run Covariance Estimation](#long-run-covariance)
### Python 3
`arch` is Python 3 only. Version 4.8 is the final version that supported Python 2.7.
## Documentation
Documentation from the main branch is hosted on
[my github pages](https://bashtage.github.io/arch/).
Released documentation is hosted on
[read the docs](https://arch.readthedocs.org/en/latest/).
## More about ARCH
More information about ARCH and related models is available in the notes and
research available at [Kevin Sheppard's site](https://www.kevinsheppard.com).
## Contributing
Contributions are welcome. There are opportunities at many levels to contribute:
- Implement new volatility process, e.g., FIGARCH
- Improve docstrings where unclear or with typos
- Provide examples, preferably in the form of IPython notebooks
## Examples
### Volatility Modeling
- Mean models
- Constant mean
- Heterogeneous Autoregression (HAR)
- Autoregression (AR)
- Zero mean
- Models with and without exogenous regressors
- Volatility models
- ARCH
- GARCH
- TARCH
- EGARCH
- EWMA/RiskMetrics
- Distributions
- Normal
- Student's T
- Generalized Error Distribution
See the [univariate volatility example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/univariate_volatility_modeling.ipynb) for a more complete overview.
```python
import datetime as dt
import pandas_datareader.data as web
st = dt.datetime(1990,1,1)
en = dt.datetime(2014,1,1)
data = web.get_data_yahoo('^FTSE', start=st, end=en)
returns = 100 * data['Adj Close'].pct_change().dropna()
from arch import arch_model
am = arch_model(returns)
res = am.fit()
```
### Unit Root Tests
- Augmented Dickey-Fuller
- Dickey-Fuller GLS
- Phillips-Perron
- KPSS
- Zivot-Andrews
- Variance Ratio tests
See the [unit root testing example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/unitroot_examples.ipynb)
for examples of testing series for unit roots.
### Cointegration Testing and Analysis
- Tests
- Engle-Granger Test
- Phillips-Ouliaris Test
- Cointegration Vector Estimation
- Canonical Cointegrating Regression
- Dynamic OLS
- Fully Modified OLS
See the [cointegration testing example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/unitroot_cointegration_examples.ipynb)
for examples of testing series for cointegration.
### Bootstrap
- Bootstraps
- IID Bootstrap
- Stationary Bootstrap
- Circular Block Bootstrap
- Moving Block Bootstrap
- Methods
- Confidence interval construction
- Covariance estimation
- Apply method to estimate model across bootstraps
- Generic Bootstrap iterator
See the [bootstrap example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/bootstrap_examples.ipynb)
for examples of bootstrapping the Sharpe ratio and a Probit model from statsmodels.
```python
# Import data
import datetime as dt
import pandas as pd
import numpy as np
import pandas_datareader.data as web
start = dt.datetime(1951,1,1)
end = dt.datetime(2014,1,1)
sp500 = web.get_data_yahoo('^GSPC', start=start, end=end)
start = sp500.index.min()
end = sp500.index.max()
monthly_dates = pd.date_range(start, end, freq='M')
monthly = sp500.reindex(monthly_dates, method='ffill')
returns = 100 * monthly['Adj Close'].pct_change().dropna()
# Function to compute parameters
def sharpe_ratio(x):
mu, sigma = 12 * x.mean(), np.sqrt(12 * x.var())
return np.array([mu, sigma, mu / sigma])
# Bootstrap confidence intervals
from arch.bootstrap import IIDBootstrap
bs = IIDBootstrap(returns)
ci = bs.conf_int(sharpe_ratio, 1000, method='percentile')
```
### Multiple Comparison Procedures
- Test of Superior Predictive Ability (SPA), also known as the Reality
Check or Bootstrap Data Snooper
- Stepwise (StepM)
- Model Confidence Set (MCS)
See the [multiple comparison example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/multiple-comparison_examples.ipynb)
for examples of the multiple comparison procedures.
### Long-run Covariance Estimation
Kernel-based estimators of long-run covariance including the
Bartlett kernel which is known as Newey-West in econometrics.
Automatic bandwidth selection is available for all of the
covariance estimators.
```python
from arch.covariance.kernel import Bartlett
from arch.data import nasdaq
data = nasdaq.load()
returns = data[["Adj Close"]].pct_change().dropna()
cov_est = Bartlett(returns ** 2)
# Get the long-run covariance
cov_est.cov.long_run
```
## Requirements
These requirements reflect the testing environment. It is possible
that arch will work with older versions.
- Python (3.7+)
- NumPy (1.17+)
- SciPy (1.3+)
- Pandas (1.0+)
- statsmodels (0.11+)
- matplotlib (3+), optional
- property-cached (1.6.4+), optional
### Optional Requirements
- Numba (0.49+) will be used if available **and** when installed without building the binary modules. In order to ensure that these are not built, you must set the environment variable `ARCH_NO_BINARY=1` and install without the wheel.
```shell
export ARCH_NO_BINARY=1
python -m pip install arch
```
or if using Powershell on windows
```powershell
$env:ARCH_NO_BINARY=1
python -m pip install arch
```
- jupyter and notebook are required to run the notebooks
## Installing
Standard installation with a compiler requires Cython. If you do not
have a compiler installed, the `arch` should still install. You will
see a warning but this can be ignored. If you don't have a compiler,
`numba` is strongly recommended.
### pip
Releases are available PyPI and can be installed with `pip`.
```shell
pip install arch
```
You can alternatively install the latest version from GitHub
```bash
pip install git+https://github.com/bashtage/arch.git
```
Setting the environment variable `ARCH_NO_BINARY=1` can be used to
disable compilation of the extensions.
### Anaconda
`conda` users can install from conda-forge,
```bash
conda install arch-py -c conda-forge
```
**Note**: The conda-forge name is `arch-py`.
### Windows
Building extension using the community edition of Visual Studio is
simple when using Python 3.7 or later. Building is not necessary when numba
is installed since just-in-time compiled code (numba) runs as fast as
ahead-of-time compiled extensions.
### Developing
The development requirements are:
- Cython (0.29+, if not using ARCH_NO_BINARY=1)
- pytest (For tests)
- sphinx (to build docs)
- sphinx_material (to build docs)
- jupyter, notebook and nbsphinx (to build docs)
### Installation Notes
1. If Cython is not installed, the package will be installed
as-if `ARCH_NO_BINARY=1` was set.
2. Setup does not verify these requirements. Please ensure these are
installed.
%package help
Summary: Development documents and examples for arch
Provides: python3-arch-doc
%description help
# arch
[![arch](https://bashtage.github.io/arch/doc/_static/images/color-logo-256.png)](https://github.com/bashtage/arch)
Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for
financial econometrics, written in Python (with Cython and/or Numba used
to improve performance)
| Metric | |
| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Latest Release** | [![PyPI version](https://badge.fury.io/py/arch.svg)](https://badge.fury.io/py/arch) |
| | [![conda-forge version](https://anaconda.org/conda-forge/arch-py/badges/version.svg)](https://anaconda.org/conda-forge/arch-py) |
| **Continuous Integration** | [![Build Status](https://dev.azure.com/kevinksheppard0207/kevinksheppard/_apis/build/status/bashtage.arch?branchName=main)](https://dev.azure.com/kevinksheppard0207/kevinksheppard/_build/latest?definitionId=1&branchName=main) |
| | [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/nmt02u7jwcgx7i2x?svg=true)](https://ci.appveyor.com/project/bashtage/arch/branch/main) |
| **Coverage** | [![codecov](https://codecov.io/gh/bashtage/arch/branch/main/graph/badge.svg)](https://codecov.io/gh/bashtage/arch) |
| **Code Quality** | [![Code Quality: Python](https://img.shields.io/lgtm/grade/python/g/bashtage/arch.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/bashtage/arch/context:python) |
| | [![Total Alerts](https://img.shields.io/lgtm/alerts/g/bashtage/arch.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/bashtage/arch/alerts) |
| | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/93f6fd90209842bf97fd20fda8db70ef)](https://www.codacy.com/manual/bashtage/arch?utm_source=github.com&utm_medium=referral&utm_content=bashtage/arch&utm_campaign=Badge_Grade) |
| | [![codebeat badge](https://codebeat.co/badges/18a78c15-d74b-4820-b56d-72f7e4087532)](https://codebeat.co/projects/github-com-bashtage-arch-main) |
| **Citation** | [![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.593254.svg)](https://doi.org/10.5281/zenodo.593254) |
| **Documentation** | [![Documentation Status](https://readthedocs.org/projects/arch/badge/?version=latest)](https://arch.readthedocs.org/en/latest/) |
## Module Contents
- [Univariate ARCH Models](#volatility)
- [Unit Root Tests](#unit-root)
- [Cointegration Testing and Analysis](#cointegration)
- [Bootstrapping](#bootstrap)
- [Multiple Comparison Tests](#multiple-comparison)
- [Long-run Covariance Estimation](#long-run-covariance)
### Python 3
`arch` is Python 3 only. Version 4.8 is the final version that supported Python 2.7.
## Documentation
Documentation from the main branch is hosted on
[my github pages](https://bashtage.github.io/arch/).
Released documentation is hosted on
[read the docs](https://arch.readthedocs.org/en/latest/).
## More about ARCH
More information about ARCH and related models is available in the notes and
research available at [Kevin Sheppard's site](https://www.kevinsheppard.com).
## Contributing
Contributions are welcome. There are opportunities at many levels to contribute:
- Implement new volatility process, e.g., FIGARCH
- Improve docstrings where unclear or with typos
- Provide examples, preferably in the form of IPython notebooks
## Examples
### Volatility Modeling
- Mean models
- Constant mean
- Heterogeneous Autoregression (HAR)
- Autoregression (AR)
- Zero mean
- Models with and without exogenous regressors
- Volatility models
- ARCH
- GARCH
- TARCH
- EGARCH
- EWMA/RiskMetrics
- Distributions
- Normal
- Student's T
- Generalized Error Distribution
See the [univariate volatility example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/univariate_volatility_modeling.ipynb) for a more complete overview.
```python
import datetime as dt
import pandas_datareader.data as web
st = dt.datetime(1990,1,1)
en = dt.datetime(2014,1,1)
data = web.get_data_yahoo('^FTSE', start=st, end=en)
returns = 100 * data['Adj Close'].pct_change().dropna()
from arch import arch_model
am = arch_model(returns)
res = am.fit()
```
### Unit Root Tests
- Augmented Dickey-Fuller
- Dickey-Fuller GLS
- Phillips-Perron
- KPSS
- Zivot-Andrews
- Variance Ratio tests
See the [unit root testing example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/unitroot_examples.ipynb)
for examples of testing series for unit roots.
### Cointegration Testing and Analysis
- Tests
- Engle-Granger Test
- Phillips-Ouliaris Test
- Cointegration Vector Estimation
- Canonical Cointegrating Regression
- Dynamic OLS
- Fully Modified OLS
See the [cointegration testing example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/unitroot_cointegration_examples.ipynb)
for examples of testing series for cointegration.
### Bootstrap
- Bootstraps
- IID Bootstrap
- Stationary Bootstrap
- Circular Block Bootstrap
- Moving Block Bootstrap
- Methods
- Confidence interval construction
- Covariance estimation
- Apply method to estimate model across bootstraps
- Generic Bootstrap iterator
See the [bootstrap example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/bootstrap_examples.ipynb)
for examples of bootstrapping the Sharpe ratio and a Probit model from statsmodels.
```python
# Import data
import datetime as dt
import pandas as pd
import numpy as np
import pandas_datareader.data as web
start = dt.datetime(1951,1,1)
end = dt.datetime(2014,1,1)
sp500 = web.get_data_yahoo('^GSPC', start=start, end=end)
start = sp500.index.min()
end = sp500.index.max()
monthly_dates = pd.date_range(start, end, freq='M')
monthly = sp500.reindex(monthly_dates, method='ffill')
returns = 100 * monthly['Adj Close'].pct_change().dropna()
# Function to compute parameters
def sharpe_ratio(x):
mu, sigma = 12 * x.mean(), np.sqrt(12 * x.var())
return np.array([mu, sigma, mu / sigma])
# Bootstrap confidence intervals
from arch.bootstrap import IIDBootstrap
bs = IIDBootstrap(returns)
ci = bs.conf_int(sharpe_ratio, 1000, method='percentile')
```
### Multiple Comparison Procedures
- Test of Superior Predictive Ability (SPA), also known as the Reality
Check or Bootstrap Data Snooper
- Stepwise (StepM)
- Model Confidence Set (MCS)
See the [multiple comparison example notebook](https://nbviewer.ipython.org/github/bashtage/arch/blob/main/examples/multiple-comparison_examples.ipynb)
for examples of the multiple comparison procedures.
### Long-run Covariance Estimation
Kernel-based estimators of long-run covariance including the
Bartlett kernel which is known as Newey-West in econometrics.
Automatic bandwidth selection is available for all of the
covariance estimators.
```python
from arch.covariance.kernel import Bartlett
from arch.data import nasdaq
data = nasdaq.load()
returns = data[["Adj Close"]].pct_change().dropna()
cov_est = Bartlett(returns ** 2)
# Get the long-run covariance
cov_est.cov.long_run
```
## Requirements
These requirements reflect the testing environment. It is possible
that arch will work with older versions.
- Python (3.7+)
- NumPy (1.17+)
- SciPy (1.3+)
- Pandas (1.0+)
- statsmodels (0.11+)
- matplotlib (3+), optional
- property-cached (1.6.4+), optional
### Optional Requirements
- Numba (0.49+) will be used if available **and** when installed without building the binary modules. In order to ensure that these are not built, you must set the environment variable `ARCH_NO_BINARY=1` and install without the wheel.
```shell
export ARCH_NO_BINARY=1
python -m pip install arch
```
or if using Powershell on windows
```powershell
$env:ARCH_NO_BINARY=1
python -m pip install arch
```
- jupyter and notebook are required to run the notebooks
## Installing
Standard installation with a compiler requires Cython. If you do not
have a compiler installed, the `arch` should still install. You will
see a warning but this can be ignored. If you don't have a compiler,
`numba` is strongly recommended.
### pip
Releases are available PyPI and can be installed with `pip`.
```shell
pip install arch
```
You can alternatively install the latest version from GitHub
```bash
pip install git+https://github.com/bashtage/arch.git
```
Setting the environment variable `ARCH_NO_BINARY=1` can be used to
disable compilation of the extensions.
### Anaconda
`conda` users can install from conda-forge,
```bash
conda install arch-py -c conda-forge
```
**Note**: The conda-forge name is `arch-py`.
### Windows
Building extension using the community edition of Visual Studio is
simple when using Python 3.7 or later. Building is not necessary when numba
is installed since just-in-time compiled code (numba) runs as fast as
ahead-of-time compiled extensions.
### Developing
The development requirements are:
- Cython (0.29+, if not using ARCH_NO_BINARY=1)
- pytest (For tests)
- sphinx (to build docs)
- sphinx_material (to build docs)
- jupyter, notebook and nbsphinx (to build docs)
### Installation Notes
1. If Cython is not installed, the package will be installed
as-if `ARCH_NO_BINARY=1` was set.
2. Setup does not verify these requirements. Please ensure these are
installed.
%prep
%autosetup -n arch-5.4.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-arch -f filelist.lst
%dir %{python3_sitearch}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri Apr 21 2023 Python_Bot - 5.4.0-1
- Package Spec generated