Exemple simple qui montre les avantages de la moyenne du modèle bayésien (BMA)

12

J'incorpore une approche de Bayesian Model Averaging (BMA) dans mes recherches et je ferai bientôt une présentation de mon travail à mes collègues. Cependant, BMA n'est pas vraiment bien connu dans mon domaine, donc après leur avoir présenté toute la théorie et avant de l'appliquer à mon problème, je veux présenter un exemple simple mais instructif sur les raisons pour lesquelles BMA fonctionne.

Je pensais à un exemple simple avec deux modèles, mais le vrai modèle de génération de données (DGM) se situe quelque part entre les deux et les preuves ne favorisent vraiment aucun d'entre eux. Donc, si vous en choisissez un et continuez, vous ignoreriez l'incertitude du modèle et feriez une erreur, mais BMA, bien que le vrai modèle ne fasse pas partie de l'ensemble de modèles, donne au moins une densité postérieure correcte du paramètre d'intérêt. Par exemple, il y a deux prévisions météorologiques chaque jour (A et B) et l'on veut prédire le meilleur temps, donc dans les statistiques classiques, vous devriez d'abord essayer de trouver le meilleur prévisionniste entre les deux, mais que se passe-t-il si la vérité se situe quelque part entre les deux (c'est-à-dire que parfois A a raison, parfois B). Mais je n'ai pas pu le formaliser. Quelque chose comme ça, mais je suis très ouvert aux idées. J'espère que cette question est suffisamment précise!

Dans la littérature, je n'ai pas trouvé de bons exemples de ce que j'ai lu jusqu'à présent:

  • Kruschke (2011) , bien qu'il constitue une excellente introduction aux statistiques bayésiennes, ne se concentre pas vraiment sur le BMA et l'exemple de tirage au sort qu'il a au chapitre 4 est idéal pour introduire les statistiques bayésiennes, mais ne convainc pas vraiment un collègue de recherche d'utiliser le BMA. ("Pourquoi encore une fois j'ai trois modèles, l'un disant que la pièce est juste et deux disant qu'elle est biaisée dans les deux sens?")
  • Toutes les autres choses que j'ai lues ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al. (1999) et des tonnes d'autres) sont d'excellentes références, mais je n'y ai pas trouvé d'exemple de jouet simple.

Mais peut-être que je viens de manquer une bonne source ici.

Alors, quelqu'un a-t-il un bon exemple qu'il utilise pour introduire le BMA? Peut-être même en montrant les probabilités et les postérieurs parce que je pense que ce serait très instructif.

Christoph_J
la source
Une courte mise à jour: je viens de tomber sur cette présentation qui fait référence au paradoxe de Freedman dans la section 2. Il y a un court exemple dans lequel 39 covariables aléatoires sont simulées et si l'on cherche juste le meilleur modèle, on trouve finalement des covariables significatives. La moyenne des modèles est apparemment un remède à ce problème. Je ne poste pas de solution avec du code ici parce que franchement, je ne sais pas comment les chiffres y sont dérivés.
Christoph_J
(Suite) Sur quoi font-ils exactement la moyenne? Le meilleur paramètre? Tous les paramètres (je pense que cela n'aurait de sens que dans cet exemple spécifique). Pourtant, je pense que les graphiques en combinaison avec l'indice du paradoxe de Freedman sont très utiles. Peut-être que cela aide certains.
Christoph_J

Réponses:

8

J'ai fait quelque chose de similaire récemment. Pas tellement essayer de convaincre les autres, mais faire un petit projet qui m'a permis d'avoir un petit avant-goût du BMA. Ce que j'ai fait était de générer un ensemble de données avec une réponse binaire, trois variables indépendantes qui ont eu un effet sur la réponse et sept variables qui n'ont eu aucun effet sur la réponse. J'ai ensuite comparé les résultats BMA aux estimations fréquentistes en régression logistique. Je pense qu'au moins dans ce cas, l'approche BMA semble être assez bonne. Si vous voulez le rendre plus accessible, vous pouvez toujours nommer les variables ou quelque chose au lieu de les appeler et génériques .yXy

Le code R que j'ai utilisé pour cela est présenté ci-dessous. J'espère que cela peut vous inspirer!

# 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)
hejseb
la source
2
C'est un bel exemple, alors +1 pour cela. Cependant, comme vous l'avez déjà souligné, cela n'aide pas vraiment à convaincre les autres d'utiliser BMA. En fait, je le lance et il m'a même fallu un certain temps pour me convaincre que la BMA est meilleure ici que l'approche classique: le meilleur modèle n'est pas le vrai modèle (le meilleur modèle ne comprend que x2 et x3) et les paramètres pour model2 ne le sont pas que beaucoup moins, au moins pour les paramètres pertinents. Cependant, il montre certains paramètres importants x5 et x6 qui ne devraient pas être là et BMA fait un excellent travail en vous disant que ce n'est pas significatif, c'est donc un avantage pour BMA.
Christoph_J
2

Une excellente ressource pour cela est:
la moyenne du modèle bayésien avec BMS par Stefan Zeugner (2012)

Il utilise le R-package BMS , plus d'informations peuvent être trouvées ici:
http://bms.zeugner.eu/

Deux didacticiels pratiques pour reproduire des exemples du monde réel avec le package peuvent être trouvés ici:

Une introduction plus générale de motivation et actuelle aux méthodes bayésiennes est l'article suivant:

Le temps est venu: méthodes bayésiennes pour l'analyse des données dans les sciences organisationnelles par John K. Kruschke, Herman Aguinis et Harry Joo

vonjd
la source
Merci pour les liens, mais ils ne sont pas vraiment ce que je recherche. En fait, je connaissais et utilisais le paquet avant (c'est génial) et je suis d'accord que leur documentation est vraiment instructive. Mais encore une fois, l'intention des auteurs n'est pas de convaincre quelqu'un (si tout va bien en moins de 5 minutes) pourquoi il devrait utiliser BMA, mais étant donné qu'il veut l'utiliser, comment le faire avec son package. Ils commencent donc par l' attitudeexemple et si vous faites défiler votre premier lien, il n'y a vraiment pas de tableau ou de figure où vous criez: "Décidément, je suis heureux d'avoir utilisé BMA!"
Christoph_J
Suite: Juste pour être clair, ce n'est bien sûr pas du tout une critique de leur documentation: ce n'est pas leur intention en premier lieu. Peut-être pour donner un exemple que je recherche. Supposons que vous vouliez expliquer le problème des valeurs aberrantes dans une régression linéaire. Vous commenceriez probablement par quelque chose comme les graphiques ici . Bien sûr, le problème des données réelles ne sera jamais aussi simple. Il va être difficile de définir une valeur aberrante, etc. Mais avec un tel graphique, tout le monde sait ce qui se passe.
Christoph_J
3
@Christoph_J: Connaissez-vous cet article: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - il ne s'agit pas tant de BMA mais de convaincre quelqu'un d'utiliser les méthodes bayésiennes en premier lieu - c'est peut-être quelque chose qui est utile pour vous :-)
vonjd
1
Je ne le connaissais pas et c'est un très bon article d'introduction aux méthodes bayésiennes, donc +1 pour le lien. Merci.
Christoph_J
@Christoph_J: J'ai édité le post en conséquence: Votre +1 pour la réponse n'a pas fonctionné, il est toujours 0 (?!?) Alors pourriez-vous s'il vous plaît le refaire - Merci :-)
vonjd