【问题标题】:Simulating conditional distribution in R在 R 中模拟条件分布
【发布时间】:2018-02-19 08:28:55
【问题描述】:

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

假设

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 分布。

我将不胜感激。

【问题讨论】:

标签: r database conditional simulation distribution


【解决方案1】:

看来你是在线性回归的情况下...... 您可以写为 Y = rX + epsilon,其中 epsilon 遵循 N(0,(1-r)^2)。 您可以检查 Y 是否具有您正在寻找的属性..

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

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

【讨论】:

    【解决方案2】:

    使用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)
    })
    

    【讨论】:

      猜你喜欢
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2017-11-09
      • 2019-10-30
      • 2017-02-19
      相关资源
      最近更新 更多