サーチ…


前書き

Rには確率分布を扱うための組み込み関数が多数あり、公式ドキュメントは?Distributionsから始まってい?Distributions

備考

一般に4つのプレフィックスがあります。

  • d - 与えられた分布に対する密度関数
  • p - 累積分布関数
  • q - 与えられた確率に関連する分位数を得る
  • r - ランダムサンプルを得る

Rの基本インストールに組み込まれているディストリビューションについては、「 ?Distributions 」を参照してください。

正規分布

例として*normを使ってみましょう。ドキュメントから:

dnorm(x, mean = 0, sd = 1, log = FALSE)
pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
rnorm(n, mean = 0, sd = 1)

ですから、標準正規分布の値を0で知りたければ、

dnorm(0)

私たちに0.3989423の合理的な答えが与えられます。

同様に、 pnorm(0).5 pnorm(0)ます。ここでも、分布の半分は0の左にあるので、これは意味をなさない。

qnormは本質的にpnormの反対をしpnormqnorm(.5)0 qnorm(.5) 0

最後に、 rnorm関数があります:

rnorm(10)

標準標準から10サンプルを生成します。

あなたが与えられた分布のパラメータを変更したいのであれば、そのように変更するだけです

rnorm(10, mean=4, sd= 3)

二項分布

ここでは、 二項分布のために定義された関数dbinompbinomqbinom 、およびrbinomについて説明します。

dbinom()関数は、二項変数のさまざまな値の確率を示します。最小限には3つの議論が必要です。この関数の第1引数は、分位数のベクトル(確率変数X可能な値)でなければなりません。第2引数と第3引数は分布のdefining parametersで、 n (独立した試行回数)とp (試行ごとの成功確率)です。例えば、 n = 5p = 0.5二項分布の場合、Xの可能な値は0,1,2,3,4,5です。つまり、 dbinom(x,n,p)関数はx = 0, 1, 2, 3, 4, 5の確率値P( X = x )を与えます。

#Binom(n = 5, p = 0.5) probabilities
> n <- 5; p<- 0.5; x <- 0:n
> dbinom(x,n,p)
[1] 0.03125 0.15625 0.31250 0.31250 0.15625 0.03125
#To verify the total probability is 1
> sum(dbinom(x,n,p))
[1] 1
> 

二項確率分布プロットは、次の図のように表示できます。

> x <- 0:12
> prob <- dbinom(x,12,.5)
> barplot(prob,col = "red",ylim = c(0,.2),names.arg=x,
                           main="Binomial Distribution\n(n=12,p=0.5)")

二項分布

p = 0.5とき、二項分布は対称であることに注意してください。 p0.5より大きい場合に、二項分布が負に偏っていることを証明するには、次の例を検討してください。

> n=9; p=.7; x=0:n; prob=dbinom(x,n,p);
> barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.7)",col="lightblue")

負の偏りを持つ二項

p0.5より小さい場合、二項分布は以下のように正に歪んでいます。

> n=9; p=.3; x=0:n; prob=dbinom(x,n,p); 
> barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.3)",col="cyan")

積極的に歪められた二項

ここで、累積分布関数pbinom()の使用法を説明します。この関数は、 P( X <= x )などの確率を計算するために使用できます。この関数の第1引数は、分位数のベクトル(xの値)です。

# Calculating Probabilities
# P(X <= 2) in a Bin(n=5,p=0.5) distribution
> pbinom(2,5,0.5)
[1] 0.5

上記の確率は、以下のようにも得られる。

# P(X <= 2) = P(X=0) + P(X=1) + P(X=2)
> sum(dbinom(0:2,5,0.5))
[1] 0.5

計算するために、タイプの確率: P( a <= X <= b )

# P(3<= X <= 5) = P(X=3) + P(X=4) + P(X=5) in a Bin(n=9,p=0.6) dist
> sum(dbinom(c(3,4,5),9,0.6))
[1] 0.4923556
> 

テーブルの形で二項分布を提示する:

> n = 10; p = 0.4; x = 0:n; 
> prob = dbinom(x,n,p) 
> cdf = pbinom(x,n,p) 
> distTable = cbind(x,prob,cdf)
> distTable
       x         prob         cdf
 [1,]  0 0.0060466176 0.006046618
 [2,]  1 0.0403107840 0.046357402
 [3,]  2 0.1209323520 0.167289754
 [4,]  3 0.2149908480 0.382280602
 [5,]  4 0.2508226560 0.633103258
 [6,]  5 0.2006581248 0.833761382
 [7,]  6 0.1114767360 0.945238118
 [8,]  7 0.0424673280 0.987705446
 [9,]  8 0.0106168320 0.998322278
[10,]  9 0.0015728640 0.999895142
[11,] 10 0.0001048576 1.000000000
> 

rbinom()は、指定されたパラメータ値を持つ指定されたサイズのランダムサンプルを生成するために使用されます。

# Simulation
> xVal<-names(table(rbinom(1000,8,.5)))
> barplot(as.vector(table(rbinom(1000,8,.5))),names.arg =xVal,
                    main="Simulated Binomial Distribution\n (n=8,p=0.5)")

シミュレートされた二項



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow