Як логістична регресія використовує біноміальний розподіл?


19

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

Скажімо, я вивчаю успіх гнізд у птахів. Ймовірність успішного гніздування становить 0,6. Використовуючи біноміальний розподіл, я можу обчислити ймовірність r успіхів, отриманих n випробувань (кількість вивчених гнізд).

Але як використовується біноміальний розподіл у контексті моделювання? Скажімо, я хочу знати, як середньодобова температура впливає на успіх гнізда, і я використовую логістичну регресію для вивчення цього питання.

У описаному нами контексті, як логістична регресія використовує біноміальний розподіл?

Я шукаю інтуїтивну відповідь, тому відповідь без рівнянь! Я думаю, що рівняння корисні лише після досягнення інтуїтивного розуміння.



2
Це хороший посилання для посилання, @ user777, але я думаю, що він може не працювати як дублікат, якщо ОП спеціально вимагає пояснення без рівнянь. Хорошим питанням є те, чи можна чітко пояснити роль розподілу біномів без будь-яких рівнянь. Безумовно, LR може бути дано інтуїтивне пояснення, але роль біноміального w / i LR по суті є дещо математичною.
gung - Відновіть Моніку

@gung Вибачення luciano. Бачачи, що "біноміальний розподіл" замінено "немає рівнянь", коли я розглядав можливі відповіді. Зрозуміло, що це не відповідало запиту ОП.
Sycorax каже, що повернеться до Моніки

Я вважаю, що я зрозумів ідею використання шкали шансів журналу для регресії, а потім переходу зі шкали logit до шкали 0-1. Але я продовжую читати речі за принципом "помилки розподіляються біноміально". Як помилки можуть бути розподілені біноміально?
luciano

5
Яку б книгу ви не читали, викиньте її.
Scortchi

Відповіді:


7

Припустимо, ви спостерігаєте кілька гнізд при різних середньодобових температурах . Як вірогідність успіху гнізда залежить від температури ? (Якщо гнізда незалежні, кількість гнізд з успіхом при температурі тоді біномічно розподіляється з рівним кількості спостережуваних гнізд і ймовірності успіху .)π ( t ) t t n π ( t )tπ(t)ttnπ(t)

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


15

Без рівнянь? Yikes. Подивимось:

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

дається, що не моделюються. Таким чином, результат полягає в тому, що за допомогою моделі, що стосується 'і відомої , ми можемо моделювати біноміальні дані з точки зору прогноктора, який описує середнє значення (та дисперсію) через свою модель для . Модель може підходити за максимальною оцінкою ймовірності, але через свою особливу форму (експоненціальна сім'я) ML є відносно "приємною".npinip

Оскільки логістичне посилання є канонічним для двочленної родини, це навіть приємніше, оскільки достатня статистика є дуже простою формою - це робить зручним для роботи з великими вибірками або навіть для розробки алгоритмів "онлайн".

Звичайно, , будучи ймовірністю, лежить між 0 і 1. Це, природно, означає, що коли ми пишемо для нього модель в рамках якоїсь іншої змінної, ця модель не повинна провалюватися через ці межі, так що незалежна змінна отримує досить великі або малі, відносини повинні зігнутися, щоб залишатися всередині меж.p

При логістичній регресії ця крива (функція зв'язку) є логістичною функцією. Можливі й інші функції, і багато пакетів реалізують кілька (R має три підходящі вбудовані у свою glmфункціональність, якщо я пам'ятаю правильно).


Жодні символи рівності не завдали шкоди під час видання цієї посади.


2

Ваша модель передбачає, що успіх гнізда може розглядатися як азарт: Бог перекидає завантажену монету зі сторонами, позначеними "успіх" і "провал". Результат обертання одного гнізда не залежить від результату перекидання для будь-якого іншого гнізда.

Однак у птахів щось для них відбувається: монета може сильно сприяти успіху при деяких температурах порівняно з іншими. Таким чином, коли у вас є шанс спостерігати гнізда при заданій температурі, кількість успіхів дорівнює кількості успішних обертів однієї і тієї ж монети - одна для цієї температури. Відповідний біноміальний розподіл описує шанси на успіх. Тобто вона встановлює ймовірність нульових успіхів одного, двох, ... і так далі через кількість гнізд.

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

Наприклад, припустимо, що ви спостерігаєте гнізд при температурі градусів, і з цих гнізд є успішними. MLE - Тобто ми вважаємо, що Божа монета має шансів проявити успіх. Відповідний біноміальний розподіл побудований у першому рядку рисунка (див. Нижче) під заголовком "10 градусів". Він представляє шанси з висотами вертикальних відрізків ліній. Червоний сегмент відповідає спостережуваному значенню успіхів.71033/7.3/73

Температура повинна змінюватись у ваших даних. Як приклад, припустимо, що при температурі градусів ви спостерігали успіху серед гнізд. Цей набір даних побудований за допомогою сірих кіл на панелях "Fit" фігури. Висота кола представляє його успішність. Площі кола пропорційні кількості гнізд (тим самим підкреслюючи дані з більшою кількістю гнізд).5,10,15,200,3,2,32,7,5,3

У верхньому рядку рисунка показані ПДЧ при кожній із чотирьох спостережуваних температур. Червона крива на панелі "Fit" відстежує, як завантажується монета, залежно від температури. За побудовою цей слід проходить через кожну з точок даних. (Що це робить при проміжних температурах, невідомо; я жорстоко пов'язав значення, щоб підкреслити цю точку.)

Ця "насичена" модель не дуже корисна, саме тому, що вона не дає нам підстави оцінювати, як Бог буде завантажувати монети при проміжних температурах. Для цього нам потрібно припустити, що існує якась крива «тренду», яка пов’язує навантаження монети з температурою.

Малюнок

Нижній ряд фігури відповідає такій тенденції. Тенденція обмежена тим, що вона може робити: коли намічається графік у відповідних координатах ("коефіцієнти журналу"), як показано на панелях "Логічний відповідь" зліва, він може слідувати лише прямій лінії. Будь-яка така пряма лінія визначає завантаження монети при будь-яких температурах, як показано відповідною вигнутою лінією на панелях "Fit". Це навантаження, у свою чергу, визначає біноміальні розподіли за всіх температур. У нижньому ряду наводяться ті розподіли за температурами, де спостерігалися гнізда. (Пунктирні чорні лінії позначають очікувані значення розподілів, допомагаючи їх досить точно визначити. Ви не бачите цих рядків у верхньому рядку фігури, оскільки вони збігаються з червоними сегментами.)

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

Логістична регресія ковзає і розмахує можливими лініями навколо (в системі координат, що використовується панелями "Відповідь Логіта"), перетворює їх висоту в біноміальні ймовірності (панелі "Придатний"), оцінює шанси, присвоєні спостереженням (чотири праві панелі ) і вибирає лінію, яка найкраще поєднує ці шанси.

Що таке "найкраще"? Просто, що сукупна ймовірність усіх даних максимально велика. Таким чином, жодна єдина ймовірність (червоні сегменти) не може бути по-справжньому крихітною, але зазвичай більшість ймовірностей не будуть настільки високими, як це було у насиченій моделі.

Ось одна ітерація пошуку логістичної регресії, де лінія повернута вниз:

Малюнок 2

По-перше, зауважте, що залишилось незмінним: сірі точки в розсипці "Fit" фіксуються, оскільки вони представляють дані. Так само фіксуються діапазони значень і горизонтальні положення червоних сегментів у чотирьох двочленних графіках, оскільки вони також представляють дані. Однак ця нова лінія завантажує монети докорінно іншим чином. При цьому він змінює чотири біноміальних розподілу (сірі сегменти). Наприклад, він дає монеті приблизно 70% успішності при температурі градусів, що відповідає розподілу, ймовірність якого найбільша за 4 до 6 успіхів. Цей рядок насправді чудово справляється зі зміною даних для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.