Je lisais cette question et j'ai pensé à simuler la quantité requise. Le problème est le suivant: si et sont normaux normaux, qu'est-ce que E (A ^ 2 | A + B) ? Je veux donc simuler E (A ^ 2 | A + B) . (pour une valeur choisie de A + B )
J'ai essayé le code suivant pour y parvenir:
n <- 1000000
x <- 1 # the sum of A and B
A <- rnorm(n)
B <- rnorm(n)
sum_AB = A+B
estimate <- 1/sum(sum_AB==x) * sum( (A[sum_AB==x])^2 )
Le problème est qu'il n'y a presque toujours aucune valeur dans sum_AB
laquelle les correspondances x
(entre les simulations). Si je choisis un élément sum_AB
, c'est généralement la seule instance de sa valeur dans le vecteur.
En général, comment peut-on s'attaquer à ce problème et effectuer une simulation précise pour trouver une attente de la forme donnée? ( et ne sont pas nécessairement distribués normalement ou issus de la même distribution.)
r
simulation
monte-carlo
conditional-expectation
Comp_Warrior
la source
la source
Réponses:
Mon commentaire dans le fil référencé suggère une approche efficace: parce que et sont conjointement normaux avec une covariance nulle, ils sont indépendants, d'où la simulation n'a besoin que de générer (qui a une moyenne de et une variance ) et construire . Dans cet exemple, la distribution de est examinée au moyen de l'histogramme de valeurs simulées.X= A + B Oui= A - B Oui 0 2 A = ( X+ Y) / 2 UNE2| (A+B=3) dix5
L'attente peut être estimée comme
La réponse devrait être proche de .11 / 4 = 2,75
la source
Une façon générique de résoudre ce problème consiste à considérer le changement de variables de à . Le jacobien de cette transformée étant égal à un (1), la densité de est Donc la densité de conditionnelle à est avec le terme de proportionnalité étant l'inverse de la densité marginale de , . Puisque , une transformée déterministe, c'est aussi la densité conjointe de donnée( A , B ) ( A , A + B = S) ( A , S)
la source
Vous pouvez résoudre ce problème en utilisant des exemples d'amorçage. Par exemple,
En exécutant ce code par exemple, j'obtiens ce qui suit
Ainsi, lorsque alors .UNE + B = 0,9890429 E(UNE2| A+B=0,9890429) = 0,7336328
Maintenant pour valider que cela devrait être la réponse, exécutons le code de whuber dans sa solution. Donc, exécuter son code avec les
x<-0.9890429
résultats suivants:Et donc les deux solutions sont très proches et coïncident l'une avec l'autre. Cependant, mon approche du problème devrait en fait vous permettre de saisir n'importe quelle distribution que vous souhaitez plutôt que de vous fier au fait que les données proviennent de distributions normales.
Une deuxième solution plus brutale qui repose sur le fait que lorsque la densité est relativement grande, vous pouvez facilement effectuer un calcul de force brute est la suivante
En exécutant ce code, nous obtenons ce qui suit
Ainsi, l'exécution du code pour donne ce qui correspond à la vraie solution.A + B = 3 E(UNE2| A+B=3)=2,757067
la source
il me semble que la question devient celle-ci:
Commençons par examiner l' échantillonnage d'importance :
où la première attente est relative à la variable aléatoire de densité et la seconde est par rapport à de densité .Z1 F1( z) Z2 F2( z)
Ainsi, si vous pouvez simuler aléatoirement les partir de puis estimer en utilisant ou alternativement simuler les partir de puis en utilisantzje F1 1n∑jeV(zje) zje F2 1n∑jeV(zje)F1(zje)F2(zje)
Revenons maintenant à notre cas et sont distribués en tant que condition (X, Y) sur X + Y = k, c'est-à-dire et laissezU( x , y) =X2 ( X, Y) F( x , y)∫x + y= kF( x , y) A =∫x + y= kF( x , y)
alors maintenant la procédure est:
la source