我正在尝试模拟数据生成过程为p(X,Y)= p(X)p(Z | X)的数据,其中二进制Z的分布取决于X的值,该值是从标准正态分布。
X是由下面的代码生成的。
const Box1 = styled.div`
...
${(p) =>
p.fill
? " "
: `
:hover img {
transform: matrix(1.1, 0, 0, 1.1, 0, 0);
}
`}
`;
如何生成以X为条件的向量Y? 我最初的想法是使用X以某种方式生成概率P的向量,然后运行下面的代码,但是这样做没有成功。
X <- rnorm(100, 0, 1)
答案 0 :(得分:1)
X的范围从-Inf
到+Inf
,因此不能作为二项式分布所需的概率,但是pnorm(X)
会给您从0到1的值,然后使用ifelse()
语句可将.05以下的值转换为.05,将.95以上的值转换为.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