Skip to main content

Python 的 ARCH

项目描述

拱

自回归条件异方差 (ARCH) 和其他金融计量经济学工具,用 Python 编写(使用 Cython 和/或 Numba 来提高性能)

公制
最新发布的 PyPI 版本
康达锻造版
持续集成 构建状态
Appveyor 构建状态
覆盖范围 编解码器
代码质量 代码质量:Python
警报总数
Codacy 徽章
代码节拍徽章
引文 DOI
文档 文件状态

模块内容

蟒蛇 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(构建文档)

安装说明

  1. 如果未安装 Cython,则将按照已ARCH_NO_BINARY=1设置的方式安装该软件包。
  2. 安装程序不会验证这些要求。请确保已安装这些。

项目详情