So führen sie einen durbin-watson-test in python durch
Eine der Annahmen der linearen Regression ist, dass zwischen den Residuen keine Korrelation besteht. Mit anderen Worten: Es wird angenommen, dass die Residuen unabhängig sind.
Eine Möglichkeit, festzustellen, ob diese Annahme erfüllt ist, besteht darin, einen Durbin-Watson-Test durchzuführen, der verwendet wird, um das Vorhandensein einer Autokorrelation in den Residuen einer Regression zu erkennen. Dieser Test basiert auf den folgenden Annahmen:
H 0 (Nullhypothese): Es besteht keine Korrelation zwischen den Residuen.
H A (Alternativhypothese): Die Residuen sind autokorreliert.
Die Teststatistik entspricht ungefähr 2*(1-r), wobei r die Stichprobenautokorrelation der Residuen ist. Daher liegt die Teststatistik immer zwischen 0 und 4 mit der folgenden Interpretation:
- Eine Teststatistik von 2 weist darauf hin, dass keine serielle Korrelation vorliegt.
- Je näher die Teststatistik bei 0 liegt, desto mehr Hinweise gibt es auf eine positive serielle Korrelation.
- Je näher die Teststatistik bei 4 liegt, desto mehr Hinweise gibt es auf eine negative serielle Korrelation.
Typischerweise gelten Teststatistikwerte zwischen 1,5 und 2,5 als normal. Werte außerhalb dieses Bereichs könnten jedoch darauf hinweisen, dass die Autokorrelation ein Problem darstellt.
In diesem Tutorial wird erläutert, wie Sie einen Durbin-Watson-Test in Python durchführen.
Beispiel: Durbin-Watson-Test in Python
Angenommen, wir haben den folgenden Datensatz, der die Eigenschaften von 10 Basketballspielern beschreibt:
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
Angenommen, wir passen ein multiples lineares Regressionsmodell an und verwenden dabei die Bewertung als Antwortvariable und die anderen drei Variablen als Prädiktorvariablen:
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())
Mit der Funktion durbin_watson() aus der Statsmodels-Bibliothek können wir einen Watson-Durbin-Test durchführen, um zu bestimmen, ob die Residuen des Regressionsmodells autokorreliert sind:
from statsmodels.stats.stattools import durbin_watson #perform Durbin-Watson test durbin_watson(model.resid) 2,392
Die Teststatistik beträgt 2,392 . Da dieser Wert zwischen 1,5 und 2,5 liegt, gehen wir davon aus, dass Autokorrelation in diesem Regressionsmodell kein Problem darstellt.
Wie man mit Autokorrelation umgeht
Wenn Sie die Nullhypothese ablehnen und zu dem Schluss kommen, dass in den Residuen eine Autokorrelation vorliegt, haben Sie mehrere Möglichkeiten, dieses Problem zu beheben, wenn Sie es für ernst genug halten:
1. Für eine positive serielle Korrelation sollten Sie in Betracht ziehen, dem Modell Verzögerungen der abhängigen und/oder unabhängigen Variablen hinzuzufügen.
2. Stellen Sie bei negativer serieller Korrelation sicher, dass keine Ihrer Variablen übermäßig verzögert ist .
3. Für die saisonale Korrelation sollten Sie erwägen, dem Modell saisonale Dummies hinzuzufügen.