วิธีดำเนินการทดสอบแนวโน้ม mann-kendall ใน python
การทดสอบแนวโน้ม Mann-Kendall ใช้เพื่อพิจารณาว่ามีแนวโน้มในข้อมูลอนุกรมเวลาหรือไม่ นี่คือการทดสอบแบบไม่ใช้พารามิเตอร์ ซึ่งหมายความว่าไม่มีการตั้งสมมติฐานเกี่ยวกับความปกติของข้อมูล
สมมติฐานการทดสอบมีดังนี้:
H 0 (สมมติฐานว่าง): ไม่มีแนวโน้มในข้อมูล
H A (สมมติฐานทางเลือก): มีแนวโน้มอยู่ในข้อมูล (นี่อาจเป็นแนวโน้มเชิงบวกหรือเชิงลบ)
หากค่า p ของการทดสอบต่ำกว่าระดับนัยสำคัญที่กำหนด (ตัวเลือกทั่วไปคือ 0.10, 0.05 และ 0.01) ก็มีหลักฐานที่มีนัยสำคัญทางสถิติว่ามีแนวโน้มอยู่ในข้อมูลจากอนุกรมเวลา
บทช่วยสอนนี้จะอธิบายวิธีการทดสอบแนวโน้ม Mann-Kendall ใน Python
ตัวอย่าง: การทดสอบแนวโน้ม Mann-Kendall ใน Python
หากต้องการทำการทดสอบแนวโน้ม Mann-Kendall ใน Python เราจะติดตั้งแพ็คเกจ pymannkendall ก่อน:
pip install pymannkendall
เมื่อเราติดตั้งแพ็คเกจนี้แล้ว เราก็สามารถทำการทดสอบแนวโน้ม Mann-Kendall บนชุดข้อมูลอนุกรมเวลาได้:
#create dataset data = [31, 29, 28, 28, 27, 26, 26, 27, 27, 27, 28, 29, 30, 29, 30, 29, 28] #perform Mann-Kendall Trend Test import pymannkendall as mk mk. original_test (data) Mann_Kendall_Test(trend='no trend', h=False, p=0.422586268671707, z=0.80194241623, Tau=0.147058823529, s=20.0, var_s=561.33333333, slope=0.0384615384615, intercept=27.692307692)
ต่อไปนี้เป็นวิธีการตีความผลการทดสอบ:
- แนวโน้ม : สิ่งนี้บ่งบอกถึงแนวโน้ม ผลลัพธ์ที่เป็นไปได้รวมถึงการเพิ่มขึ้น ลดลง หรือไม่มีแนวโน้มเลย
- h: จริงหากมีแนวโน้มอยู่ เท็จหากไม่มีแนวโน้ม
- p: ค่า p ของการทดสอบ
- z: สถิติการทดสอบการทำให้เป็นมาตรฐาน
- เทา: เคนดัลล์ เทา.
- s: คะแนนของแมนน์-เคนดัล
- var_s: ส่วนเบี่ยงเบน S
- ความชัน: Theil-Sen/ตัวประมาณความชัน
- การสกัดกั้น: การสกัดกั้นแนว Kendall-Theil ที่แข็งแกร่ง
ค่าหลักที่เราสนใจคือค่า p ซึ่งบอกเราว่าข้อมูลมีแนวโน้มที่มีนัยสำคัญทางสถิติหรือไม่
ในตัวอย่างนี้ ค่า p คือ 0.4226 ซึ่งไม่น้อยกว่า 0.05 จึงไม่มีแนวโน้มที่สำคัญในข้อมูลอนุกรมเวลา
นอกเหนือจากการดำเนินการทดสอบแนวโน้ม Mann-Kendall แล้ว เราสามารถสร้างการลงจุดเส้นด่วนโดยใช้ Matplotlib เพื่อแสดงภาพข้อมูลอนุกรมเวลาจริง:
import matplotlib. pyplot as plt plt. plot (data)
ครั้ง
จากแผนภูมิเราจะเห็นว่าข้อมูลกระจัดกระจายเล็กน้อยซึ่งยืนยันว่าข้อมูลไม่มีแนวโน้มที่ชัดเจน
แหล่งข้อมูลเพิ่มเติม
วิธีพล็อตอนุกรมเวลาใน Matplotlib
วิธีทำการทดสอบ Augmented Dickey-Fuller ใน Python
วิธีพล็อตหลายซีรีย์จาก Pandas DataFrame