Exemplo simples que mostra as vantagens da Média Bayesiana de Modelos (BMA)


12

Estou incorporando uma abordagem Bayesian Model Averaging (BMA) em minha pesquisa e em breve apresentarei meu trabalho aos meus colegas. No entanto, o BMA não é tão conhecido no meu campo, então, depois de apresentar a eles toda a teoria e antes de aplicá-la ao meu problema, quero apresentar um exemplo simples e instrutivo sobre o porquê do BMA funcionar.

Eu estava pensando em um exemplo simples com dois modelos que podemos escolher, mas o verdadeiro modelo de geração de dados (DGM) está em algum lugar no meio e as evidências realmente não favorecem nenhum deles. Portanto, se você escolher um e continuar a partir deles, ignoraria a incerteza do modelo e cometeria um erro, mas o BMA, embora o modelo verdadeiro não faça parte do conjunto de modelos, pelo menos fornece a densidade posterior correta do parâmetro de interesse. Por exemplo, existem duas previsões meteorológicas por dia (A e B) e uma delas prevê o melhor clima; portanto, nas estatísticas clássicas, você primeiro tentaria encontrar a melhor previsão entre as duas, mas e se a verdade estiver em algum lugar entre elas? (ou seja, às vezes A está certo, às vezes B). Mas não pude formalizar. Algo assim, mas estou muito aberto a idéias. Espero que esta pergunta seja específica o suficiente!

Na literatura, não encontrei bons exemplos do que li até agora:

  • Kruschke (2011) , embora seja uma ótima introdução às estatísticas bayesianas, não se concentra realmente no BMA, e o exemplo do sorteio que ele tem no capítulo 4 é ótimo para introduzir as estatísticas bayesianas, mas não convence um colega pesquisador a usar o BMA. ("Por que novamente eu tenho três modelos, um dizendo que a moeda é justa e dois dizendo que é tendenciosa em qualquer direção?")
  • Todas as outras coisas que li ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al. (1999) e muitas outras) são ótimas referências, mas não encontrei um exemplo simples de brinquedo nelas.

Mas talvez eu tenha perdido uma boa fonte aqui.

Então, alguém tem um bom exemplo que ele ou ela usa para apresentar a BMA? Talvez mostrando até as probabilidades e posteriores porque acho que isso seria bastante instrutivo.


Uma breve atualização: acabei de encontrar esta apresentação que se refere ao paradoxo de Freedman na seção 2. Há um pequeno exemplo em que 39 covariáveis ​​aleatórias são simuladas e, se apenas procurarmos o melhor modelo, eventualmente encontraremos covariáveis ​​significativas. A média do modelo é aparentemente uma cura para esse problema. Não estou postando uma solução com código aqui porque, francamente, não sei como as figuras são derivadas.
10113 Christoph_J

(Continuação) Sobre o que exatamente eles estão calculando a média? O melhor parâmetro? Todos os parâmetros (acho que isso só faria sentido neste exemplo específico). Ainda assim, acho que os gráficos em combinação com a dica do paradoxo de Freedman são bastante úteis. Talvez ajude alguns.
10113 Christoph_J

Respostas:


8

Eu fiz algo parecido recentemente. Não tentando convencer os outros, mas fazendo um pequeno projeto que me permitiu ter um gostinho da BMA. O que fiz foi gerar um conjunto de dados com uma resposta binária, três variáveis ​​independentes que tiveram efeito na resposta e sete variáveis ​​que não tiveram nenhum efeito na resposta. Eu então comparei os resultados da BMA com as estimativas freqüentes na regressão logística. Penso que, pelo menos neste caso, a abordagem BMA parece ser bastante boa. Se você quiser torná-lo mais acessível, sempre poderá nomear as variáveis ​​ou algo assim, em vez de chamá-las de e genéricos .Xy

O código R que usei para isso é apresentado abaixo. Espero que possa inspirar você!

# 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
Esse é um bom exemplo, então marque com +1. No entanto, como você já apontou, isso realmente não ajuda a convencer os outros a usar o BMA. Na verdade, eu o rodo e até demorou um tempo para me convencer de que o BMA é melhor aqui do que a abordagem clássica: o melhor modelo não é o verdadeiro (o melhor modelo inclui apenas x2 e x3) e os parâmetros para o model2 não são isso, pelo menos para os parâmetros relevantes. No entanto, ele mostra alguns parâmetros significativos x5 e x6 que não deveriam estar lá e o BMA faz um ótimo trabalho ao dizer que isso não é significativo, portanto, isso é uma vantagem para o BMA.
9113 Christoph_J

2

Um ótimo recurso para isso é:
Modelo Bayesiano de Média com BMS por Stefan Zeugner (2012)

Está usando o pacote R BMS , mais informações podem ser encontradas aqui:
http://bms.zeugner.eu/

Dois tutoriais práticos para reproduzir exemplos do mundo real com o pacote podem ser encontrados aqui:

Uma introdução motivacional e atual mais geral aos métodos bayesianos é o seguinte artigo:

Chegou a hora: métodos bayesianos para análise de dados nas ciências organizacionais por John K. Kruschke, Herman Aguinis e Harry Joo


Obrigado pelos links, mas eles não são exatamente o que eu estou procurando. Na verdade, eu conhecia e usei o pacote antes (é ótimo) e concordo que a documentação deles é realmente instrutiva. Mas, novamente, a intenção dos autores não é convencer alguém (esperançosamente em menos de 5 minutos) por que eles devem usar BMA, mas, como eles querem usá-lo, como fazê-lo com seu pacote. Então, eles começam com o attitudeexemplo e, se você rolar pelo seu primeiro link, não há realmente nenhuma tabela ou figura em que você grite: "Nossa, estou feliz por ter usado o BMA!"
23413 Christoph_J

Continuação: Só para deixar claro, isso não é de forma alguma uma crítica à sua documentação: não é a intenção deles em primeiro lugar. Talvez para dar um exemplo que eu estou procurando. Vamos supor que você queira explicar o problema dos outliers em uma regressão linear. Você provavelmente começaria com algo parecido com os gráficos aqui . Obviamente, o problema em dados reais nunca será tão fácil. Vai ser difícil como você define um outlier etc. Mas com esse gráfico, todo mundo sabe o que está acontecendo.
23413 Christoph_J

3
@Christoph_J: Você conhece este artigo: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - não se trata tanto de BMA, mas de convencer alguém a usar métodos bayesianos em primeiro lugar - talvez isso seja útil para você :-)
vonjd 23/09

11
Eu não conhecia essa e é realmente um bom artigo introdutório aos métodos bayesianos, então marque +1 no link. Obrigado.
23413 Christoph_J

@Christoph_J: Eu editei o post em conformidade: O seu +1 para a resposta não funcionou, ainda é 0 para que você pudesse por favor, fazê-lo novamente - Obrigado :-) (?!?)
vonjd
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.