开始使用免费开始使用

比特币与以太坊是否协整?

协整检验通常分两步:先将一个时间序列回归到另一个时间序列以得到协整向量,然后对回归残差进行 ADF 检验。上一例中无需执行第一步,因为我们隐含假设协整向量为 \(\small (1,-1)\)。也就是说,我们在做单位换算后直接取两条序列的差。在本题中,您需要完成这两个步骤。

您将把一种加密货币比特币(BTC)的价格回归到另一种加密货币以太坊(ETH)的价格上。若回归系数记为 \(\small b\),则协整向量为 \(\small (1,-b)\)。随后对 BTC \(\small - b \) ETH 进行 ADF 检验。比特币和以太坊的价格已预先加载在 DataFrame BTCETH 中。

本练习是课程的一部分

Python 中的时间序列分析

查看课程

练习说明

  • 导入回归所需的 statsmodels 模块和 adfuller 函数。
  • 使用 sm.add_constant()ETH DataFrame 添加常数项。
  • 使用 sm.OLS(y,x).fit()BTC 回归到 ETH 上,其中 y 为因变量,x 为自变量,并将结果保存到 result
    • 截距在 result.params[0],斜率在 result.params[1]
  • 对 BTC \(\small - b \) ETH 运行 ADF 检验。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import the statsmodels module for regression and the adfuller function
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller

# Regress BTC on ETH
ETH = sm.___(ETH)
result = sm.OLS(___,___).fit()

# Compute ADF
b = result.params[1]
adf_stats = adfuller(___['Price'] - b*___['Price'])
print("The p-value for the ADF test is ", adf_stats[1])
编辑并运行代码