Hoe voer je een breusch-godfrey-test uit in r
Een van de belangrijkste aannames van lineaire regressie is dat er geen correlatie bestaat tussen de residuen, dat wil zeggen dat de residuen onafhankelijk zijn.
Om te testen op autocorrelatie van de eerste orde kunnen we een Durbin-Watson-test uitvoeren. Als we echter willen testen op autocorrelatie bij hogere ordes, moeten we een Breusch-Godfrey-test uitvoeren.
Deze test maakt gebruik van de volgende aannames :
H 0 (nulhypothese): Er is geen autocorrelatie van een orde kleiner dan of gelijk aan p .
H A (alternatieve hypothese): Er bestaat een autocorrelatie van een bepaalde orde kleiner dan of gelijk aan p .
De teststatistiek volgt een Chi-kwadraatverdeling met p vrijheidsgraden.
Als de p-waarde die overeenkomt met deze teststatistiek onder een bepaald significantieniveau ligt (bijvoorbeeld 0,05), dan kunnen we de nulhypothese verwerpen en concluderen dat er een autocorrelatie bestaat tussen de residuen van een bepaalde lagere orde of gelijk aan p .
Om een Breusch-Godfrey-test in R uit te voeren, kunnen we de functie bgtest(y ~ x, order = p) uit de lmtest- bibliotheek gebruiken.
Deze tutorial geeft een voorbeeld van het gebruik van deze syntaxis in R.
Voorbeeld: Breusch-Godfrey-test in R
Laten we eerst een nepgegevensset maken met twee voorspellende variabelen (x1 en x2) en een responsvariabele (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
Vervolgens kunnen we een Breusch-Godfrey-test uitvoeren met behulp van de functie bgtest() uit het lmtest- pakket.
Voor dit voorbeeld testen we de autocorrelatie tussen de residuen bij orde 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
Uit het resultaat kunnen we zien dat de teststatistiek X2 = 8,7031 is met 3 vrijheidsgraden. De overeenkomstige p-waarde is 0,03351 .
Omdat deze p-waarde kleiner is dan 0,05, kunnen we de nulhypothese verwerpen en concluderen dat er een autocorrelatie bestaat tussen de residuen van orde kleiner dan of gelijk aan 3.
Hoe om te gaan met autocorrelatie
Als je de nulhypothese verwerpt en concludeert dat er autocorrelatie aanwezig is in de residuen, dan heb je verschillende opties om dit probleem te corrigeren als je het ernstig genoeg acht:
- Voor positieve seriële correlatie kunt u overwegen vertragingen van de afhankelijke en/of onafhankelijke variabele aan het model toe te voegen.
- Zorg er bij negatieve seriële correlatie voor dat geen van uw variabelen te veel vertraging heeft.
- Voor seizoenscorrelatie kunt u overwegen seizoensdummies aan het model toe te voegen.
Aanvullende bronnen
Hoe eenvoudige lineaire regressie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Hoe een Durbin-Watson-test uit te voeren in R