วิธีดำเนินการทดสอบ 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 มาก ดังนั้นเราจึงปฏิเสธสมมติฐานว่างของการทดสอบอีกครั้ง และสรุปว่าส่วนที่เหลือไม่เป็นอิสระ

คุณสามารถเลือกค่าที่ต่ำกว่าหรือสูงกว่าเพื่อใช้สำหรับออฟเซ็ตได้ ทั้งนี้ขึ้นอยู่กับสถานการณ์เฉพาะของคุณ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *