เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สุนัขบนสายจูง? (ตอนที่ 2)

เพื่อยืนยันว่าราคาน้ำมันเตา (Heating Oil) และก๊าซธรรมชาติ (Natural Gas) มี cointegration ให้เริ่มด้วยการใช้การทดสอบ Dickey-Fuller แยกกันทีละตัว เพื่อแสดงว่าทั้งสองเป็น random walk จากนั้นนำการทดสอบไปใช้กับ spread ซึ่งควรปฏิเสธสมมติฐาน random walk ได้อย่างชัดเจน ราคาน้ำมันเตาและก๊าซธรรมชาติถูกโหลดไว้ล่วงหน้าใน DataFrame HO และ NG แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • รัน adfuller test บน HO และ NG แยกกัน แล้วบันทึกผลลัพธ์ (ผลลัพธ์อยู่ในรูปแบบ list)
    • อาร์กิวเมนต์ของ adfuller ต้องเป็น Series ดังนั้นต้องระบุคอลัมน์ 'Close' ด้วย
    • แสดงเฉพาะ p-value (ข้อมูลที่ index [1] ใน list)
  • ทำแบบเดียวกันสำหรับ spread โดยแปลงหน่วยของ HO อีกครั้ง และใช้คอลัมน์ 'Close' ของแต่ละ DataFrame

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import the adfuller module from statsmodels
from statsmodels.tsa.stattools import adfuller

# Compute the ADF for HO and NG
result_HO = adfuller(____)
print("The p-value for the ADF test on HO is ", result_HO[1])
result_NG = ___(NG['Close'])
print("The p-value for the ADF test on NG is ", result_NG[1])

# Compute the ADF of the spread
result_spread = adfuller(7.25 * ___ - ___)
print("The p-value for the ADF test on the spread is ", result_spread[1])
แก้ไขและรันโค้ด