布魯薛-培根檢定
Template:NoteTA 在统计学中,布魯薛-培根檢定[1](Template:Lang-en,Breusch-Pagan檢定,常簡稱BP检验)是1979年由Template:Tsl和Template:Tsl提出的方法[2],用来检验线性回归模型中是否存在异方差的问题。另外,Template:Tsl和韦斯伯格在1983年独立地提出了类似的方法[3]。异方差的存在意味着模型的方差与自变量是相关的。
设回归模型为
对其进行回归可以得到一组残差。普通最小二乘法要求方差与自变量无关,这时方差可以由残差平方和的平均值估计得到。但如果这个前提不成立,例如方差与自变量线性相关,就可以通过下列辅助回归,即残差平方对自变量进行回归检验出来:
这就是BP检验的一个情形。它实质上是卡方检验,检验统计量渐进于,自由度与除常数项外的解释变量数相等。如果得到的p值小于一定阈值(如0.05)就可以拒绝零假设并认为异方差存在。
如果BP检验表明存在异方差存在,可以视情况使用Template:Tsl(适用于异方差的分布已知时)或Template:Tsl方法。
流程
根据高斯-马尔可夫定理,在同方差的前提下,普通最小二乘估计是最佳的线性无偏估计,意即其方差相较其他任何估计量都更小。如果异方差存在,估计结果仍是无偏的,但其方差并不是最小的。在决定使用哪种估计方法之前,可以先进行BP测试来判断是否存在异方差。BP检验的前提是方差与各个自变量有关,其中是自变量,这里除去常数项以外共有个解释变量。零假设亦即异方差不存在等价于个约束:
BP测试分为以下三个步骤:[4]
- 第一步:对原始模型进行普通最小二乘估计
并对每个观测都计算出残差。
- 第二步:进行下列辅助回归
- 第三步:检验统计量LM等于第二步中辅助回归的决定系数乘以样本大小:
软件实现
在R语言中,能够完成BP检验的函数包括car包中的ncvTest函数[6]、lmtest包中的bptest函数[7][8]以及plm包中的plmtest函数[9]等。
而Stata中计算回归后使用estat hettest命令,参数填写所有独立变量,即可进行BP检验[10][11]。
在Python中,statsmodels.stats.diagnostic(statsmodels包)中的函数het_breuschpagan可进行BP检验[12]。