Python 的 ARCH
项目描述
拱
自回归条件异方差 (ARCH) 和其他金融计量经济学工具,用 Python 编写(使用 Cython 和/或 Numba 来提高性能)
公制 | |
---|---|
最新发布的 | |
持续集成 | |
覆盖范围 | |
代码质量 | |
引文 | |
文档 |
模块内容
蟒蛇 3
arch
仅是 Python 3。4.8 版是支持 Python 2.7 的最终版本。
文档
来自主分支的文档托管在 我的 github 页面上。
发布的文档托管在 阅读文档上。
更多关于 ARCH
有关 ARCH 和相关模型的更多信息,请参阅Kevin Sheppard 网站上的注释和研究。
贡献
欢迎投稿。在许多层面都有机会做出贡献:
- 实施新的波动过程,例如,FIARCH
- 改进不清楚或有错别字的文档字符串
- 提供示例,最好以 IPython 笔记本的形式提供
例子
波动率建模
- 平均模型
- 常数均值
- 异构自回归 (HAR)
- 自回归 (AR)
- 零均值
- 有和没有外生回归器的模型
- 波动率模型
- 拱
- GARCH
- TARCH
- EGARCH
- EWMA/风险度量
- 分布
- 普通的
- 学生T
- 广义误差分布
有关更完整的概述,请参阅单变量波动率示例笔记本。
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()
单位根检验
- 增强的迪基-富勒
- 迪基-富勒 GLS
- 菲利普斯-佩隆
- KPSS
- 齐沃-安德鲁斯
- 方差比检验
有关单位根测试系列的示例,请参阅单位根测试示例笔记本 。
协整检验与分析
- 测试
- 恩格-格兰杰测试
- Phillips-Ouliaris 检验
- 协整向量估计
- 典型协整回归
- 动态OLS
- 完全修改的OLS
有关协整测试系列的示例,请参阅协整测试示例笔记本 。
引导程序
- 引导程序
- IID 引导程序
- 固定引导
- 圆形块引导程序
- 移动块引导程序
- 方法
- 置信区间构造
- 协方差估计
- 应用方法来跨引导程序估计模型
- 通用引导迭代器
有关从 statsmodels 引导夏普比率和 Probit 模型的示例,请参阅引导示例笔记本 。
# 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')
多重比较程序
- 高级预测能力测试 (SPA),也称为现实检查或引导数据窥探器
- 逐步(StepM)
- 模型置信集 (MCS)
有关多重比较过程的示例,请参阅多重比较示例笔记本 。
长期协方差估计
基于内核的长期协方差估计器,包括计量经济学中称为 Newey-West 的 Bartlett 内核。自动带宽选择可用于所有协方差估计器。
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
要求
这些要求反映了测试环境。arch 可能适用于旧版本。
- Python (3.7+)
- NumPy (1.17+)
- SciPy (1.3+)
- 熊猫 (1.0+)
- 统计模型 (0.11+)
- matplotlib (3+),可选
- 属性缓存(1.6.4+),可选
可选要求
- Numba (0.49+) 将在可用时使用,并且在不构建二进制模块的情况下安装。为了确保这些不被构建,您必须设置环境变量
ARCH_NO_BINARY=1
并在没有轮子的情况下安装。
export ARCH_NO_BINARY=1
python -m pip install arch
或者如果在 Windows 上使用 Powershell
$env:ARCH_NO_BINARY=1
python -m pip install arch
- 运行笔记本需要 jupyter 和 notebook
安装
使用编译器进行标准安装需要 Cython。如果您没有安装编译器,则arch
仍应安装。您将看到一条警告,但可以忽略。如果你没有编译器,
numba
强烈推荐。
点子
版本可用 PyPI 并且可以使用pip
.
pip install arch
您也可以从 GitHub 安装最新版本
pip install git+https://github.com/bashtage/arch.git
设置环境变量ARCH_NO_BINARY=1
可用于禁用扩展的编译。
蟒蛇
conda
用户可以从 conda-forge 安装,
conda install arch-py -c conda-forge
注意: conda-forge 名称是arch-py
.
视窗
使用 Python 3.7 或更高版本时,使用 Visual Studio 社区版构建扩展非常简单。安装 numba 时不需要构建,因为即时编译的代码 (numba) 运行速度与提前编译的扩展一样快。
发展
开发要求是:
- Cython(0.29+,如果不使用 ARCH_NO_BINARY=1)
- pytest(用于测试)
- sphinx(构建文档)
- sphinx_material(构建文档)
- jupyter、notebook 和 nbsphinx(构建文档)
安装说明
- 如果未安装 Cython,则将按照已
ARCH_NO_BINARY=1
设置的方式安装该软件包。 - 安装程序不会验证这些要求。请确保已安装这些。