Простий приклад, який показує переваги байєсівського усереднення моделей (BMA)


12

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

Я думав про простий приклад з двома моделями, з яких можна вибрати, але справжня модель генерування даних (DGM) знаходиться десь посеред, і докази насправді не сприяють жодній із них. Отже, якщо ви виберете один і продовжите з них далі, ви б ігнорували невизначеність моделі та помилилися, але BMA, хоча справжня модель не є частиною набору моделей, принаймні дає правильну задню щільність параметра, що цікавить. Наприклад, щодня є два прогнози погоди (A і B), і один хоче передбачити найкращу погоду, тому в класичній статистиці ви спершу спробуєте знайти найкращого синоптика між ними, але що робити, якщо правда десь посеред (тобто іноді А правильно, іноді В). Але я не зміг це формалізувати. Щось подібне, але я дуже відкритий до ідей. Я сподіваюся, що це питання є досить конкретним!

У літературі я не знайшов жодного приємного прикладу з того, що читав досі:

  • Kruschke (2011) , хоч чудовий вступ до байєсівської статистики, не дуже присвячений BMA, і приклад монети монет, який він містить у главі 4, чудово підходить для впровадження статистики Байєса, але насправді не переконує колег-дослідника використовувати BMA. ("Чому я знову маю три моделі: одна говорить, що монета є справедливою, а дві кажуть, що вона упереджена в будь-який бік?")
  • Всі інші речі, які я читаю ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al. (1999) і багато інших), є чудовими посиланнями, але я не знайшов у них простого іграшкового прикладу.

Але, можливо, я просто пропустив тут гарне джерело.

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


Коротке оновлення: я щойно натрапив на цю презентацію, в якій йдеться про парадокс Фрідмана в розділі 2. Є короткий приклад, в якому моделюється 39 випадкових коваріатів, і якщо просто шукати найкращу модель, зрештою знаходять значні коеваріати. Усереднення моделей є, очевидно, ліком для цієї проблеми. Я не розміщую тут рішення з кодом, бо, чесно кажучи, я не знаю, як отримані цифри.
Крістоф_J

(Продовження) Що саме вони усереднюють? Найкращий параметр? Усі параметри (я думаю, це мало б сенс лише в цьому конкретному прикладі). І все-таки я вважаю, що діаграми в поєднанні з натяком на парадокс Фрідмана є досить корисними. Можливо, комусь це допомагає.
Крістоф_J

Відповіді:


8

Xy

Код R, який я використовував для цього, представлений нижче. Сподіваюся, це може надихнути вас!

# The sample size
n <- 100

# The 'true' coefficient vector
Beta <- cbind(c(-1.5, 0.45, -3))

# Generate the explanatory variables which have an effect on the outcome
set.seed(1)
X <- cbind(rnorm(n, 0, 1), rnorm(n, 4, 2), rnorm(n, 0.5, 1))

# Convert this into probabilities
prob <- 1/(1+exp(-X %*% Beta))

# Generate some uniform numbers. If the elements are smaller than the corresponding elements in the prob vector, then return 1.
set.seed(2)
runis <- runif(n, 0, 1)
y <- ifelse(runis < prob, 1, 0)

# Add the nonsense variables
X <- cbind(X, rpois(n, 3))        # Redundant variable 1 (x4)
X <- cbind(X, rexp(n, 10))        # Redundant variable 2 (x5)
X <- cbind(X, rbeta(n, 3, 10))    # Redundant variable 3 (x6)
X <- cbind(X, rbinom(n, 10, 0.5)) # Redundant variable 4 (x7)
X <- cbind(X, rpois(n, 40))       # Redundant variable 5 (x8)
X <- cbind(X, rgamma(n, 10, 20))  # Redundant variable 6 (x9)
X <- cbind(X, runif(n, 0, 1))     # Redundant variable 7 (x10)


# The BMA
library(BMA)
model <- bic.glm(X, y,  glm.family="binomial", factor.type=FALSE, thresProbne0 = 5, strict = FALSE)

# The frequentist model
model2 <- glm(y~X, family = "binomial")

old.par <- par()
par(mar=c(3,2,3,1.5))
plot(model, mfrow=c(2,5))
par(old.par)

summary(model)
summary(model2)

2
Це приємний приклад, тому +1. Однак, як ви вже вказували, це не дуже допомагає переконати інших використовувати BMA. Насправді я запускаю це, і це навіть зайняло певний час, щоб переконати мене, що BMA тут краща, ніж класичний підхід: найкраща модель - це не справжня модель (найкраща модель включає лише x2 і x3), а параметри для model2 - не це значно, принаймні для відповідних параметрів. Однак він показує деякі значущі параметри x5 та x6, яких не повинно бути там, і BMA робить чудову роботу, кажучи вам, що це не суттєво, тому це є плюсом для BMA.
Крістоф_J

2

Чудовим ресурсом для цього є:
Байєсівська модель усреднення за допомогою BMS Стефана Зейгнера (2012)

Він використовує R-пакет BMS , більше інформації можна знайти тут:
http://bms.zeugner.eu/

Два практичні підручники для відтворення прикладів із реального світу з пакетом можна знайти тут:

Більш загальний мотиваційний та сучасний вступ до байєсівських методів - наступний документ:

Настав час: Байєсові методи аналізу даних в організаційних науках Дж. К. Крушке, Герман Агініс та Гаррі Джо


Дякую за посилання, але вони насправді не те, що я шукаю. Я фактично знав і використовував пакет раніше (це чудово) і погоджуюся, що їх документація справді повчальна. Але знову ж таки, намір авторів - не переконувати когось (сподіваємось, менше ніж за 5 хвилин), чому вони повинні використовувати BMA, але враховуючи, що вони хочуть ним користуватися, як це зробити зі своїм пакетом. Тож вони починаються з attitudeприкладу, і якщо ви прокручуєте своє перше посилання, насправді не існує жодної таблиці чи фігури, де ви кричали б: "Гез, я щасливий, що використовував BMA!"
Крістоф_J

Продовження: Просто щоб було зрозуміло, це, звичайно, жодним чином не є критикою їхньої документації: насамперед це не їхній намір. Можливо, навести приклад, за яким я слідую. Припустимо, ви хочете пояснити проблему переживачів у лінійній регресії. Ви, мабуть, почали б із чогось такого, як сюди графіки . Звичайно, проблема в реальних даних ніколи не буде такою простою. Важко буде, як визначити сторонні тощо. Але за допомогою такої діаграми всі знають, що відбувається.
Крістоф_J

3
@Christoph_J: Чи знаєте ви цей документ: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - мова йде не стільки про BMA, скільки про переконання когось використовувати байєсівські методи - можливо, це щось корисне для ви :-)
фондж

1
Я цього не знав, і це дуже хороший вступний документ до байєсівських методів, тому +1 за посиланням. Дякую.
Крістоф_J

@Christoph_J: Я відповідно відредагував пост: Ваш +1 для відповіді не працював, він все ще 0 (?!?), Тому ви можете, будь ласка, зробити це ще раз - Дякую :-)
vonjd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.