Cara melakukan tes breusch-godfrey dengan python
Salah satu asumsi utama regresi linier adalah tidak ada korelasi antar residu, yaitu residu bersifat independen.
Untuk menguji autokorelasi orde pertama, kita dapat melakukan uji Durbin-Watson . Namun, jika kita ingin menguji autokorelasi pada orde yang lebih tinggi, kita perlu melakukan uji Breusch-Godfrey .
Pengujian ini menggunakan asumsi sebagai berikut :
H 0 (hipotesis nol): Tidak ada autokorelasi dengan orde yang kurang dari atau sama dengan p .
H A (hipotesis alternatif): Terdapat autokorelasi dengan orde tertentu yang kurang dari atau sama dengan p .
Statistik uji mengikuti distribusi Chi-kuadrat dengan derajat kebebasan p .
Jika nilai p yang sesuai dengan statistik pengujian ini berada di bawah tingkat signifikansi tertentu (misalnya 0,05), maka kita dapat menolak hipotesis nol dan menyimpulkan bahwa terdapat autokorelasi antara residu pada tingkat tertentu yang lebih rendah atau sama dengan p .
Untuk melakukan tes Breusch-Godfrey dengan Python, Anda dapat menggunakan fungsi acorr_breusch_godfrey() dari perpustakaan statsmodels .
Contoh langkah demi langkah berikut menjelaskan cara melakukan tes Breusch-Godfrey dengan Python.
Langkah 1: Buat datanya
Pertama, buat dataset yang berisi dua variabel prediktor (x1 dan x2) dan variabel respon (y).
import pandas as pd #create dataset df = pd. DataFrame ({' x1 ': [3, 4, 4, 5, 8, 9, 11, 13, 14, 16, 17, 20], ' x2 ': [7, 7, 8, 8, 12, 4, 5, 15, 9, 17, 19, 19], ' y ': [24, 25, 25, 27, 29, 31, 34, 34, 39, 30, 40, 49]}) #view first five rows of dataset df. head () x1 x2 y 0 3 7 24 1 4 7 25 2 4 8 25 3 5 8 27 4 8 12 29
Langkah 2: Sesuaikan model regresi
Kemudian kita dapat menyesuaikan model regresi linier berganda dengan menggunakan x1 dan x2 sebagai variabel prediktor dan y sebagai variabel respon .
import statsmodels. api as sm
#define response variable
y = df[' y ']
#define predictor variables
x = df[[' x1 ', ' x2 ']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit linear regression model
model = sm. OLS (y,x). fit ()
Langkah 3: Lakukan tes Breusch-Godfrey
Selanjutnya kita akan melakukan uji Breusch-Godfrey untuk menguji autokorelasi antara residu pada orde p . Untuk contoh ini, kita akan memilih p = 3.
import statsmodels. stats . diagnosis as dg
#perform Breusch-Godfrey test at order p = 3
print (dg. acorr_breusch_godfrey (model, nlags= 3 ))
(8.70314827, 0.0335094873, 5.27967224, 0.0403980576)
Nilai keluaran pertama mewakili statistik uji dan nilai kedua mewakili nilai p yang sesuai.
Dari hasilnya kita dapat melihat hal berikut:
- Statistik uji X 2 = 8,7031
- Nilai P = 0,0335
Karena nilai p ini kurang dari 0,05, kita dapat menolak hipotesis nol dan menyimpulkan bahwa terdapat autokorelasi antara residu berorde kurang dari atau sama dengan 3.
Cara mengatasi autokorelasi
Jika Anda menolak hipotesis nol dan menyimpulkan bahwa terdapat autokorelasi dalam residu, maka Anda memiliki beberapa opsi untuk memperbaiki masalah ini jika Anda menganggapnya cukup serius:
- Untuk korelasi serial positif, pertimbangkan untuk menambahkan lag variabel dependen dan/atau independen ke dalam model.
- Untuk korelasi serial negatif, pastikan tidak ada variabel yang mengalami over-delayed .
- Untuk korelasi musiman, pertimbangkan untuk menambahkan boneka musiman ke model.
Sumber daya tambahan
Panduan Lengkap Regresi Linier dengan Python
Cara melakukan tes Durbin-Watson dengan Python
Cara melakukan tes Ljung-Box dengan Python