Cara melakukan tes ljung-box dengan python


Uji Ljung-Box merupakan uji statistik yang memeriksa apakah terdapat autokorelasi dalam suatu deret waktu.

Ini menggunakan asumsi berikut:

H 0 : Residunya terdistribusi secara mandiri.

H A : Sisanya tidak dibagikan secara mandiri; mereka menunjukkan korelasi serial.

Idealnya, kami tidak ingin menolak hipotesis nol. Artinya, kita ingin nilai p pengujian lebih besar dari 0,05, karena ini berarti residu model deret waktu kita bersifat independen, yang sering kali menjadi asumsi yang kita buat saat membuat model.

Tutorial ini menjelaskan cara melakukan tes Ljung-Box dengan Python.

Contoh: Tes Ljung-Box dengan Python

Untuk melakukan pengujian Ljung-Box pada rangkaian data dengan Python, Anda dapat menggunakan fungsi acorr_ljungbox() dari pustaka statsmodels yang menggunakan sintaks berikut:

acorr_ljungbox(x, offset=Tidak Ada)

Emas:

  • x: seri data
  • lags: Jumlah kelambatan yang akan diuji

Fungsi ini mengembalikan statistik uji dan nilai p yang sesuai. Jika nilai p berada di bawah ambang batas tertentu (misalnya α = 0,05), Anda dapat menolak hipotesis nol dan menyimpulkan bahwa residu tidak terdistribusi secara independen.

Kode berikut menunjukkan cara menggunakan fungsi ini untuk melakukan pengujian Ljung-Box pada kumpulan data statsmodels bawaan yang disebut “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

Statistik ujinya adalah 107,86488 dan nilai p ujinya adalah 1,157710e-21 , yang jauh lebih kecil dari 0,05. Dengan demikian, kami menolak hipotesis nol dari pengujian tersebut dan menyimpulkan bahwa residu tidak independen.

Perhatikan bahwa kami memilih untuk menggunakan nilai offset 5 dalam contoh ini, namun Anda dapat memilih nilai apa pun yang ingin Anda gunakan untuk offset tersebut. Misalnya, kita bisa menggunakan nilai 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

Statistik uji dari tes ini adalah 343.634016 dan nilai p dari tes tersebut adalah 9.117477e-61 , yang jauh lebih kecil dari 0,05. Jadi, kami sekali lagi menolak hipotesis nol dari pengujian tersebut dan menyimpulkan bahwa residu tidak independen.

Tergantung pada situasi khusus Anda, Anda dapat memilih nilai yang lebih rendah atau lebih tinggi untuk digunakan sebagai offset.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *