Hypothesis-Testing

在 R 中解釋 Breusch-Pagan 測試 bptest()

  • October 7, 2016

bptest我對in R ( library(lmtest))的解釋有點困惑。的零假設bptest是殘差具有恆定方差。因此,小於 0.05 的 p 值意味著必須拒絕同方差性假設。但是在這個網站上:

http://rstatistics.net/how-to-test-a-regression-model-for-heteroscedasticity-and-if-present-how-to-correct-it/

我發現以下結果讓我感到困惑:

data:  lmMod
BP = 3.2149, df = 1, p-value = 0.07297

p 值 > 0.05 表示可以拒絕原假設(殘差中的方差不變),因此存在異方差性。這可以通過在 lm 對像上運行線性模型假設 (gvlma) 的全局驗證來確認。

gvlma(lmMod) # validate if assumptions of linear regression holds true.

# Call:
gvlma(x = lmMod) 

                   Value  p-value                   Decision
Global Stat        15.801 0.003298 Assumptions NOT satisfied!
Skewness            6.528 0.010621 Assumptions NOT satisfied!
Kurtosis            1.661 0.197449    Assumptions acceptable.
Link Function       2.329 0.126998    Assumptions acceptable.
Heteroscedasticity  5.283 0.021530 Assumptions NOT satisfied!

那麼為什麼 p 值 > 0.05 意味著您必須拒絕原假設,而實際上 p 值小於 0.05 表示您必須拒絕原假設?

這應該是 rstatistics.net 上的一個錯字。您是正確的,Breusch-Pagan 檢驗的原假設是同方差性(= 方差不依賴於輔助回歸量)。如果-值變“小”,拒絕原假設。

我建議就這個問題聯繫 rstatistics.net 的作者,看看他們是否同意並修復它。

此外,請注意,它glvma()使用了與默認情況不同的輔助回歸器bptest()並關閉了學生化。更準確地說,如果通過顯式設置參數來複製結果,則可以看到差異bptest()

模型由下式給出:

data("cars", package = "datasets")
lmMod <- lm(dist ~ speed, data = cars)

然後使用的默認值使用bptest()與模型相同的輔助回歸量,即speed在這種情況下。它還使用具有改進的有限樣本屬性的學生化版本,產生不顯著的結果。

library("lmtest")
bptest(lmMod, ~ speed, data = cars, studentize = TRUE)
##  studentized Breusch-Pagan test
## 
## data:  lmMod
## BP = 3.2149, df = 1, p-value = 0.07297

相反,glvma()關閉學生化並檢查方差的線性趨勢。

cars$trend <- 1:nrow(cars)
bptest(lmMod, ~ trend, data = cars, studentize = FALSE)
##  Breusch-Pagan test
## 
## data:  lmMod
## BP = 5.2834, df = 1, p-value = 0.02153

如您所見-值相當小,但在 5% 的不同方面。學生化版本均略高於 5%。

引用自:https://stats.stackexchange.com/questions/239060

comments powered by Disqus