Cara melakukan tes durbin-watson dengan python
Salah satu asumsi regresi linier adalah tidak adanya korelasi antar residu. Dengan kata lain, residu diasumsikan independen.
Salah satu cara untuk menentukan apakah asumsi ini terpenuhi adalah dengan melakukan uji Durbin-Watson , yang digunakan untuk mendeteksi adanya autokorelasi pada residu regresi . Pengujian ini menggunakan asumsi berikut:
H 0 (hipotesis nol): Tidak ada korelasi antar residu.
H A (hipotesis alternatif): Residunya bersifat autokorelasi.
Statistik uji kira-kira sama dengan 2*(1-r) di mana r adalah autokorelasi sampel dari residu. Dengan demikian, statistik pengujian akan selalu antara 0 dan 4 dengan interpretasi sebagai berikut:
- Statistik uji 2 menunjukkan tidak ada korelasi serial.
- Semakin dekat statistik uji ke 0 , semakin banyak bukti adanya korelasi serial positif.
- Semakin dekat statistik uji ke 4 , semakin banyak bukti adanya korelasi serial negatif.
Biasanya, nilai statistik uji antara 1,5 dan 2,5 dianggap normal. Namun, nilai di luar rentang tersebut dapat menunjukkan bahwa autokorelasi merupakan suatu masalah.
Tutorial ini menjelaskan cara melakukan tes Durbin-Watson dengan Python.
Contoh: Tes Durbin-Watson dengan Python
Misalkan kita memiliki kumpulan data berikut yang menggambarkan atribut 10 pemain bola basket:
import numpy as np import pandas as pd #create dataset df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view dataset df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
Misalkan kita menyesuaikan model regresi linier berganda dengan menggunakan peringkat sebagai variabel respons dan tiga variabel lainnya sebagai variabel prediktor:
from statsmodels.formula.api import ols #fit multiple linear regression model model = ols('rating ~ points + assists + rebounds', data=df). fit () #view model summary print(model.summary())
Kita dapat melakukan Watson Durbin menggunakan fungsi durbin_watson() dari perpustakaan statsmodels untuk menentukan apakah residu model regresi berkorelasi otomatis:
from statsmodels.stats.stattools import durbin_watson #perform Durbin-Watson test durbin_watson(model.resid) 2,392
Statistik pengujiannya adalah 2,392 . Karena nilai ini antara 1,5 dan 2,5, kami menganggap autokorelasi tidak menjadi masalah dalam model regresi ini.
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:
1. Untuk korelasi serial positif, pertimbangkan untuk menambahkan lag variabel dependen dan/atau independen ke dalam model.
2. Untuk korelasi serial negatif, pastikan tidak ada variabel Anda yang over-delayed .
3. Untuk korelasi musiman, pertimbangkan untuk menambahkan boneka musiman ke model.