2011-05-26 9 views
6

Tengo un "mapa de calor" 2D o PDF que necesito recrear mediante muestreo aleatorio. ES DECIR. Tengo un mapa de densidad de probabilidad 2D que muestra las ubicaciones de inicio. Necesito elegir al azar las ubicaciones de inicio con la misma probabilidad que el PDF original.cómo muestrear numéricamente desde una función de distribución de probabilidad común, discreta

Para hacer esto, creo que primero necesito encontrar la función CDF (función de densidad acumulada), luego elegir números aleatorios uniformes para muestrear la CDF. Ahí es donde me quedo atascado.

¿Cómo encuentro numéricamente el CDF conjunto de mi PDF? Intenté hacer una suma acumulativa en ambas dimensiones, pero eso no arrojó el resultado correcto. Mi conocimiento de las estadísticas me está fallando.

EDITAR El mapa de calor/PDF es la forma de [x, y, z], donde Z es la intensidad o la probabilidad en cada x, y punto.

+0

¿Qué formato tiene su mapa de calor? ¿Tiene alguna función p (x, y) que le da una densidad de probabilidad en x, y? –

Respuesta

1

Bueno, como se observa en this answer, para mi caso no necesariamente importa que mi distribución es de dos variables. Como puedo normalizar todo para que sea un verdadero pdf (la superficie total se integre a 1), puedo reorganizar la matriz MxN en un vector 1xM * N. Una vez que tenga eso, puedo hacer una integral acumulativa (cumtrapz en MATLAB), y luego tomar una muestra de eso (use un número aleatorio uniforme para encontrar el valor del índice correspondiente).

3

Primero podría revisar el mapa de densidad 2D y para cada par (x, y) en él, busque z mediante una búsqueda desde el PDF. Esto le dará un punto de partida (x, y) con una probabilidad de z. Entonces, cada uno de los puntos de partida tiene su propia probabilidad del PDF. Lo que puede hacer ahora, es ordenar los puntos de partida, elegir aleatoriamente un número y asignarlo a algún punto de partida.

Por ejemplo, supongamos que tiene n puntos de partida: P1 .. Pn. Con una probabilidad de p1 .. pn (probabilidades normalizadas o ponderadas, entonces la suma es 100%). Digamos que elige un valor aleatorio p, elige P1 si p < p1, elige P2 si p1 < p < p1 + p2, elige P3 si p1 + p2 < p < p1 + p2 + p3 etc. Puedes verlo como histograma sobre los puntos P1 a PN, que es lo mismo que una función de distribución acumulativa.

1

¡Esto es lo que quiero hacer también!

Tengo un joint density function para las variables independientes X e Y. Y ahora quiero probar nuevas x, y de esta distribución.

Lo que creo que tengo que hacer es encontrar la distribución acumulativa conjunta y luego, de alguna manera, probarla. Que es exactamente lo que parecías haber hecho.

¿Podría ser más específico cuando dice que usa "números aleatorios uniformes para encontrar los valores de índice correspondientes"?

Solo como referencia: X es el tamaño de las órdenes de pedido e Y es el tamaño de las órdenes de venta en el mercado de valores.

+0

[Esto] (http://www.mathworks.com/matlabcentral/fileexchange/35797) ¡La función MATLAB lo resolvió! – Groot

Cuestiones relacionadas