社会人が統計学の基礎を学び、実務で活かす

Rコード:ベルヌーイ分布や離散型一様分布に従う乱数の発生。

スポンサーサーチ

【目次】
ベルヌーイ分布に従う乱数を発生させる方法。
離散型一様分布に従う乱数を発生させる方法。

ベルヌーイ分布に従う乱数を発生させる方法。

正規分布や二項分布に従う乱数を発生させたいときはrnorm()rbinom()いった関数を利用することができますが、Rではベルヌーイ分布や離散型一様分布から乱数を発生する関数がありません。

ではどうするかというと、sample()関数を利用します。

例えば、p=0.8のベルヌーイ分布から20個の乱数を発生させたい場合は、以下のようにプログラミングをします。

# ベルヌーイ分布(p=0.8)

X=sample(x=c(1,0),# Xの取り得る値を指定
         size=20, #いくつの乱数を発生させるか?
         replace = T, # 復元抽出を指定
         prob=c(0.8,0.2) # 各値を取り得る確率。
         )

すると以下のように1又は0の20個の乱数を発生させることができました。

>X
 [1] 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1

sum()関数を利用して1が何回でたか数えてみると

>sum(X)
 [1] 16

今回は16個が1で4個が0なので、たまたまですが、丁度0.8の割合で1が得られましたね。

離散型一様分布に従う乱数を発生させる方法。

次に離散型一様分布に従う乱数を発生させる方法です。

歪んでいないサイコロを振ってでる目をYとすると、Yは{1,2,3,4,5,6}の値をそれぞれ1/6の確率でとる離散型一様分布に従いますね。

この分布からRのsample()関数を利用して30個の乱数を発生させるには、以下のようになります。

Y=sample(x=c(1,2,3,4,5,6),# Yの取り得る値を指定
         size=30, #いくつの乱数を発生させるか?
         replace = T # 復元抽出を指定
         # すべて同じ確率であればprobは指定しなくてよい。 
)

以下のようにUniform{1,6}から30個の乱数を発生させることができました。

>Y
 [1] 6 5 3 2 6 2 6 3 1 4 1 3 6 3 6 6 3 3 4 4 6 4 6 1 3 6 5 2 5 3

またtable()関数を利用してそれぞれの目が何回出たか数えることができます。

> table(Y)
 Y
 1 2 3 4 5 6
 3 3 8 4 3 9

6の目が9回も出ており、若干偏ったサイコロにも見えますが、このサイコロが偏っているかどうかはカイ二乗分布を利用した検定で統計学的に結論づけることができます。


プログラミングとソフトウェア

スポンサー募集中。

統計ドットリンクでは広告出稿をご希望のスポンサー様を募集しております。ページビューなどは、「お問い合わせ」からご連絡ください。

更新・勉強会などの情報を受け取る。

以下からFacebookページをフォローもしくは、メールマガジンへの登録をすると、更新情報、勉強会、講習会、交流会の案内など各種情報を受け取ることができます。

↑こちらからFacebookページをフォロー。
 

メルマガ登録はこちら

理系の就職・職業訓練

統計ドットリンクでは、理系の大学生、大学院生、第二新卒の就職や転職を応援しています。職業訓練、求人やエージェントなどの必要な情報を選別し、紹介しています。 就職、職業訓練の情報を確認する。
PAGETOP
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.