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.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert