[R-es] Muestrear de una normal multivariante.-

Freddy Omar López Quintero freddy.lopez.quintero en gmail.com
Dom Jul 17 23:15:17 CEST 2016


¡Hola a todos!

Estoy intentando muestrear de una normal multivariante donde hay dos grupos
de variables que deben tener una relación "manipulable" entre sí pero
ignoro cómo hacerlo.

Les cuento, he intentado lo siguiente:

# covarianzas del primer grupo de variables:
Sigma_U <- matrix(c(.25, .2, .2, .25), ncol=2)

# covarianzas del segundo grupo de variables:
Sigma_W <- diag(2)

# covarianzas _arbitrarias_ entre los dos grupos de variables
Sigma_UZ <- matrix(rnorm(4), nrow=2)

# consolidación de las covarianzas anteriores:
Sigma<-rbind(
    cbind(Sigma_U, Sigma_UZ),
    cbind(t(Sigma_UZ), Sigma_W)
)

# muestreo:
MASS::mvrnorm(1, mu=rep(0, 4), Sigma=Sigma)

​De donde recibo:

Error in mvrnorm(1, mu = rep(0, 4), Sigma = Sigma) :
  'Sigma' is not positive definite


El error (creo yo) está la generación de esas covarianzas arbitrarias para
que esta matriz consolidada, Sigma, sea definida positiva. Mi necesidad es
que las matrices ​Sigma_U y Sigma_W sean las que he definido pero saber o
poder ubicar las covarianzas de Sigma_UZ para que no arroje error.

¿Alguien sabe cómo podría hacer?¿Qué pasos debería seguir?

¡Gracias!

-- 
«...my role is to be on the bottom of things.»

Donald Knuth

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es