Передумови : я маю доктор наук із соціальної психології, де теоретична статистика та математика ледь не висвітлювалися в моїх кількісних курсових роботах. Через школу середньої та середньої школи мене викладали (як, мабуть, багато хто з вас і в соціальних науках) через "класичну" частотистську структуру. Тепер, я теж люблю R і з допомогою методів моделювання , щоб перевірити , що методи роботи робить шляхбільше сенсу для мене, ніж математичні докази (знову ж таки: передумови в кількісній суспільствознавстві, а не теоретична статистика). Часті методи та методи моделювання разом складають для мене тону сенсу. Тому що часто відвідувачі бачать ймовірність як довгострокові шанси (наприклад, якщо я це роблю довільно велику кількість разів, і це відбувається 50% часу, то ймовірність 50%). Ми можемо моделювати цей довгий біг методами Монте-Карло!
Ускладнення : З старшокурсник, я був дуже обізнані про методи байєсівської, і там завжди були люди в моєму житті , закликаючи мене до байєсівської стороні, кажучи , що результати були легше інтерпретувати, що ми отримуємо ймовірність для гіпотези замість даних даючи гіпотезу і т. д. Я дійсно зайнявся цим і взяв байєсівський клас, прочитав кілька байесівських книг і паперів, і тепер я досить знайомий зі Станом та пов'язаними з ним пакетами R.
Введіть Майо : Поміркувавши, що "Баєсіан - це, мабуть, шлях майбутнього" на деякий час, я прочитав " Статистичні умовиводи Дебора Майо" як серйозні випробування . Вона каже, що не вибирає сторону на початку книги, але це робить: вона є частою партією, і багато книг захищає частоталістичні методології. Я не хочу обов'язково вступати в дискусію про те, чи ми вважаємо, чи дійсно те, як вона бачить докази, дійсне, але це змусило мене задуматися: чи справді Байєс все, що рекламується? Я маю на увазі, натовп Байєса настільки розбитий, що я навіть не знаю "правильного" способу часто аналізувати дані в байєсівських рамках. Зазвичай я б просто користувавсяrstanarm
і представити точкові оцінки та достовірні інтервали ..., які часто тісно узгоджуються з частофілістськими оцінками та довірчими інтервалами. Я можу зробити порівняння моделей, але я завжди боюся описувати фактори Байєса як заднє порівняння ймовірностей тощо.
Більше роздумів : Про що я продовжував думати в книзі Майо: «Існує спосіб, за допомогою якого можна використовувати комп’ютери, щоб переконатись, що наші частістські методи працюють, тому що ймовірність - це те, що ми бачимо в довгостроковій перспективі, і ми можемо імітувати це. Байєси навіть не можуть погодитись, яка ймовірність насправді, здається, залежно від байєсівської школи (за замовчуванням, суб'єктивної тощо). Що призводить мене до мого питання:
Питання : Яким чином байєси перевіряють, що їх методи правильно визначають невизначеність (тобто обчислюють дійсні достовірні інтервали та задній розподіл), використовуючи методи моделювання Монте-Карло, якщо ймовірність не визначається як швидкість у довгостроковій перспективі?
Приклад : я створюю генератор даних. Це просто буде імітувати розподіл Бернуллі з вірогідністю .5:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Тепер, скажімо, я хочу переконатися, що інтервали довіри в логістичній регресії справді дійсні. Я можу симулювати регресію у великій кількості разів і переконатися, що фактична цінність населення падає на 95% довірчий інтервал 95% часу. Це лише модель перехоплення, тому я просто хочу переконатися, що я p
правильно оцінюю:
set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
mod <- glm(gen_dat(n, p) ~ 1, binomial)
conf <- suppressMessages(confint(mod))
log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)
На це потрібно кілька хвилин, але ми закінчуємо mean(results)
дзвінок, який нам надає 0.9416
. Це близько 95%, і я впевнено кажу, що glm
команда справедливо описує невизначеність. Я впевнений, що наблизився би прямо до носа на 95%, якби я піднявся iter
і хотів довше почекати тут на своєму ноутбуці.
З іншого боку, давайте підходимо байєсівській моделі для того ж самого:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
Частково це дає мені:
Estimates:
mean sd 2.5% 25% 50% 75% 97.5%
(Intercept) -0.1 0.2 -0.5 -0.2 -0.1 0.0 0.3
mean_PPD 0.5 0.1 0.3 0.4 0.5 0.5 0.6
log-posterior -73.0 0.7 -75.1 -73.1 -72.7 -72.5 -72.5
Оскільки байєси не визначають ймовірність як те, що ми бачимо в довгостроковій перспективі, як я можу використовувати методи моделювання для перевірки, ніж stan_glm
точно фіксує невизначеність? Тобто, як я можу повірити, що ці достовірні інтервали дійсні, використовуючи методи моделювання? І зараз я навіть не визначаю пріоритету - як тут буде грати включення пріорів, оскільки це вплине на наші заходи невизначеності?
Коли я намагався один раз записати бета-регресію з компонентом моделі перешкод у Стен з нуля, мені хтось порекомендував: "Імітуйте дані. Зробіть це багато разів, і справжні оцінки повинні бути в достовірному проміжку приблизно 95 % часу ". Але для мене це суперечить тому, в що вірять байєси! Це покладається на часті розуміння ймовірності! Отже, як би переконав мене баєс у тому, що я отримую надійний інтервалsummary()
дзвінка до моєї моделі, точно описує невизначеність, використовуючи методи моделювання?
Мета питання : Це банальний приклад, але багато разів клієнти надають мені складні проблеми. І я пробую речі, які мені незнайомі, тому я часто проводжу імітаційне дослідження, щоб переконатися, що те, що я роблю, є дійсним. Якби я писав на Стенті користувальницьку модель, як би я знав, що те, що я роблю, це законно? Як я міг використати методи моделювання, щоб переконатися, що те, що я роблю в Стен, насправді збирається сказати мені, що я хочу знати?