Dear all, I am new to R so please bear with me for the questions. If I have x ~N(0, var1), and I know Y|X ~N(0, var2). X and Y are both vectors of equal length. How do I simulate samples for Y? [[alternative HTML version deleted]]
Bill.Venables at csiro.au
2008-Jan-25 06:24 UTC
[R] how to simulate from a conditional distribution
If "X ~ N(0, var1), and I know Y|X ~ N(0, var2)" as stated below, then X and Y are in fact independent and you can simulate from that distribution very simply indeed: N <- 1000000 # or whatever... Sim <- data.frame(X = rnorm(N, sd = sqrt(var1)), Y = rnorm(N, sd = sqrt(var2))) A more realistic example might be "X ~ N(0, var1), and I know Y|X=x ~ N(x, x^2 + var2)" which at least gives something that is not bivariate normal. This is also easy, but requires two steps. I would do it as N <- 1000000 # or whatever... Sim <- data.frame(X = rnorm(N, sd = sqrt(var1))) Sim <- transform(Sim, Y = rnorm(N, mean = X, sd = sqrt(X^2 + var2))) with(Sim, plot(X, Y)) ## gives a big splodge with 1000000 points! Bill Venables. -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of qq ww Sent: Friday, 25 January 2008 12:01 PM To: r-help at r-project.org Subject: [R] how to simulate from a conditional distribution Dear all, I am new to R so please bear with me for the questions. If I have X ~N(0, var1), and I know Y|X ~N(0, var2). X and Y are both vectors of equal length. How do I simulate samples for Y? [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.