Freddy Omar López Quintero
2016-Jul-17 21:15 UTC
[R-es] Muestrear de una normal multivariante.-
¡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]]
Carlos J. Gil Bellosta
2016-Jul-17 21:49 UTC
[R-es] Muestrear de una normal multivariante.-
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
Freddy Omar López Quintero
2016-Jul-18 04:46 UTC
[R-es] Muestrear de una normal multivariante.-
2016-07-17 17:49 GMT-04:00 Carlos J. Gil Bellosta <cgb en datanalytics.com>:> Si son valores arbitrarios los que quieres colocar en Sigma_UZ, hazlos > más pequeños (p.e., dividiéndolos por 10). >?¡Gracias!¡Funciona perfectamente! Si quisiera establecer escenarios como: covarianzas bajas, covarianzas moderadas y altas ¿tiene algún consejo que pueda seguir? (imagino que en este punto solo cuento con covarianzas bajas). ¡Gracias y disculpen el abuso! -- «...my role is to be on the bottom of things.» Donald Knuth [[alternative HTML version deleted]]