Crear términos de errores correlacionados a partir de una variable existente
Frecuentes
Visto 412 veces
-3
Digamos que tengo un vector:
Q<-rnorm(50,mean=0,sd=30)
Me gustaría crear 10 variables que se componen de Q+error term
tal que cada una de las 10 variables tiene términos de error correlacionados que dan como resultado una correlación entre las 10 variables de, digamos, 8.
Normalmente crearía variables correlacionadas usando:
vars<-rmvnorm(n=10, mean=c(rep(0,50)),cov.mat, method="chol")
¿Qué pasa si agrego Q+vars
. ¿Consigo lo que busco?
1 Respuestas
0
¡No! Tenga en cuenta que rmvnorm
devuelve tus 10 vectores aleatorios en el filas de una matriz de 10x50. Entonces de usted agrega Q + vars
, R reciclará Q
"en columnas" para obtener una matriz de 10x50. Pero puedes obtener lo que quieras usando esto:
t(t(vars)+Q)
cuyas filas son observaciones aleatorias de una densidad normal multivariada con mean==Q
y matriz de varianza-covarianza dada por cov.mat
.
Respondido el 11 de Septiembre de 13 a las 20:09
lo que me gustaría tener son 50 vectores con 10 números aleatorios para que cada una de las 50 variables tenga una correlación preestablecida entre sí. - user1984076
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas r or haz tu propia pregunta.
¿Lo has probado? Según su código, no estoy completamente seguro de lo que realmente quiere. ¿Quiere que sus variables resultantes tengan diferentes medios (es decir,
Q
)? Entonces tuvars
sería un término de error solo en el sentido de un modelo de intersección solamente. Esto se puede hacer fácilmente usandomean=Q
; ¿estás familiarizado con R? reciclaje? Si desea generar un conjunto de vectores de modo que cada valor con cada variable sea un dibujo de una normal (es decir,Q
) + un sorteo de una distribución de error (es decirvars
), eln
s en esos 2 comandos deben coincidir. - gung - Reinstate MonicaCometí un error, las n debían ser iguales. por favor vea mi edición. - user1723765
@ usuario1723765, tenga en cuenta que
Q
debe tener longitud == 50, ya quevars
tiene 10 vectores de longitud==50, apilados en una matriz de 10x50. Además, el comentario que agregó extrapoló la pregunta, por lo que me tomé la libertad de revertir su edición. - Ferdinand.kraft