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


Breusch-Pagan 检验用于确定回归分析中是否存在异方差性

本教程介绍如何在 R 中执行 Breusch-Pagan 测试。

示例:R 中的 Breusch-Pagan 测试

在此示例中,我们将使用mtcars内置 R 数据集拟合回归模型,然后使用lmtest库中的bptest函数执行 Breusch-Pagan 测试,以确定是否存在异方差。

步骤 1:拟合回归模型。

首先,我们将使用mpg作为响应变量,使用disphp作为两个解释变量来拟合回归模型。

 #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. 使用加权回归。这种类型的回归根据拟合值的方差为每个数据点分配权重。本质上,这为具有较高方差的数据点赋予了较低的权重,从而减少了它们的残差平方。当使用适当的权重时,可以消除异方差问题。

添加评论

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