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

Carlos J. Gil Bellosta cgb en datanalytics.com
Dom Jul 17 23:49:43 CEST 2016


Hola, ¿qué tal?

Si son valores arbitrarios los que quieres colocar en Sigma_UZ, hazlos
más pequeños (p.e., dividiéndolos por 10).

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El día 17 de julio de 2016, 23:15, Freddy Omar López Quintero
<freddy.lopez.quintero en gmail.com> escribió:
> ¡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]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



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