इन दो Breusch-Pagan टेस्ट में क्या अंतर है?


9

कुछ डेटा पर R का उपयोग करना और यह देखने की कोशिश करना कि मेरा डेटा विषमलैंगिक है या नहीं, मैंने ब्रेक्स-पैगन परीक्षण के दो कार्यान्वयन पाए हैं, बीपेस्ट (पैकेज lmtest) और ncvTest (पैकेज कार)। हालांकि, ये अलग-अलग परिणाम देते हैं। दोनों के बीच क्या अंतर है? आपको एक या दूसरे का उपयोग कब चुनना चाहिए?

> model <- lm(y ~ x)
> bp <- bptest(model)
> bp
studentized Breusch-Pagan test

data:  model 
BP = 3.3596, df = 1, p-value = 0.06681

> ncvTest(model)
Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 3.858704    Df = 1     p = 0.04948855 

इन उदाहरणों से पता चलता है कि परीक्षणों के अनुसार, मेरा डेटा एक मामले में विषमलैंगिक और दूसरे मामले में समरूपतावादी है। मुझे यह प्रश्न यहाँ मिला, इसलिए शायद सबसे ज्यादा छात्र हो सकते हैं और ncvTest नहीं हो सकता है, हालाँकि, इसका क्या मतलब है?

जवाबों:


9

आपका अनुमान सही है, ncvTestBreusch-Pagan परीक्षण का मूल संस्करण करता है। यह वास्तव में इसकी तुलना करके सत्यापित किया जा सकता है bptest(model, studentize = FALSE)। (जैसा कि @ Helix123 ने बताया, दो कार्य अन्य पहलुओं में भी भिन्न होते हैं जैसे कि डिफ़ॉल्ट तर्क, किसी को lmtestऔर carअधिक विस्तार के लिए पैकेज मैनुअल की जाँच करनी चाहिए ।)

R-Koenker द्वारा 1981 के अपने लेख A नोट इन स्टूडेंटाइज़िंग ऑन ए हेटेरोसेडेसिटी के लिए स्टूडेंटाइज्ड ब्रीच-पैगन टेस्ट प्रस्तावित किया गया था । दोनों का सबसे स्पष्ट अंतर यह है कि वे विभिन्न परीक्षण आँकड़ों का उपयोग करते हैं। अर्थात्, चलोξ छात्रों के परीक्षण के आँकड़े हो और ξ^मूल एक ,

ξ^=λξ,λ=Var(ε2)2Var(ε)2.

यहाँ कोड का एक टुकड़ा है जो यह दर्शाता है कि मैंने अभी क्या लिखा है ( farawayपैकेज से लिया गया डेटा ):

> mdl = lm(final ~ midterm, data = stat500)
> bptest(mdl)

    studentized Breusch-Pagan test

data:  mdl
BP = 0.86813, df = 1, p-value = 0.3515

> bptest(mdl, studentize = FALSE)

    Breusch-Pagan test

data:  mdl
BP = 0.67017, df = 1, p-value = 0.413

> ncvTest(mdl)
Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 0.6701721    Df = 1     p = 0.4129916 
> 
> n = nrow(stat500)
> e = residuals(mdl)
> bpmdl = lm(e^2 ~ midterm, data = stat500)
> lambda = (n - 1) / n * var(e^2) / (2 * ((n - 1) / n * var(e))^2)
> Studentized_bp = n * summary(bpmdl)$r.squared
> Original_bp = Studentized_bp * lambda
> 
> Studentized_bp
[1] 0.8681335
> Original_bp
[1] 0.6701721

मूल बीपी परीक्षण को छात्र क्यों करना चाहता है, इसके लिए आर। कोएन्कर के लेख का एक सीधा उद्धरण मददगार हो सकता है:

... इस विश्लेषण से दो निष्कर्ष निकलते हैं:

  1. ब्रेस्च और पैगन परीक्षण की स्पर्शोन्मुख शक्ति के वितरण के कर्टोसिस के लिए बेहद संवेदनशील है , औरε
  2. परीक्षण के एसिम्प्टोटिक आकार केवल गॉसियन कुर्तोसिस के विशेष मामले में सही है।

पूर्व निष्कर्ष कोएनकर और बासेट (1981) में विस्तारित किया गया है जहां विषम, विषमता के लिए वैकल्पिक, मजबूत परीक्षण का सुझाव दिया गया है। बाद के निष्कर्ष का अर्थ है कि ब्रेस्च और पैगन द्वारा सुझाए गए महत्व के स्तर केवल ग्रेसियन शर्तों के तहत पर सही होंगे । आम तौर पर इस तरह की स्थितियों अंधा विश्वास पर मान लिया और सत्यापित करने के लिए बेहद मुश्किल कर रहे हैं के बाद से, Breusch और बुतपरस्त परीक्षण के संशोधन का सुझाव दिया है जो सही ढंग से "studentise" परीक्षण आंकड़ा और asymptotically सही महत्व स्तर को लीड के लिए वितरण के एक यथोचित बड़े वर्ग के लिए ।εε

संक्षेप में, छात्र बीपी परीक्षण मूल एक की तुलना में अधिक मजबूत है।


2
हालांकि, वहाँ एक और अंतर है: ncvTestऔर bptestविभिन्न चर का उपयोग बच समझाने के लिए, तर्क को देखने var.formulaऔर varformulaक्रमश:। एक बार जब आप अपने उदाहरण में एक और regressor जोड़ लेंगे तो परिणाम आ जाएंगे।
हेलिक्सजैम

@ Helix123: धन्यवाद, मुझे लगता है कि मैं चूक गया।
फ्रांसिस

2

व्यावहारिक रूप से, ncvTestसमीकरण के बाएँ-साइड का bptestउपयोग करता है और डिफ़ॉल्ट रूप से दाएँ-बाएँ का उपयोग करता है।

इसका मतलब है कि एक मामले में Y ~ X, दोनों परीक्षण समान परिणाम प्रदान करेंगे ( studentize = Fविकल्प के बारे में bptest)। लेकिन एक बहुभिन्नरूपी विश्लेषण जैसे कि Y ~ X1 + X2, परिणाम अलग होंगे। (जैसा @ @ हेलिक्स123 ने बताया)

की मदद फ़ाइल से ncvTest : var.formula: "त्रुटि विचरण के लिए एक तरफा सूत्र; यदि छोड़ा गया है, तो त्रुटि विचरण फिट किए गए मानों पर निर्भर करता है ।" जिसका अर्थ है कि, डिफ़ॉल्ट रूप से, फिट किए गए मूल्यों का उपयोग किया जाएगा, लेकिन यह स्वतंत्र चर (X1 + X2) के रैखिक संयोजन का उपयोग करने की भी अनुमति देता है।

की मदद फ़ाइल से bptest : varformula: "डिफ़ॉल्ट रूप से एक ही व्याख्यात्मक चर मुख्य प्रतिगमन मॉडल के रूप में लिया जाता है।"

@Francis ( पैकेज stat500से डेटा faraway) का एक ही उदाहरण जारी रखना :

> mdl_t = lm(final ~ midterm + hw, data = stat500)

बीपी परीक्षण, सज्जित मूल्यों का उपयोग:

> ncvTest(mdl_t) # Default

Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 0.6509135    Df = 1     p = 0.4197863 

> bptest(mdl_t, varformula = ~ fitted.values(mdl_t), studentize = F)

Breusch-Pagan test

data:  mdl_t
BP = 0.65091, df = 1, p-value = 0.4198

बीपी परीक्षण, भविष्यवक्ताओं के रैखिक संयोजन का उपयोग करते हुए:

> ncvTest(mdl_t, var.formula = ~ midterm + hw)
Non-constant Variance Score Test 
Variance formula: ~ midterm + hw 
Chisquare = 0.7689743    Df = 2     p = 0.6807997 

> bptest(mdl_t, studentize = F) # Default

Breusch-Pagan test

data:  mdl_t
BP = 0.76897, df = 2, p-value = 0.6808

"रैखिक संयोजन विकल्प" एक विशिष्ट स्वतंत्र चर की रैखिक निर्भरता से जुड़ी विषमलैंगिकता की जांच करने की अनुमति देता है। उदाहरण के लिए, बस hwचर:

> ncvTest(mdl_t, var.formula = ~ hw)
Non-constant Variance Score Test 
Variance formula: ~ hw 
Chisquare = 0.04445789    Df = 1     p = 0.833004 

> bptest(mdl_t, varformula = ~ stat500$hw, studentize = F)

Breusch-Pagan test

data:  mdl_t
BP = 0.044458, df = 1, p-value = 0.833

अंत में, जैसा @Francis संक्षेप, "संक्षेप में, studentized बीपी परीक्षण मूल एक से अधिक मजबूत है" मैं आमतौर पर साथ जाना bptest, साथ studentize = TRUE(डिफ़ॉल्ट) और varformula = ~ fitted.values(my.lm), विकल्प के रूप में homoskedasticity के लिए एक प्रारंभिक दृष्टिकोण के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.