Comment effectuer un test de Breusch-Godfrey dans R
L’une des hypothèses clés de la régression linéaire est qu’il n’y a pas de corrélation entre les résidus, c’est-à-dire que les résidus sont indépendants.
Pour tester l’autocorrélation de premier ordre, nous pouvons effectuer un test de Durbin-Watson . Cependant, si nous souhaitons tester l’autocorrélation à des ordres plus élevés, nous devons effectuer un test de Breusch-Godfrey .
Ce test utilise les hypothèses suivantes :
H 0 (hypothèse nulle) : Il n’y a pas d’autocorrélation d’un ordre inférieur ou égal à p .
H A (hypothèse alternative) : Il existe une autocorrélation d’un certain ordre inférieur ou égal à p .
La statistique du test suit une distribution du Chi carré avec p degrés de liberté.
Si la valeur p qui correspond à cette statistique de test est inférieure à un certain niveau de signification (par exemple 0,05), nous pouvons alors rejeter l’hypothèse nulle et conclure qu’une autocorrélation existe entre les résidus à un certain ordre inférieur ou égal à p .
Pour effectuer un test de Breusch-Godfrey dans R, on peut utiliser la fonction bgtest(y ~ x, order = p) de la bibliothèque lmtest .
Ce didacticiel fournit un exemple d’utilisation de cette syntaxe dans R.
Exemple : test de Breusch-Godfrey dans R
Tout d’abord, créons un faux ensemble de données contenant deux variables prédictives (x1 et x2) et une variable de réponse (y).
#create dataset df <- data.frame(x1=c(3, 4, 4, 5, 8, 9, 11, 13, 14, 16, 17, 20), x2=c(7, 7, 8, 8, 12, 4, 5, 15, 9, 17, 19, 19), y=c(24, 25, 25, 27, 29, 31, 34, 34, 39, 30, 40, 49)) #view first six rows of dataset head(df) x1 x2 y 1 3 7 24 2 4 7 25 3 4 8 25 4 5 8 27 5 8 12 29 6 9 4 31
Ensuite, nous pouvons effectuer un test de Breusch-Godfrey en utilisant la fonction bgtest() du package lmtest .
Pour cet exemple, nous allons tester l’autocorrélation entre les résidus à l’ordre p = 3 :
#load lmtest package library(lmtest) #perform Breusch-Godfrey test bgtest(y ~ x1 + x2, order=3, data=df) Breusch-Godfrey test for serial correlation of order up to 3 data: y ~ x1 + x2 LM test = 8.7031, df = 3, p-value = 0.03351
À partir du résultat, nous pouvons voir que la statistique de test est X 2 = 8,7031 avec 3 degrés de liberté. La valeur p correspondante est 0,03351 .
Puisque cette valeur p est inférieure à 0,05, nous pouvons rejeter l’hypothèse nulle et conclure qu’il existe une autocorrélation entre les résidus d’un ordre inférieur ou égal à 3.
Comment gérer l’autocorrélation
Si vous rejetez l’hypothèse nulle et concluez qu’une autocorrélation est présente dans les résidus, vous disposez alors de plusieurs options pour corriger ce problème si vous le jugez suffisamment grave :
- Pour une corrélation en série positive, envisagez d’ajouter des décalages de la variable dépendante et/ou indépendante au modèle.
- Pour une corrélation série négative, assurez-vous qu’aucune de vos variables n’est surdifférée .
- Pour la corrélation saisonnière, envisagez d’ajouter des variables fictives saisonnières au modèle.
Ressources additionnelles
Comment effectuer une régression linéaire simple dans R
Comment effectuer une régression linéaire multiple dans R
Comment effectuer un test Durbin-Watson dans R