วิธีดำเนินการทดสอบ kpss ใน python
การทดสอบ KPSS สามารถใช้เพื่อพิจารณาว่าอนุกรมเวลามีแนวโน้มคงที่หรือไม่
การทดสอบนี้ใช้สมมติฐานว่างและทางเลือกต่อไปนี้:
- H 0 : อนุกรมเวลามีแนวโน้มคงที่
 - H A : อนุกรมเวลา ไม่มี แนวโน้มคงที่
 
หาก ค่า p ของการทดสอบต่ำกว่าระดับนัยสำคัญที่กำหนด (เช่น α = 0.05) เราจะปฏิเสธสมมติฐานว่างและสรุปว่าอนุกรมเวลาไม่มีแนวโน้มคงที่
มิฉะนั้น เราจะล้มเหลวในการปฏิเสธสมมติฐานที่เป็นโมฆะ
ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการทดสอบ KPSS ใน Python
ตัวอย่างที่ 1: การทดสอบ KPSS ใน Python (พร้อมข้อมูลที่อยู่กับที่)
ขั้นแรก เรามาสร้างข้อมูลปลอมใน Python เพื่อใช้กับ:
 import numpy as np
import matplotlib. pyplot as plt
#make this example reproducible
n.p. random . seed ( 1 )
#create time series data
data = np. random . normal (size= 100 )
#create line plot of time series data
plt. plot (data) 

เราสามารถใช้ฟังก์ชัน kpss() จากแพ็คเกจ statsmodels เพื่อทำการทดสอบ KPSS กับข้อมูลอนุกรมเวลานี้:
 import statsmodels. api as sm
#perform KPSS test
sm. tsa . stattools . kpss (data, regression=' ct ')
(0.0477617848370993,
 0.1,
 1,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})
InterpolationWarning: The test statistic is outside of the range of p-values available
in the look-up table. The actual p-value is greater than the p-value returned.
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- สถิติการทดสอบ KPSS: 0.04776
 - ค่า p: 0.1
 - พารามิเตอร์ชดเชยการตัดทอน: 1
 - ค่าวิกฤตที่ 10% , 5% , 2.5% และ 1%
 
ค่า p คือ 0.1 เนื่องจากค่านี้ไม่น้อยกว่า 0.05 เราจึงล้มเหลวในการปฏิเสธสมมติฐานว่างของการทดสอบ KPSS
ซึ่งหมายความว่าเราสามารถสรุปได้ว่าอนุกรมเวลามีแนวโน้มคงที่
หมายเหตุ 1 : จริงๆ แล้วค่า p ยังคงมากกว่า 0.1 แต่ค่าต่ำสุดที่ฟังก์ชัน kpss() จะสร้างคือ 0.1
หมายเหตุ 2 : คุณต้องใช้อาร์กิวเมนต์ regression=’ct’ เพื่อระบุว่าสมมติฐานว่างของการทดสอบคือข้อมูลมีแนวโน้มคงที่
ตัวอย่างที่ 2: การทดสอบ KPSS ใน Python (พร้อมข้อมูลที่ไม่คงที่)
ขั้นแรก เรามาสร้างข้อมูลปลอมใน Python เพื่อใช้กับ:
 import numpy as np
import matplotlib. pyplot as plt
#make this example reproducible
n.p. random . seed ( 1 )
#create time series data
data =np. array ([0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45])
#create line plot of time series data
plt. plot (data) 

อีกครั้ง เราสามารถใช้ฟังก์ชัน kpss() จากแพ็คเกจ statsmodels เพื่อทำการทดสอบ KPSS กับข้อมูลอนุกรมเวลานี้:
 import statsmodels. api as sm
#perform KPSS test
sm. tsa . stattools . kpss (data, regression=' ct ')
(0.15096358910843685,
 0.04586367574296928,
 3,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- สถิติการทดสอบ KPSS: 0.1509
 - ค่า p: 0.0458
 - พารามิเตอร์ชดเชยการตัดทอน: 3
 - ค่าวิกฤตที่ 10% , 5% , 2.5% และ 1%
 
ค่า p คือ 0.0458 ค่านี้น้อยกว่า 0.05 เราปฏิเสธสมมติฐานว่างของการทดสอบ KPSS
ซึ่งหมายความว่าอนุกรมเวลา ไม่ คงที่
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน kpss() ได้จากแพ็คเกจ statsmodels ที่นี่
 แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานกับข้อมูลอนุกรมเวลาใน Python:
 วิธีทำการทดสอบ Augmented Dickey-Fuller ใน Python
 วิธีดำเนินการทดสอบแนวโน้ม Mann-Kendall ใน Python
 วิธีพล็อตอนุกรมเวลาใน Matplotlib