如何在 r 中执行 breusch-godfrey 测试


线性回归的关键假设之一是残差之间不存在相关性,即残差是独立的。

为了测试一阶自相关,我们可以执行Durbin-Watson 检验。然而,如果我们想测试更高阶的自相关性,我们需要执行Breusch-Godfrey 检验

该测试使用以下假设

H 0 (零假设):不存在小于或等于p的阶数的自相关。

H A (替代假设):存在小于或等于p的某个阶的自相关。

检验统计量遵循具有p 个自由度的卡方分布。

如果与该检验统计量相对应的p 值低于一定的显着性水平(例如 0.05),那么我们可以拒绝零假设并得出结论:在某个较低阶或等于p的残差之间存在自相关。

要在 R 中执行 Breusch-Godfrey 测试,我们可以使用lmtest库中的bgtest(y ~ x, order = p)函数。

本教程提供了在 R 中使用此语法的示例。

示例:R 中的 Breusch-Godfrey 测试

首先,我们创建一个包含两个预测变量(x1 和 x2)和一个响应变量 (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

接下来,我们可以使用lmtest包中的bgtest()函数执行 Breusch-Godfrey 测试。

对于本例,我们将测试 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

从结果中我们可以看出,检验统计量为X2 = 8.7031,具有 3 个自由度。相应的 p 值为0.03351

由于该 p 值小于 0.05,因此我们可以拒绝原假设并得出结论:阶次小于或等于 3 的残差之间存在自相关。

如何处理自相关

如果您拒绝零假设并得出残差中存在自相关的结论,那么如果您认为问题足够严重,则可以通过多种选择来纠正该问题:

  • 对于正序列相关,请考虑向模型添加因变量和/或自变量的滞后。
  • 对于负序列相关,请确保没有任何变量过度延迟
  • 对于季节性相关性,请考虑向模型添加季节性虚拟变量。

其他资源

如何在 R 中执行简单线性回归
如何在 R 中执行多元线性回归
如何在 R 中执行 Durbin-Watson 测试

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注