17 votos

muestreo uniforme de puntos en un simplex

Tengo este problema: estoy tratando de muestra de la relación $$ \sum_{i=1}^N x_i = 1 $$ en el dominio donde se $x_i>0\ \forall i$. Ahora mismo sólo estoy extrayendo $N$ números aleatorios $u_i$ a partir de una distribución uniforme $[0,1]$ y luego me transformarlos en $x_i$ mediante el uso de $$ x_i = \frac{u_i}{\sum_{i=1}^N{u_i}}. $$

Esto es correcto, pero me obliga tres $u_i$ a una muestra de la relación.

Si $N=2$, entonces la relación simplificar en $x_1 + x_2 = 1$, y fácilmente se puede extraer una $u_1 = x_1$ y evaluar a los demás como a $x_2 = 1 - x_1$, por lo que el uso de sólo una extracción. Pero si hago lo mismo con $N=3$, puedo tener $u_1 = 0.8$, $u_2 = 0.7$ y yo no sólo puede utilizar la primera relación para evaluar el $x_i$ y no puedo combinarlo con el segundo, ya que no sé el $\sum u_i$.

¿Cómo puedo muestra el $x_i$ que satisface la primera relación, mientras que sólo recogiendo $N-1$ valores de una distribución al azar (preferiblemente el uniforme de uno)? Y ¿qué tipo de problema matemático es esto?

PS yo no soy un matemático y esta es mi primera pregunta aquí. He buscado una respuesta pero creo que no he definido bien el problema por lo que realmente no sabe qué buscar. Siento que la solución podría estar cerca de este , pero no puedo averiguar cómo. Así que agradecería cualquier ayuda de definir mejor el problema desde un punto de vista matemático, así como en la búsqueda de su solución (por supuesto xD)

PS2 también una ayuda a la hora de elegir las etiquetas y el título sería apreciada

15voto

SUMIT MITRA Puntos 16

Matemáticamente, se están tratando de manera uniforme los puntos de muestreo en un simplex, que a su vez también es equivalente a los puntos de muestreo de una distribución Dirichlet y, a continuación, la normalización.

Aquí se explica cómo ver todo esto: tome la unidad de intervalo y de selección uniformemente al azar e independientemente $N-1$ puntos. Estos puntos de la partición de la unidad de la línea en segmentos, así que tómate tu $x_i$ a la igualdad de las longitudes de los segmentos. Básicamente, para implementar esto, dibuja el $N-1$ puntos al azar y luego ordenar en orden creciente, que le da una especie de distribución Beta.

Si usted necesita para el programa de este, aquí es una manera eficiente de hacerlo sin ordenar:

1) Generar $N$ puntos independientes $E_i$ a partir de una distribución exponencial dibujando $U_i$ a partir de una distribución uniforme en $[0,1]$ y, a continuación, calcular la negativa logorithm: $E_i:=-\log(U_i)$.

2) la Suma de todas las muestras para obtener $S:=\sum_{i=1}^{N}E_i$.

3) El vector $x:=(x_1,\ldots,x_{N})$ donde $x_i=E_i/S$ es distribuido uniformemente en el espacio.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X