Estaba leyendo esta pregunta y pensé en simular la cantidad requerida. El problema es el siguiente: si y son estándar normal, ¿qué es ? Entonces quiero simular . (para un valor elegido de )
Intenté el siguiente código para lograr esto:
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 )
El problema es que casi siempre no hay ningún valor en el sum_AB
que coincidan x
(entre simulaciones). Si elijo algún elemento sum_AB
, generalmente es la única instancia de su valor en el vector.
En general, ¿cómo se puede abordar este problema y realizar una simulación precisa para encontrar una expectativa de la forma dada? ( y no necesariamente se distribuyen normalmente, o de la misma distribución).
r
simulation
monte-carlo
conditional-expectation
Comp_Warrior
fuente
fuente
Respuestas:
Mi comentario en el hilo de referencia sugiere un enfoque eficiente: porque e son conjuntamente normales con cero covarianza, son independientes, por lo que la simulación solo necesita generar (que tiene una media deX= A + B Y= A - B Y 0 0 y varianza2 ) y construir A = ( X+ Y) / 2 . En este ejemplo, la distribución deUNA2El | (A+B=3) se examina mediante el histograma de 105 5 valores simulados
La expectativa se puede estimar como
La respuesta debe estar cerca de11 / 4 = 2,75 .
fuente
Una forma genérica de resolver este problema es considerar el cambio de variables de( A , B ) a ( A , A + B = S) . El jacobiano de esta transformación es igual a uno (1), la densidad de( A , S) es
fuente
Puede resolver este problema utilizando muestras de bootstrap. Por ejemplo,
Al ejecutar este código, por ejemplo, obtengo lo siguiente
Así que cuandoA + B = 0.9890429 entonces mi(UNA2El | A+B=0.9890429)=0.7336328 .
Ahora para validar que esta debería ser la respuesta, ejecutemos el código de Whuber en su solución. Así que ejecuta su código con
x<-0.9890429
resultados en lo siguiente:Y así, las dos soluciones son muy cercanas y coinciden entre sí. Sin embargo, mi enfoque del problema debería permitirle ingresar cualquier distribución que desee en lugar de confiar en el hecho de que los datos provienen de distribuciones normales.
Una segunda solución más de fuerza bruta que se basa en el hecho de que cuando la densidad es relativamente grande, puede realizar fácilmente un cálculo de fuerza bruta es la siguiente
Al ejecutar este código obtenemos lo siguiente
Ejecutando así el código paraA + B = 3 resultados en mi(UNA2El | A+B=3)=2.757067 que concuerda con la verdadera solución.
fuente
me parece que la pregunta se convierte en esto:
Comencemos por revisar el muestreo de importancia :
donde las primeras expectativas son con respecto a la variable aleatoriaZ1 con densidad F1( z) y el segundo es wrt Z2 con densidad F2( z) .
Por lo tanto, si puede simular aleatoriamentezyo es de F1 luego estimar usando 1norte∑yoV(zyo) o alternativamente simular zyo es de F2 luego usando 1norte∑yoV(zyo)F1(zyo)F2(zyo)
Ahora volvamos a nuestro casoU( x , y) =X2 y ( X, Y) se distribuyen como (X, Y) condición en X + Y = k, es decir F( x , y)∫x + y= kF( x , y) y deja A =∫x + y= kF( x , y)
así que ahora el procedimiento es:
fuente