Bitcoin và Ethereum có đồng liên kết không?
Đồng liên kết gồm hai bước: hồi quy một chuỗi thời gian theo chuỗi còn lại để lấy vector đồng liên kết, rồi chạy kiểm định ADF trên phần dư của hồi quy. Ở ví dụ trước, bạn không cần làm bước đầu vì ngầm giả định vector đồng liên kết là \(\small (1,-1)\). Nói cách khác, bạn lấy hiệu giữa hai chuỗi (sau khi đổi đơn vị). Ở đây, bạn sẽ làm cả hai bước.
Bạn sẽ hồi quy giá của một đồng tiền mã hóa, bitcoin (BTC), theo đồng khác, ethereum (ETH). Nếu hệ số hồi quy là \(\small b\), thì vector đồng liên kết đơn giản là \(\small (1,-b)\). Sau đó chạy kiểm định ADF trên BTC \(\small - b \) ETH. Giá Bitcoin và Ethereum đã được nạp sẵn trong các DataFrame BTC và ETH.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian với Python
Hướng dẫn bài tập
- Import mô-đun statsmodels để hồi quy và hàm
adfuller - Thêm hằng số vào DataFrame
ETHbằngsm.add_constant() - Hồi quy
BTCtheoETHbằngsm.OLS(y,x).fit(), trong đó y là biến phụ thuộc và x là biến độc lập, và lưu kết quả vàoresult.- Hệ số chặn nằm ở
result.params[0]và hệ số góc ởresult.params[1]
- Hệ số chặn nằm ở
- Chạy kiểm định ADF trên BTC \(\small - b \) ETH
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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])