Ваше предположение верно, ncvTest
выполняет оригинальную версию теста Бреуша-Пагана. Это можно проверить, сравнив его с bptest(model, studentize = FALSE)
. (Как указывало @ Helix123, две функции также отличаются в других аспектах, таких как аргументы по умолчанию, следует проверить руководства по пакетам lmtest
и получить car
более подробную информацию.)
ξ*ξ^
ξ^= λ ξ*,λ = вар( ε2)2 вар( ε )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
Что касается того, почему кто-то хочет изучать оригинальный тест АД, может помочь прямая цитата из статьи Р. Кенкера:
... Из этого анализа вытекают два вывода:
- Асимптотическая сила теста Брейша и Пэгана чрезвычайно чувствительна к эксцессу распределения , иε
- Асимптотический размер теста верен только в частном случае гауссовского эксцесса.
Первый вывод расширен в работе Koenker and Bassett (1981), где предлагаются альтернативные, надежные тесты на гетероскедастичность. Последний вывод подразумевает, что уровни значимости, предложенные Брейшем и Паганом, будут правильными только в гауссовых условиях на
. Поскольку такие условия обычно предполагаются на основе слепой веры и общеизвестно, что их трудно проверить, предлагается модификация теста Брейша и Пэгана, которая корректно «обучает» статистику теста и приводит к асимптотически корректным уровням значимости для достаточно большого класса распределений для .εε
Короче говоря, проверенный BP тест является более надежным, чем исходный.
ncvTest
иbptest
используйте разные переменные для объяснения остатков, см. Аргументыvar.formula
иvarformula
, соответственно. Результаты будут отличаться после добавления другого регрессора в ваш пример.В практическом плане
ncvTest
использует левую часть уравнения иbptest
использует правую часть по умолчанию.Это означает, что в случае
Y ~ X
обоих тестов будут получены одинаковые результаты (относительноstudentize = F
опцииbptest
). Но в многомерном анализе, напримерY ~ X1 + X2
, результаты будут отличаться. (Как указал @ Helix123)Из справочного файла
ncvTest : var.formula
: «Односторонняя формула для дисперсии ошибок; если она не указана, дисперсия ошибок зависит от подгоночных значений ». Это означает, что по умолчанию будут использоваться подогнанные значения, но это также позволяет использовать линейную комбинацию независимых переменных (X1 + X2).Из справочного файла
bptest : varformula
: «По умолчанию используются те же пояснительные переменные , что и в основной модели регрессии».Продолжая тот же пример @Francis (данные
stat500
, изfaraway
пакета):Тест BP, используя установленные значения:
Тест АД с использованием линейной комбинации предикторов:
«Опция линейной комбинации» позволяет исследовать гетероскедастичность, связанную с линейной зависимостью конкретной независимой переменной. Например, просто
hw
переменная:И наконец, как подытожил @Francis: «Короче говоря, тест BP с проверкой на прочность является более надежным, чем исходный», я обычно
bptest
используюstudentize = TRUE
(по умолчанию) и вvarformula = ~ fitted.values(my.lm)
качестве опций первоначальный подход к гомоскедастичности.источник