สุนัขบนสายจูง? (ตอนที่ 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)
- อาร์กิวเมนต์ของ adfuller ต้องเป็น Series ดังนั้นต้องระบุคอลัมน์
- ทำแบบเดียวกันสำหรับ 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])