繁体   English   中英

模拟R中的条件分布

[英]Simulating conditional distribution in R

我有一个关于模拟条件分布的问题。

假设

X ~ N(0,1)

Y ~ N(rX, 1-r^2)

我想模拟在X上调节的Y分布。

这里的r是相关性,它可以为了目的而改变。

X分配代码如下;

sd.x <- 1

mean.x <- 0

z2 <- rnorm(1000)

x <- sd.x*z2 + mean.x

但是,我不知道模拟Y分布。

我会很感激你的帮助。

看起来你是在线性回归的情况......你可以写Y = rX + epsilon,其中epsilon属于N(0,(1-r)^ 2)。 你可以确定Y有您正在寻找的属性..

所以,在r中,为了完成你的代码,这样的事情就足够了:

r <- 0.8
y <- r*x + rnorm(1000, mean = 0, sd = 1-r)

使用MASS包中的mvrnorm函数,如下所示:

sample <- mvrnorm(1000, mu=c(0,0), matrix(c(1, r, r, 1-r^2), 2, 2))

或者,作为更通用的方法模拟X然后为每个X值模拟Y

sample <- data.frame(X = rnorm(1000))

sample$Y <- sapply(sample$X, function(x){
  rnorm(1, r*x, 1-r ^2)
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM