9 votos

¿Cómo se puede crear números aleatorios con especial correlaciones?

Es posible crear distribuidos de manera uniforme real de los números pseudo-aleatorios
$x_1,x_2$, y $y_1,y_2,y_3\in$ $[0,1]$, sujeción a las siguientes limitaciones:

$$x_1^2+x_2^2=1$$

$$y_1^2+y_2^2+y_3^2=1$$

Traté de usar senos y cosenos, pero que no funciona; el enfoque convencional en la creación de números aleatorios correlacionados con un coeficiente de correlación de Pearson (matriz) a través de la descomposición de Cholesky, no parece adaptarse a esta situación.

¿Cómo se puede implementar? Es eso factible?

17voto

Pale Ale Puntos 69

Como @drhab escribió, es imposible que dos variables. Esto es posible por tres variables, sin embargo: un hecho interesante es que si usted elige un punto al azar en una unidad de esfera en 3 dimensiones (de tal forma que es uniformely distribuidas sobre el área), entonces su $x,y$ $z$ coordenadas son todos uniformely distribuido más de $[-1,1]$. Así que si $y_1$ $\phi$ son variables independientes, uniformely distribuido más de $[0,1]$$[0,\pi/2]$, respectivamente, y se establece $$ y_2 = \sqrt{1-y_1^2}\cos\phi;~~ y_3 = \sqrt{1-y_1^2}\sin\phi, $$ a continuación, $y_2$ $y_3$ son uniformely distribuido más de $[0,1]$.

10voto

pete Puntos 1

Si $x_1^2+x_2^2=1$ $x_1$ es distribuido uniformemente sobre$[0,1]$, entonces la distribución de $x_2^2=1-x_1^2$ es determinado. Es que no la misma distribución de $z^2$ donde $z$ es distribuido uniformemente sobre $[0,1]$. Así que la respuesta a tu "Es posible..." es: no si se trata de dos números al azar. No estoy seguro acerca de tres números.

0voto

Yves Daoust Puntos 30126

En 2D, usando coordenadas polares $x_1=\cos 2\pi u,x_2=\sin 2\pi u$ donde $u$ es uniforme en $[0,1]$.

En 3D, utilizando coordenadas esféricas $y_1=2\sqrt{v-v^2}\cos 2\pi u, y_2=2\sqrt{v-v^2}\sin 2\pi u, y_3=2v-1$ donde $v$ s uniforme en $[0,1]$.

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