Vous recherchez une distribution, peut-être peu commune, cohérente avec deux points de données et des contraintes expertes?


8

J'essaie d'indiquer une distribution antérieure pour une méta-analyse bayésienne.

J'ai les informations suivantes sur une variable aléatoire:

  1. Deux observations: 3.0, 3.6
  2. un scientifique qui étudie la variable m'a dit que P(X<2)=P(X>8)=0, et que des valeurs aussi élevées que 6 ont une probabilité non nulle.

J'ai utilisé l'approche d'optimisation suivante (le mode de log-N = eμσ2):

prior <- function(parms, x, alpha) {
  a <- abs(plnorm(x[1], parms[1], parms[2]) - (alpha/2))
  b <- abs(plnorm(x[2], parms[1], parms[2]) - (1-alpha/2))
  mode <- exp(parms[1] - parms[2]^2)
  c <- abs(mode-3.3)
  return(a + b + c)
}
v = nlm(prior,c(log(3.3),0.14),alpha=0.05,x=c(2.5,7.5))
x <- seq(1,10,0.1)
plot(x, dlnorm(x, v$estimate[1], v$estimate[2]))
abline(v=c(2.5,7.5), lty=2) #95%CI

texte alternatif

Dans la figure, vous pouvez voir la distribution que cela renvoie, mais je voudrais trouver quelque chose de plus semblable aux lignes rouges que j'ai dessinées.

Cela fournit la même distribution de forme en utilisant le lognormal, gamma ou la normale, et il en résulte une distribution avec P(X=5)<0.05 et P(X=6)<0.01, c'est à dire:

 plnorm(c(5,6), v$estimate[1],v$estimate[2])

Quelqu'un peut-il suggérer des alternatives? Je préférerais m'en tenir à une seule distribution plutôt qu'à un mélange.

Merci!


1
Dans votre question, vous avez P(X=2)=0 et P(X=8)=0. Tu veux dire:P(X<2)=0 et P(X>8)=0??
M. Tibbits

1
@David Après avoir lu cette question plusieurs fois, je ne la comprends toujours pas. Utilisez-vous les deux observations et l'opinion du scientifique pour estimer un a priori pour une analyse bayésienne? Votre préalable sera-t-il basé uniquement sur l'opinion du scientifique et vous souhaitez le mettre à jour avec les observations? Quelle est la distinction entre "sans surprise" et une probabilité nulle?
whuber

1
@David J'apprécie votre sollicitude pour obtenir les informations. Mais attribuer des valeurs spécifiques de 0,05 et 0,01 à ces probabilités est discutable. Ce n'est pas de ta faute; c'est comme ça. Nous ne pouvons pas nous attendre à ce que les gens définissent si bien les probabilités (c'est à cela que servent les données). Peut-être que vous aimeriez représenter ceux qui ont des hyperpriors :-)?
whuber

1
@whuber Merci pour le suivi. Je comprends maintenant le concept de la solution d'entropie maximale que vous avez précédemment suggérée, bien qu'il me faudrait un peu d'apprentissage de ma part avant de vouloir l'appliquer. Votre alternative, en maximisant la variance, semble suffisamment cohérente avec mon objectif et simple à mettre en œuvre. Merci encore.
David LeBauer

1
@David Soyez conscient qu'un problème avec la maximisation de la variance est que la solution sera une distribution discrète. Je m'attends à ce qu'il concentre 0,01 probabilité à X = 8, 0,04 à X = 6, 157/300 à X = 2, et le reste (32/75) à X = 5. (Cet écart est égal à 2,59.)
whuber

Réponses:


5

Si, compte tenu de la réponse à mon commentaire ci-dessus, vous souhaitez limiter la plage de la distribution, pourquoi ne pas simplement adapter une distribution bêta où vous redimensionnez à l'intervalle unitaire? En d'autres termes, si vous savez que le paramètre d'intérêt doit se situer entre[2,8], alors pourquoi ne pas définir Y=X56+12=X26. Où j'ai d'abord centré l'intervalle sur zéro, divisé par la largeur de sorte que Y aura une plage de 1, puis ajouté12 retour de sorte que la plage de Y est [0,1]. (Vous pouvez y penser de toute façon: directement depuis[2,8][0,1] ou de [2,8][12,12][0,1], mais j'ai pensé que ce dernier pourrait être plus facile au début).

Ensuite, avec deux points de données, vous pourriez adapter un bêta postérieur avec un bêta uniforme avant?


2

Qu'en est-il de la distribution de Kumaraswamy , qui a le pdf suivant:

f(x;a,b)=abxa1(1xa)b1
pour a>0, b>0, 0<x<1. Cette distribution peut être redimensionnée pour avoir le support requis.

2

Étant donné que la distribution log-normale a deux paramètres, vous ne pouvez pas l'adapter de manière satisfaisante à trois contraintes qui ne l'adaptent pas naturellement. Avec des quantiles extrêmes de 2,5 et 7,5, le mode est ~ 4, et vous ne pouvez pas faire grand-chose à ce sujet. Étant donné que l'échelle des erreurs pour aet best beaucoup plus petite que pour c, l'une d'entre elles sera à peu près ignorée lors de l'optimisation.

Pour un meilleur ajustement, vous pouvez soit choisir une distribution à trois paramètres, par exemple la distribution gamma généralisée (implémentée dans le VGAMpackage), soit ajouter un paramètre de décalage à la distribution lognormale (ou gamma, ...).

Enfin, comme la distribution que vous recherchez n'est clairement pas symétrique, la moyenne des deux observations données n'est pas la bonne valeur pour le mode. Je maximiserais la somme des densités à 3,0 et 3,6 tout en maintenant les quantiles extrêmes à 2,5 et 7,5 - c'est possible si vous avez trois paramètres.


1

Vous pouvez également essayer la distribution triangulaire. Pour ajuster cela, vous spécifiez essentiellement une borne inférieure (ce serait X = 2), une borne supérieure (ce serait X = 8) et une valeur "très probable". La page wikepedia http://en.wikipedia.org/wiki/Triangular_distribution a plus d'informations sur cette distribution. S'il n'y a pas beaucoup de confiance dans la valeur "la plus probable" (comme cela semble être le cas avant d'observer des données), il peut être judicieux de placer une distribution préalable non informative dessus, puis d'utiliser les deux données points pour estimer cette valeur. Un bon est le précédent de Jeffrey, qui pour ce problème serait p (c) = 1 / (pi * sqrt ((c-2) * (c-8))), où "c" est la "valeur la plus probable" "(conforme à la notation wikipedia).

Compte tenu de cet préalable, vous pouvez déterminer la distribution postérieure de c de manière analytique ou via la simulation. La forme analytique de la probabilité n'est pas particulièrement agréable, la simulation semble donc plus attrayante. Cet exemple est particulièrement bien adapté à l'échantillonnage par rejet (voir la page wiki pour une description générale de l'échantillonnage par rejet), car la probabilité maximisée est de 1/3 ^ n quelle que soit la valeur de c, qui fournit la "borne supérieure". Vous générez donc un "candidat" à partir du précédent de Jeffrey (appelez-le c_i), puis vous évaluez la probabilité à ce candidat L (x1, .., xn | c_i), et vous divisez par la probabilité maximisée, pour donner (3 ^ n ) * L (x1, .., xn | c_i). Vous générez ensuite une variable aléatoire U (0,1), et si u est inférieur à (3 ^ n) * L (x1, .., xn | c_i), puis acceptez c_i comme valeur échantillonnée postérieure, sinon jetez c_i et recommencez. Répétez ce processus jusqu'à ce que vous ayez suffisamment d'échantillons acceptés (100, 500, 1 000 ou plus selon la précision que vous souhaitez). Ensuite, il suffit de prendre la moyenne de l'échantillon de la fonction de c qui vous intéresse (la probabilité d'une nouvelle observation est un candidat évident pour votre application).

Une alternative à accepter-rejeter consiste à utiliser la valeur de la probabilité comme poids (et ne pas générer le u), puis à procéder à la prise de moyennes pondérées en utilisant tous les candidats, plutôt qu'à des moyennes non pondérées avec les candidats acceptés.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.