web-dev-qa-db-ja.com

R-離散確率変数のランダムサンプルを生成する方法

Rでは、離散確率変数のランダムサンプルを生成したい:X、ここで:P(X=a)=P(X=-a)=1/2。私はオンラインで機能を探していますが、これを行う直接的な機能はないようです。

15
Kelly Nguyen

ベルヌーイ確率変数のサンプルを生成しようとしていると思います。ベルヌーイ確率変数は、二項確率変数の特殊なケースです。したがって、rbinom(N,1,p)を試すことができます。これにより、Nサンプルが生成され、値が_1_の確率がp、値が_0_の確率が_(1-p)_になります。 aおよび_-a_の値を取得するには、a*(2*rbinom(N,1,p)-1)を使用できます。

20
user42628

1)sampleを使用する場合、これで十分です:

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

例えば。:

 a <- 10
 sample(c(-a,a),1)
[1] -10

別のカップルを試してください:

> sample(c(-a,a),1)
[1] -10
> sample(c(-a,a),1)
[1] 10

動作します。

複数の要素をサンプリングする必要がある場合は、replace=TRUEを設定します...ここでは12回サンプリングします。

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

 [1]  10  10 -10  10  10  10 -10 -10  10 -10  10 -10

2)runifを使用できます。サイズ9のサンプルを次に示します。

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

[1] -1  1 -1  1 -1  1 -1  1  1  

3)rbinomを使用できます。サイズ4のサンプルを次に示します。

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

[1] -6  6 -6  6
7
Glen_b

またはこれ:

> n=10
> X=rep(0,n)
> Y=rbinom(n,1,1/2)
> #Since they the probability is 1/2 for both cases, I assigned "a" when Y=1 and "-a" otherwise.
> X[Y==1]="a"
> X[Y==0]="-a"
> X
 [1] "a"  "-a" "a"  "a"  "a"  "-a" "a"  "-a" "-a" "-a"
> Y
 [1] 1 0 1 1 1 0 1 0 0 0
> 
2
Stat