วิธีดำเนินการทดสอบ ljung-box ใน python
การทดสอบ Ljung-Box เป็นการทดสอบทางสถิติที่ตรวจสอบว่ามีความสัมพันธ์อัตโนมัติในอนุกรมเวลาหรือไม่
มันใช้สมมติฐานดังต่อไปนี้:
H 0 : ส่วนที่เหลือจะถูกกระจายอย่างอิสระ
H A : สารตกค้างจะไม่กระจายอย่างอิสระ พวกมันแสดงความสัมพันธ์แบบอนุกรม
ตามหลักการแล้ว เราไม่อยากปฏิเสธสมมติฐานว่าง นั่นคือ เราต้องการให้ค่า p ของการทดสอบมากกว่า 0.05 เพราะนั่นหมายความว่าส่วนที่เหลือของแบบจำลองอนุกรมเวลาของเรามีความเป็นอิสระ ซึ่งมักเป็นสมมติฐานที่เราทำเมื่อสร้างแบบจำลอง
บทช่วยสอนนี้จะอธิบายวิธีดำเนินการทดสอบ Ljung-Box ใน Python
ตัวอย่าง: การทดสอบ Ljung-Box ใน Python
หากต้องการดำเนินการทดสอบ Ljung-Box กับชุดข้อมูลใน Python คุณสามารถใช้ฟังก์ชัน acorr_ljungbox() จากไลบรารี statsmodels ซึ่งใช้ไวยากรณ์ต่อไปนี้:
acorr_ljungbox(x, ออฟเซ็ต=ไม่มี)
ทอง:
- x: ชุดข้อมูล
- ล่าช้า: จำนวนความล่าช้าในการทดสอบ
ฟังก์ชันนี้ส่งคืนสถิติการทดสอบและค่า p ที่สอดคล้องกัน หากค่า p ต่ำกว่าเกณฑ์ที่กำหนด (เช่น α = 0.05) คุณสามารถปฏิเสธสมมติฐานว่างและสรุปได้ว่าส่วนที่เหลือไม่ได้กระจายอย่างอิสระ
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้เพื่อทำการทดสอบ Ljung-Box บนชุดข้อมูล statsmodels ในตัวที่เรียกว่า “SUNACTIVITY”:
import statsmodels.api as sm #load data series data = sm.datasets.sunspots.load_pandas().data #view first ten rows of data series data[:5] YEAR SUNACTIVITY 0 1700.0 5.0 1 1701.0 11.0 2 1702.0 16.0 3 1703.0 23.0 4 1704.0 36.0 #fit ARMA model to dataset res = sm. tsa . ARMA (data[" SUNACTIVITY "],(1,1)). fit (disp=-1) #perform Ljung-Box test on residuals with lag=5 sm. stats . acorr_ljungbox (res. resid , lags=[5], return_df= True ) lb_stat lb_pvalue 5 107.86488 1.157710e-21
สถิติการทดสอบคือ 107.86488 และค่า p-value ของการทดสอบคือ 1.157710e-21 ซึ่งน้อยกว่า 0.05 มาก ดังนั้นเราจึงปฏิเสธสมมติฐานว่างของการทดสอบและสรุปว่าส่วนที่เหลือไม่เป็นอิสระ
โปรดทราบว่าเราเลือกใช้ค่าออฟเซ็ตเป็น 5 ในตัวอย่างนี้ แต่คุณสามารถเลือกค่าใดๆ ที่คุณต้องการใช้สำหรับออฟเซ็ตได้ ตัวอย่างเช่น เราสามารถใช้ค่า 20 แทน:
#perform Ljung-Box test on residuals with lag=20 sm. stats . acorr_ljungbox (res. resid , lags=[20], return_df= True ) lb_stat lb_pvalue 20 343.634016 9.117477e-61
สถิติการทดสอบของการทดสอบคือ 343.634016 และค่า p-value ของการทดสอบคือ 9.117477e-61 ซึ่งน้อยกว่า 0.05 มาก ดังนั้นเราจึงปฏิเสธสมมติฐานว่างของการทดสอบอีกครั้ง และสรุปว่าส่วนที่เหลือไม่เป็นอิสระ
คุณสามารถเลือกค่าที่ต่ำกว่าหรือสูงกว่าเพื่อใช้สำหรับออฟเซ็ตได้ ทั้งนี้ขึ้นอยู่กับสถานการณ์เฉพาะของคุณ