【问题标题】:Drawing from a binomial distribution conditional on a vector drawn from standard normal distribution以从标准正态分布绘制的向量为条件的二项式分布绘制
【发布时间】:2019-10-01 01:55:36
【问题描述】:

我正在尝试模拟数据生成过程为 p(X, Y) = p(X)p(Z|X) 的数据,其中二进制 Z 的分布取决于 X 的值,该值由标准正态分布。

X 由下面的代码生成。

X <- rnorm(100, 0, 1)

如何以 X 为条件生成向量 Y? 我最初的想法是使用 X 以某种方式生成概率 P 的向量,然后运行下面的代码,但没有成功。

sapply(P,function(Y){rbinom(1,1,Y)})

【问题讨论】:

    标签: r simulation distribution


    【解决方案1】:

    X 将在 -Inf 到 +Inf 之间变化,因此这不能作为二项分布所需的概率,但 pnorm(X) 会给你从 0 到 1 的值,然后使用 ifelse() 语句进行转换低于 0.05 到 0.05 和高于 0.95 到 0.95 的值:

    X <- rnorm(100)   # 0, 1 are the default values
    Xp <- pnorm(X)    # transform to probabilities
    Xp <- ifelse(Xp < .05, .05, ifelse(Xp > .95, .95, Xp)) # Bound the results
    vals <- rbinom(length(Xp), 1, Xp)  # Your binary values
    

    【讨论】:

      猜你喜欢
      • 2020-06-18
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 2019-12-20
      • 2012-04-25
      • 2017-12-15
      • 1970-01-01
      相关资源
      最近更新 更多