R-如何生成离散随机变量的随机样本?

Kel*_*yen 15 r binary-data random-sample

在R中,我想生成离散随机变量的随机样本:X,其中:P(X=a)=P(X=-a)=1/2.我一直在网上搜索功能,但似乎没有直接的功能这样做.

小智 20

我想你正在寻找生成伯努利随机变量的样本.伯努利随机变量是二项式随机变量的特例.因此,你可以试试rbinom(N,1,p).这将生成N样本,具有1概率p0,概率值(1-p).要获得的值a,并-a可以使用a*(2*rbinom(N,1,p)-1).


Gle*_*n_b 7

1)如果您使用sample,这就足够了:

sample(c(-a,a),1)

例如:

 a <- 10
 sample(c(-a,a),1)
[1] -10
Run Code Online (Sandbox Code Playgroud)

尝试另一对夫妇:

> sample(c(-a,a),1)
[1] -10
> sample(c(-a,a),1)
[1] 10
Run Code Online (Sandbox Code Playgroud)

作品.

如果你需要采样多个元素,那么设置replace=TRUE...这里我们采样12次:

 sample(c(-a,a),12,replace=TRUE)

 [1]  10  10 -10  10  10  10 -10 -10  10 -10  10 -10
Run Code Online (Sandbox Code Playgroud)

2)你可以使用runif; 这是一个9号样本:

a <- 1
ifelse(runif(9)<.5,-a,a)

[1] -1  1 -1  1 -1  1 -1  1  1  
Run Code Online (Sandbox Code Playgroud)

3)你可以使用rbinom; 这是一个4号样本:

a <- 6
ifelse(rbinom(4,1,.5),-a,a)

[1] -6  6 -6  6
Run Code Online (Sandbox Code Playgroud)