Как логистическая регрессия использует биномиальное распределение?


19

Я пытаюсь понять, как логистическая регрессия использует биномиальное распределение.

Допустим, я изучаю успех гнезда у птиц. Вероятность успеха гнезда составляет 0,6. Используя биномиальное распределение, я могу вычислить вероятность r успехов, учитывая n испытаний (количество изученных гнезд).

Но как биномиальное распределение используется в контексте моделирования? Допустим, я хочу знать, как средняя дневная температура влияет на успех гнезда, и я использую логистическую регрессию для изучения этого вопроса.

В контексте, который я описал, как логистическая регрессия использует биномиальное распределение?

Я ищу интуитивный ответ, поэтому ответ без уравнений! Я думаю, что уравнения полезны только тогда, когда понимание было достигнуто на интуитивном уровне.



2
Это хорошая ссылка для ссылки, @ user777, но я думаю, что она может не работать как дубликат, если ОП специально запрашивает объяснение без уравнений. Хороший вопрос, однако, заключается в том, можно ли объяснить роль биномиального распределения без каких-либо уравнений. Конечно, LR может быть дано интуитивно понятное объяснение, но роль бинома L / I LR по своей сути несколько математическая.
gung - Восстановить Монику

@ Gung Извинения Лучано. Видя «биномиальное распределение» переписал «нет уравнений», когда я рассмотрел возможные ответы. Понятно, что это не соответствовало просьбе ОП.
Sycorax говорит восстановить Monica

Я чувствую, что понял идею использования шкалы логарифмов для регрессии с последующим преобразованием из шкалы логитов в шкалу 0-1. Но я продолжаю читать вещи по принципу «ошибки распределены биномиально». Как ошибки могут быть распределены биномиально?
Лучано

5
В какой бы книге вы ни читали, выбросьте ее.
Scortchi - Восстановить Монику

Ответы:


7

Предположим, вы наблюдаете несколько гнезд при разных среднесуточных температурах . Как зависит вероятность успеха гнезда π ( t ) от температуры t ? (Если гнезда независимы, то количество гнезд с успехом при температуре t затем биномиально распределяется с n, равным числу наблюдаемых гнезд и вероятности успеха π ( t ) .)tπ(t)ttnπ(t)

Логистическая регрессия - это один из подходов (с использованием логистической функции) определения вероятности успеха в зависимости от температуры посредством растяжения и сдвига логистической кривой, причем объем растяжения и сдвига требуется оценивать по данным.


15

Без уравнений? Хлоп. Посмотрим:

Модель логистической регрессии является буквально моделью для параметра p биномиального распределения; с непрерывным предиктором каждая точка может иметь свое собственное распределение. (В случаях, когда наблюдения 0-1, мы имеем дело с частным случаем Бернулли; это обычная ситуация.)

n дается, не моделируются. Таким образом, в результате, используя модель, связывающую pi и известные ni , мы можем моделировать биномиальные данные в терминах предиктора, который описывает среднее значение (и дисперсию) через его модель для p . Модель может быть подобрана с помощью оценки максимального правдоподобия, но из-за ее особой формы (экспоненциального семейства) ML относительно «хорош».

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

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

При логистической регрессии эта кривая (функция связи) является логистической функцией. Возможны и другие функции, и многие пакеты реализуют несколько (в R есть три подходящих, glmесли я правильно помню).


Никакие символы равенства не пострадали при создании этого поста.


2

Ваша модель предполагает, что успех гнезда можно рассматривать как азартную игру: Бог подбрасывает нагруженную монету сторонами, обозначенными как «успех» и «провал». Результат броска для одного гнезда не зависит от результата броска для любого другого гнезда.

Однако у птиц есть что-то для них: монета может сильно способствовать успеху при одних температурах по сравнению с другими. Таким образом, когда у вас есть возможность наблюдать за гнездами при данной температуре, количество успехов равно количеству успешных бросков одной и той же монеты - той, что для этой температуры. Соответствующее биномиальное распределение описывает шансы на успех. То есть он устанавливает вероятность нулевого успеха, одного, двух, ... и т. Д. По количеству гнезд.

Одна разумная оценка взаимосвязи между температурой и тем, как Бог загружает монеты, определяется долей успехов, наблюдаемых при этой температуре. Это оценка максимального правдоподобия (MLE).

71033/7.3/73

5,10,15,200,3,2,32,7,5,3

В верхнем ряду рисунка показаны MLE при каждой из четырех наблюдаемых температур. Красная кривая на панели «Fit» показывает, как монета загружается, в зависимости от температуры. По построению этот след проходит через каждую точку данных. (Что он делает при промежуточных температурах, неизвестно; я грубо связал значения, чтобы подчеркнуть этот момент.)

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

Figure

Нижний ряд рисунка соответствует такой тенденции. Тенденция ограничена в том, что она может делать: при построении в соответствующих («log odds») координатах, как показано на панелях «Logit Response» слева, она может следовать только по прямой линии. Любая такая прямая линия определяет загрузку монеты при всех температурах, как показано соответствующей изогнутой линией на панелях «Подгонка». Эта нагрузка, в свою очередь, определяет биномиальные распределения при всех температурах. В нижнем ряду приведены распределения для температур, в которых наблюдались гнезда. (Пунктирные черные линии отмечают ожидаемые значения распределений, помогая идентифицировать их довольно точно. Эти линии не отображаются в верхнем ряду рисунка, поскольку они совпадают с красными сегментами.)

Теперь необходимо найти компромисс: линия может проходить близко к некоторым точкам данных только для того, чтобы отклониться от других. Это заставляет соответствующее биномиальное распределение назначать более низкие вероятности большинству наблюдаемых значений, чем раньше. Это можно ясно увидеть при 10 и 15 градусах: вероятность наблюдаемых значений не является максимально возможной и не близка к значениям, назначенным в верхнем ряду.

Логистическая регрессия скользит и покачивает возможные линии вокруг (в системе координат, используемой панелями «Logit Response»), преобразует их высоты в биномиальные вероятности (панели «Fit»), оценивает шансы, назначенные для наблюдений (четыре правые панели ) и выбирает линию, которая дает наилучшую комбинацию этих шансов.

Что такое "лучший"? Просто, что суммарная вероятность всех данных настолько велика, насколько это возможно. Таким образом, ни одна из вероятностей (красные сегменты) не может быть действительно крошечной, но обычно большая часть вероятностей не будет такой высокой, как в насыщенной модели.

Вот одна итерация поиска логистической регрессии, где линия была повернута вниз:

Figure 2

1015градусов, но ужасная работа по подгонке других данных. (При 5 и 20 градусах биномиальные вероятности, назначенные данным, настолько малы, что даже красные сегменты не видны.) В целом, это намного хуже, чем те, которые показаны на первом рисунке.


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


Приложение: Rкод для изготовления фигур

#
# Create example data.
#
X <- data.frame(temperature=c(5,10,15,20),
                nests=c(2,7,5,3),
                successes=c(0,3,2,3))
#
# A function to plot a Binomial(n,p) distribution and highlight the value `k0`.
#
plot.binom <- function(n, p, k0, highlight="#f02020", ...) {
  plot(0:n, dbinom(0:n, n, p), type="h", yaxt="n",
       xlab="Trials", ylab="Probability", ...)
  abline(v = p*n, lty=3, lwd=2)
  if(!missing(k0)) lines(rep(k0,2), c(0, dbinom(k0,n,p)), lwd=2, col=highlight)
}
#
# A function to convert from probability to log odds.
#
logit <- function(p) log(p) - log(1-p)
#
# Fit a saturated model, then the intended model.
#
# Ordinarily the formula for the saturated model would be in the form
# `... ~ factor(temperature)`, but the following method makes it possible to  
# plot the predicted values in a visually effective way.
#
fit.0 <- glm(cbind(successes, nests-successes) ~ factor(round(temperature/5)), 
             data=X, family=binomial)
summary(fit.0)

fit <- glm(cbind(successes, nests-successes) ~ temperature, 
           data=X, family=binomial)
summary(fit)
#
# Plot both fits, one per row.
#
lfits <- list(fit.0, fit)
par.old <- par(mfrow=c(length(lfits), nrow(X)+2))
for (fit in lfits) {
  #
  # Construct arrays of plotting points.
  #
  X$p.hat <- predict(fit, type="response")
  Y <- data.frame(temperature = seq(min(X$temperature), max(X$temperature), 
                                    length.out=101))
  Y$p.hat <- predict(fit, type="response", newdata=Y)  # Probability
  Y$lambda.hat <- predict(fit, type="link", newdata=Y) # Log odds
  #
  # Plot the fit in terms of log odds.
  #
  with(Y, plot(temperature, lambda.hat, type="n", 
               yaxt="n", bty="n", main="Logit Response",
               ylab=expression(hat(lambda))))
  if (isTRUE(diff(range(Y$lambda.hat)) < 6)) {
    # Draw gridlines and y-axis labels
    p <- c( .10, .25, .5, .75, .9)
    q <- logit(p)
    suppressWarnings(rug(q, side=2))
    abline(h=q, col="#d0d0d0")
    mtext(signif(p, 2), at=q, side=2, cex=0.6)
  }
  with(Y, lines(temperature, lambda.hat, lwd=2, col="#f02020"))
  #
  # Plot the data and the fit in terms of probability.
  #
  with(X, plot(temperature, successes/nests, ylim=0:1,
               cex=sqrt(nests), pch=21, bg="Gray",
               main="Fit"))
  with(Y, lines(temperature, p.hat, col="#f02020", lwd=2))
  #
  # Plot the Binomial distributions associated with each row of the data.
  #
  apply(X, 1, function(x) plot.binom(x[2], x[4], x[3], bty="n", lwd=2, col="Gray",
                                     main=paste(x[1], "Degrees")))
}
par(mfrow=par.old)

будет ли раскрыт код r? огромное спасибо.
Максимилиан

1
@Maximilian Я добавил код.
whuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.