Розрахунок довірчих інтервалів для логістичної регресії


15

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

fit = glm(formula = has_clicked ~ has_x + has_y, 
          data=df, 
          family = binomial())

Це вихід з моєї моделі:

Call:
glm(formula = has_clicked ~ has_x + has_y, 
    family = binomial(), data = active_domains)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.9869  -0.9719  -0.9500   1.3979   1.4233  

Coefficients:
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.504737   0.008847 -57.050  < 2e-16 ***
has_xTRUE -0.056986   0.010201  -5.586 2.32e-08 ***
has_yTRUE  0.038579   0.010202   3.781 0.000156 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 217119  on 164182  degrees of freedom
Residual deviance: 217074  on 164180  degrees of freedom
AIC: 217080

Number of Fisher Scoring iterations: 4

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

predict(fit, data.frame(has_x = T, has_y=T), type = "response")

Я не розумію, як я можу звітувати про Std. Помилка прогнозу.

  1. Мені просто потрібно використовувати ? Або мені потрібно перетворити за допомогою описаного тут підходу ?S E1.96SESE

  2. Якщо я хочу зрозуміти стандартну помилку для обох змінних, як я б це вважав?

На відміну від цього питання , мені цікаво зрозуміти, яка верхня та нижня межі помилки у відсотках. Наприклад, моє передбачення показує значення 37% для того, чи True,Trueможу я розрахувати, що це для ? (0,3% вибрано для ілюстрації моєї точки зору)95 % C I+/0.395%CI




@kjetilbhalvorsen Ви впевнені, що це дублікат, оскільки ОП, здається, хоче інтервал прогнозування, але, здається, працює на шкалі АБО, а не на шкалі журналу, яка може бути корінь проблеми?
mdewey

2
Якщо ви хочете оцінити, наскільки хороший логістичний регрес прогнозує, зазвичай використовуються інші заходи, ніж прогнозування + SE. Один популярний захід оцінки - крива ROC з відповідним AUC
адибендер

1
Чи може це допомогти? stackoverflow.com/questions/47414842 / ...
Xavier Bourret Sicotte

Відповіді:


24

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

Фон

Нагадаємо, що для логістичної регресійної моделі

  • Імовірність з :(Y=1)p=eα+β1x1+β2x21+eα+β1x1+β2x2

  • Коефіцієнти з :(Y=1)(p1p)=eα+β1x1+β2x2

  • Коефіцієнти журналу :(Y=1)log(p1p)=α+β1x1+β2x2

Розглянемо випадок, коли у вас на одиницю приріст змінної , тобто , то нові шанси єx1x1+1

Odds(Y=1)=eα+β1(x1+1)+β2x2=eα+β1x1+β1+β2x2
  • Коефіцієнт шансів (АБО) , отже, є

Odds(x1+1)Odds(x1)=eα+β1(x1+1)+β2x2eα+β1x1+β2x2=eβ1
  • Коефіцієнт коефіцієнта журналу = β1

  • Відносний ризик або (коефіцієнт ймовірності) =eα+β1x1+β1+β2x21+eα+β1x1+β1+β2x2eα+β1x1+β2x21+eα+β1x1+β2x2

Інтерпретаційні коефіцієнти

Як би ви інтерпретували значення коефіцієнта ? Якщо припустити, що все інше залишається виправленим:βj

  • Для кожного одиничного збільшення коефіцієнт коефіцієнта журналу збільшується на .xjβj
  • При кожному збільшенні одиниці в коефіцієнт шансів збільшується на .xjeβj
  • При кожному збільшенні від до коефіцієнт шансів збільшується наxjkk+ΔeβjΔ
  • Якщо коефіцієнт від’ємний, то збільшення призводить до зменшення коефіцієнта шансів.xj

Інтервали довіри для одного параметраβj

Мені просто потрібно використовувати ? Або мені потрібно перетворити SE за допомогою описаного тут підходу?1.96SE

Оскільки параметр оцінюється за допомогою оцінки ймовірності Maxiumum, теорія MLE говорить нам, що це асимптотично нормально, і тому ми можемо використовувати великий довірчий інтервал Wald довіри, щоб отримати звичайнийβj

βj±zSE(βj)

Що дає довірчий інтервал на коефіцієнт коефіцієнта журналу. Використання властивості MLE дозволяє нам експоненціювати, щоб отримати

eβj±zSE(βj)

що є довірчим інтервалом на коефіцієнт шансів. Зауважте, що ці інтервали призначені лише для одного параметра.

Якщо я хочу зрозуміти стандартну помилку для обох змінних, як я б це вважав?

Якщо ви включите кілька параметрів, ви можете використовувати процедуру Bonferroni, інакше для всіх параметрів ви можете використовувати довірчий інтервал для оцінки ймовірності

Процедура Бонферроні для декількох параметрів

Якщо параметри слід оцінювати з коефіцієнтом довіри сім'ї приблизно , спільні межі довіри Бонферроні єg1α

βg±z(1α2g)SE(βg)

Інтервали довіри для оцінки ймовірності

Логістична модель дає оцінку ймовірності спостереження за одним, і ми прагнемо побудувати частотистський інтервал навколо справжньої ймовірності таким, щоpPr(pLppU)=.95

Один із підходів, що називається перетворенням кінцевих точок, робить наступне:

  • Обчисліть верхню та нижню межі довірчого інтервалу для лінійної комбінації (використовуючи КІ Wald)xTβ
  • Застосуйте монотонне перетворення до кінцевих точок для отримання ймовірностей.F(xTβ)

Оскільки є монотонним перетвореннямPr(xTβ)=F(xTβ)xTβ

[Pr(xTβ)LPr(xTβ)Pr(xTβ)U]=[F(xTβ)LF(xTβ)F(xTβ)U]

Конкретно це означає обчислити а потім застосувати перетворення logit до результату, щоб отримати нижню і верхню межі:βTx±zSE(βTx)

[exTβzSE(xTβ)1+exTβzSE(xTβ),exTβ+zSE(xTβ)1+exTβ+zSE(xTβ),]

Орієнтовна приблизна дисперсія може бути обчислена за допомогою матриці коваріації коефіцієнтів регресії за допомогоюxTβ

Var(xTβ)=xTΣx

Перевага цього методу полягає в тому, що межі не можуть бути поза діапазоном(0,1)

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


Джерела та інформація

Моя улюблена книга на цю тему - "Прикладні лінійні статистичні моделі" Кутнера, Нетера, Лі, глава 14

Інакше ось декілька онлайн-джерел:


Значна частина цього стосується КІ за коефіцієнтами, що є прекрасною справою для ОП, але чи ми впевнені, що це те, що йому потрібно? Пізніше розділ здається мені більш релевантним, але, можливо, відмінності можуть бути пропущені, якщо прочитати занадто швидко?
mdewey

2
Так, ви, напевно, маєте рацію, але розуміння шансів, шансів журналу та ймовірностей регресії журналу - це те, з чим я боровся в минулому - я сподіваюся, що цей пост досить добре підсумує цю тему, щоб вона могла допомогти комусь у майбутньому. Можливо, я міг би відповісти на питання більш чітко, надавши CI, але нам знадобиться матриця коваріації
Xavier Bourret Sicotte

5

Для отримання 95-відсоткового довірчого інтервалу прогнозування можна розрахувати за шкалою logit, а потім перетворити їх назад у шкалу ймовірності 0-1. Ось приклад використання титанічного набору даних.

library(titanic)
data("titanic_train")

titanic_train$Pclass = factor(titanic_train$Pclass, levels = c(1,2,3), labels = c('First','Second','Third'))

fit = glm(Survived ~ Sex + Pclass, data=titanic_train, family = binomial())

inverse_logit = function(x){
  exp(x)/(1+exp(x))
}

predicted = predict(fit, data.frame(Sex='male', Pclass='First'), type='link', se.fit=TRUE)

se_high = inverse_logit(predicted$fit + (predicted$se.fit*1.96))
se_low = inverse_logit(predicted$fit - (predicted$se.fit*1.96))
expected = inverse_logit(predicted$fit)

Середня та низька / висока 95% ІС.

> expected
        1 
0.4146556 
> se_high
        1 
0.4960988 
> se_low
        1 
0.3376243 

І вихід із простого використання type='response', що лише дає середнє значення

predict(fit, data.frame(Sex='male', Pclass='First'), type='response')
        1 
0.4146556

predict(fit, data.frame(Sex='male', Pclass='First'), type='response', se.fit=TRUE)буду працювати.
Tony416
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.