16 votos

Generar tres correlaciona uniformemente repartida, variables aleatorias

Supongamos que tenemos

$$X_1 \sim \textrm{unif}(n,0,1),$$ $$X_2 \sim \textrm{unif}(n,0,1),$$

donde $\textrm{unif}(n,0,1)$ es uniforme muestra aleatoria de tamaño n, y

$$Y=X_1,$$

$$Z = 0.4 X_1 + \sqrt{1 - 0.4}X_2.$$

Entonces la correlación entre el$Y$$Z$$0.4$.

¿Cómo puedo extender a tres variables: $X_1$, $X_2$, $X_3$?

13voto

AdamSane Puntos 1825

La pregunta contiene varios errores, como se señaló en los comentarios - como se define en la pregunta, Z no es ni uniforme ni tiene la correlación especificado.

el cardenal menciona cúpulas, y que es la forma más general para ir sobre ella. Sin embargo, hay varios muy fácil de maneras de obtener correlaciona uniformes (que pueden ser vistos como meros accesos directos a los diferentes tipos de cúpulas).

Así que vamos a empezar con algunas formas de conseguir un par de correlación uniformes.

1) Si se agregan dos uniformes el resultado es triangular, que no es uniforme. Pero usted puede usar la cdf de la variable resultante como una transformación para tomar el resultado a un uniforme. El resultado no se correlaciona de forma lineal, por supuesto.

Aquí está una función de R para transformar simétrica, triangular en (0,2) a los uniformes de las

t2u = function(x) ifelse(x<1, x^2, 2-(2-x)^2)/2

Vamos a ver que se da un uniforme

u1 = runif(30000)
u2 = runif(30000)
v1 = t2u(u1+u2)

enter image description here

Y se correlaciona con la u1 y u2:

> cor(cbind(u1,u2,v1))
            u1          u2        v1
u1 1.000000000 0.006311667 0.7035149
u2 0.006311667 1.000000000 0.7008528
v1 0.703514895 0.700852805 1.0000000

pero no de forma lineal, debido a la transformación monotónica a la uniformidad

enter image description here

Con esta herramienta podemos generar algunas variables adicionales para obtener tres equicorrelated uniformes:

u3 = runif(30000)
v2 = t2u(u1+u3)
v3 = t2u(u2+u3)

cor(cbind(v1,v2,v3))
          v1        v2        v3
v1 1.0000000 0.4967572 0.4896972
v2 0.4967572 1.0000000 0.4934746
v3 0.4896972 0.4934746 1.0000000

La relación entre la v-variables de todo este aspecto:

enter image description here

--

Una segunda alternativa es generar mediante la toma de una mezcla. En lugar de sumar los uniformes, los tome con probabilidades fijas.

por ejemplo,

z = ifelse(rbinom(30000,1,.7),u1,u2)

cor(cbind(u1,z))
          u1         z
u1 1.0000000 0.7081533
z  0.7081533 1.0000000

enter image description here

Que a su vez puede ser utilizado para generar múltiples correlaciona uniformes.

--

Un tercer enfoque simple para generar correlaciona normales y transformar a la uniformidad.

n1=rnorm(30000)
n2=rnorm(30000)
n3=rnorm(30000)
x=.6*n1+.8*n2
y=.6*n2+.8*n3
z=.6*n3+.8*n1
cor(cbind(x,y,z))

          x         y         z
x 1.0000000 0.4763703 0.4792897
y 0.4763703 1.0000000 0.4769403
z 0.4792897 0.4769403 1.0000000

Así que ahora tenemos que convertir a los uniformes de:

w1 = pnorm(x)
w2 = pnorm(y)
w3 = pnorm(z)
cor(cbind(w1,w2,w3))
          w1        w2        w3
w1 1.0000000 0.4606723 0.4623311
w2 0.4606723 1.0000000 0.4620257
w3 0.4623311 0.4620257 1.0000000

enter image description here

Una cosa buena acerca de los métodos 2 y 3 es que usted consigue un montón de variedad en su elección de cómo se correlacionan las cosas podrían ser (y no tienen que ser equicorrelated como los ejemplos aquí).

Hay una gran variedad de otros enfoques, por supuesto, pero todos ellos son de fácil y rápido.

La parte difícil es llegar exactamente a la población deseada de correlación; no es tan simple como cuando simplemente quieres correlaciona Gaussianas.

2voto

QuantumDot Puntos 168

En primer lugar, ¿de que se supone que $X_1,X_2$ son independientes? Si es así, entonces el coeficiente de correlación entre el $Z$ $X_1$ no $0.4$. Sería $0.4$ si $Y$ fueron definidos como $Y = 0.4X_1+\sqrt{1-(0.4)^2}X_2$.

Una simple mirada a la definición del coeficiente de correlación de la fórmula y la ley de los cosenos debe convencer de que $\rho$ $\cos$ $2$ serie, si la serie se tratan como con los vectores de cada punto de datos que está siendo tratada como una dimensión de un vector. Si usted tiene $3$ pares, independiente de la serie, que los tres vectores a todos de que son ortogonales entre sí (porque el $\cos$'s de los ángulos entre ellos están todos los $0$'s.

Esto debe empezar en el camino a la descomposición de una serie en sus componentes, de la misma forma que había descomponer un vector en sus componentes ortogonales.

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