Меняет ли понижающая выборка коэффициенты логистической регрессии?

34

Если у меня есть набор данных с очень редким положительным классом, и я понижаю выборку отрицательного класса, а затем выполняю логистическую регрессию, нужно ли мне корректировать коэффициенты регрессии, чтобы отразить тот факт, что я изменил распространенность положительного класса?

Например, допустим, у меня есть набор данных с 4 переменными: Y, A, B и C. Y, A и B являются двоичными, C - непрерывными. Для 11 100 наблюдений Y = 0, а для 900 Y = 1:

set.seed(42)
n <- 12000
r <- 1/12
A <- sample(0:1, n, replace=TRUE)
B <- sample(0:1, n, replace=TRUE)
C <- rnorm(n)
Y <- ifelse(10 * A + 0.5 * B + 5 * C + rnorm(n)/10 > -5, 0, 1)

Я соответствую логистической регрессии, чтобы предсказать Y, учитывая A, B и C.

dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)

Однако, чтобы сэкономить время, я мог бы удалить 10 200 не-Y наблюдений, давая 900 Y = 0 и 900 Y = 1:

require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)

Коэффициенты регрессии из двух моделей выглядят очень похоже:

> coef(summary(mod1))
              Estimate Std. Error   z value     Pr(>|z|)
(Intercept) -127.67782  20.619858 -6.191983 5.941186e-10
A           -257.20668  41.650386 -6.175373 6.600728e-10
B            -13.20966   2.231606 -5.919353 3.232109e-09
C           -127.73597  20.630541 -6.191596 5.955818e-10
> coef(summary(mod2))
              Estimate  Std. Error     z value    Pr(>|z|)
(Intercept) -167.90178   59.126511 -2.83970391 0.004515542
A           -246.59975 4059.733845 -0.06074284 0.951564016
B            -16.93093    5.861286 -2.88860377 0.003869563
C           -170.18735   59.516021 -2.85952165 0.004242805

Что приводит меня к мысли, что понижающая выборка не повлияла на коэффициенты. Тем не менее, это единственный надуманный пример, и я предпочел бы знать наверняка.

Zach
источник
8
Помимо перехвата, вы оцениваете те же самые параметры популяции, когда выполняете понижающую выборку, но с меньшей точностью, за исключением перехвата, который можно оценить, когда вы знаете распространенность ответа среди населения. См. Hosmer & Lemeshow (2000), Прикладная логистическая регрессия , гл. 6.3 для доказательства. Иногда вы можете ввести разделение, хотя и не часто, так как вы уменьшаете количество ответов большинства.
Scortchi - Восстановить Монику
@ Scortchi Опубликуйте свой комментарий как ответ - этого достаточно для моего вопроса. Спасибо за ссылку.
Зак
@ Scortchi и Zach: Согласно модели с пониженной дискретизацией ( mod2), Pr(>|z|)for Aравен почти 1. Мы не можем отвергнуть нулевую гипотезу о том, что коэффициент Aравен 0, поэтому мы потеряли ковариату, которая используется в mod1. Разве это не существенная разница?
Жубарб
@Zhubarb: Как я уже отметил, вы можете ввести разделение, что делает стандартные оценки ошибок Уолда совершенно ненадежными.
Scortchi - Восстановить Монику
Смотрите также Скотт 2006
StasK

Ответы:

29

Снижение выборки эквивалентно планам «случай-контроль» в медицинской статистике - вы фиксируете количество ответов и соблюдаете ковариатические модели (предикторы). Возможно, ключевым справочным материалом является Prentice & Pyke (1979), «Модели заболеваемости логистическими заболеваниями и исследования« случай-контроль », Biometrika , 66 , 3.

Они использовали теорему Байеса, чтобы переписать каждый член в вероятности для вероятности данного ковариатного шаблона, обусловленного тем, что он является случаем или контролем как два фактора; один представляет обычную логистическую регрессию (вероятность быть регистром или условным условием на ковариатном шаблоне), а другой представляет предельную вероятность ковариатного шаблона. Они показали, что максимизация общей вероятности с учетом ограничения на то, что предельные вероятности того, что дело или контроль фиксируются схемой выборки, дает те же оценки отношения шансов, что и максимизация первого фактора без ограничения (т. Е. Выполнение обычной логистической регрессии) ,

β0*β^0π

β^0*знак равноβ^0-журнал(1-ππN1N0)

N0N1

Конечно, отбрасывая данные, которые вам пришлось собрать, хотя и наименее полезные, вы снижаете точность своих оценок. Ограничения на вычислительные ресурсы - единственная веская причина, которую я знаю для этого, но я упоминаю об этом, потому что некоторые люди думают, что «сбалансированный набор данных» важен по какой-то другой причине, которую я так и не смог установить.

Scortchi - Восстановить Монику
источник
Спасибо за подробный ответ. И да, причина, по которой я делаю это, используя полную модель (без понижающей дискретизации), является вычислительно непомерной.
Зак
Уважаемый @Scortchi, спасибо за объяснение, но в случае, когда я хочу использовать логистическую регрессию, сбалансированный набор данных кажется необходимым независимо от вычислительных ресурсов. Я пытался использовать «предвзятый уменьшенный штрафной правдоподобие Фирта», но безрезультатно. Так что, похоже, для меня единственная альтернатива, да?
Шахин
@Shahin Хорошо, (1) почему вы недовольны логистической регрессией, подходящей по максимальному правдоподобию? & (2) что именно идет не так, используя метод Ферта?
Scortchi - Восстановить Монику
@ Scortchi, проблема в том, что модель очень плохо распознает successэкземпляры. Другими словами, очень низкий TPR. При изменении порога TPR увеличивается, но точность очень плохая, что означает, что более 70% случаев, помеченных как положительные, действительно являются отрицательными. Я читал, что в редких случаях логистическая регрессия не очень хороша, именно здесь играет роль метод Фёрта или, по крайней мере, одна из ролей, которые он может взять на себя. Но результаты метода Ферта оказались очень похожи на обычный логит. Я подумал, что могу ошибаться в исполнении Фёрта, но, похоже, все в порядке
Шахин
4
@Shahin: Похоже, вы не туда лаете: понижающая выборка не улучшит распознавание вашей модели. Корректировка или регуляризация смещения могут (по новым данным - вы оцениваете его производительность в тестовом наборе?), Но, возможно, может помочь более сложная спецификация, или может просто потребоваться более информативные предикторы. Вам, вероятно, следует задать новый вопрос, указав подробную информацию о данных, предметном контексте, модели, диагностике и ваших целях.
Scortchi - Восстановить Монику