如何在 r 中执行 breusch-pagan 测试
Breusch-Pagan 检验用于确定回归分析中是否存在异方差性。
本教程介绍如何在 R 中执行 Breusch-Pagan 测试。
示例:R 中的 Breusch-Pagan 测试
在此示例中,我们将使用mtcars内置 R 数据集拟合回归模型,然后使用lmtest库中的bptest函数执行 Breusch-Pagan 测试,以确定是否存在异方差。
步骤 1:拟合回归模型。
首先,我们将使用mpg作为响应变量,使用disp和hp作为两个解释变量来拟合回归模型。
#load the dataset data(mtcars) #fit a regression model model <- lm(mpg~disp+hp, data=mtcars) #view model summary summary(model) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 30.735904 1.331566 23.083 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.127 on 29 degrees of freedom Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09
步骤 2:执行 Breusch-Pagan 测试。
接下来,我们将执行 Breusch-Pagan 检验以确定是否存在异方差。
#load lmtest library library(lmtest) #perform Breusch-Pagan Test bptest(model) studentized Breusch-Pagan test data: model BP = 4.0861, df = 2, p-value = 0.1296
检验统计量为4.0861 ,相应的 p 值为0.1296 。由于 p 值不小于 0.05,因此我们无法拒绝原假设。我们没有足够的证据表明回归模型中存在异方差性。
接下来做什么
如果您未能拒绝 Breusch-Pagan 检验的原假设,则不存在异方差,您可以继续解释原始回归的结果。
但是,如果拒绝零假设,则意味着数据中存在异方差性。在这种情况下,回归输出表中显示的标准误差可能不可靠。
有几种常见的方法可以解决此问题,包括:
1. 变换响应变量。您可以尝试对响应变量执行转换。例如,您可以使用日志响应变量而不是原始响应变量。一般来说,对响应变量取对数是消除异方差的有效方法。另一种常见的转换是使用响应变量的平方根。
2. 使用加权回归。这种类型的回归根据拟合值的方差为每个数据点分配权重。本质上,这为具有较高方差的数据点赋予了较低的权重,从而减少了它们的残差平方。当使用适当的权重时,可以消除异方差问题。