開始使用免費開始

Bitcoin 和 Ethereum 有共整合嗎?

共整合通常分成兩個步驟:先以一個時間序列對另一個做迴歸以取得共整合向量,接著對該迴歸的殘差做 ADF 檢定。上一個例子裡,我們不用做第 1 步,因為我們已隱含假設共整合向量是 \(\small (1,-1)\)。也就是說,在單位轉換後,我們直接做兩個序列的差。這裡你會把兩個步驟都做完。

你會用一種加密貨幣 bitcoin(BTC)的價格去回歸另一種加密貨幣 ethereum(ETH)的價格。若將迴歸係數記為 \(\small b\),則共整合向量就是 \(\small (1,-b)\)。接著對 BTC \(\small - b \) ETH 做 ADF 檢定。Bitcoin 和 Ethereum 的價格已預先載入在 BTCETH 這兩個 DataFrame 中。

本練習屬於課程

Python 中的時間序列分析

檢視課程

練習說明

  • 匯入用於迴歸的 statsmodels 模組與 adfuller 函式。
  • 使用 sm.add_constant()ETH DataFrame 加上一個常數項。
  • 使用 sm.OLS(y,x).fit()BTCETH 做迴歸,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])
編輯並執行程式碼