كيفية إجراء اختبار kpss في بايثون


يمكن استخدام اختبار KPSS لتحديد ما إذا كانت السلسلة الزمنية لها اتجاه ثابت.

يستخدم هذا الاختبار الفرضية الصفرية والبديلة التالية:

  • H 0 : السلسلة الزمنية لها اتجاه ثابت.
  • ح أ : السلسلة الزمنية ليس لها اتجاه ثابت.

إذا كانت القيمة p للاختبار أقل من مستوى معين من الأهمية (على سبيل المثال α = 0.05)، فإننا نرفض فرضية العدم ونستنتج أن السلسلة الزمنية ليس لها اتجاه ثابت.

وإلا فإننا سوف نفشل في رفض فرضية العدم.

توضح الأمثلة التالية كيفية إجراء اختبار KPSS في Python.

مثال 1: اختبار KPSS في بايثون (مع البيانات الثابتة)

أولاً، لنقم بإنشاء بعض البيانات المزيفة في لغة بايثون للعمل عليها:

 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 في بايثون (مع بيانات غير ثابتة)

أولاً، لنقم بإنشاء بعض البيانات المزيفة في لغة بايثون للعمل عليها:

 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 هنا .

مصادر إضافية

توفر البرامج التعليمية التالية معلومات إضافية حول كيفية التعامل مع بيانات السلاسل الزمنية في بايثون:

كيفية إجراء اختبار ديكي فولر المعزز في بايثون
كيفية إجراء اختبار اتجاه مان كيندال في بايثون
كيفية رسم سلسلة زمنية في Matplotlib

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *