前のページ|次のページ

RAND関数

指定する分布から乱数を生成します。

カテゴリ: 乱数

構文

必須引数

distribution

分布を特定する文字定数、変数または式です。有効な分布は、次のとおりです。

分布
引数
Bernoulli
BERNOULLI
ベータ
BETA
二項
BINOMIAL
コーシー
CAUCHY
カイ2乗
CHISQUARE
Erlang
ERLANG
指数
EXPONENTIAL
F
F
ガンマ
GAMMA
幾何
GEOMETRIC
超幾何
HYPERGEOMETRIC
対数正規
LOGNORMAL
負の二項
NEGBINOMIAL
正規
NORMAL|GAUSSIAN
Poisson
POISSON
T
T
テーブル
TABLE
三角
TRIANGLE
一様
UNIFORM
Weibull
WEIBULL
注: TおよびF以外は、最初の4文字によってどのような分布でも最小限に識別できます。

parameter-1, …, parameter-k

特定の分布に適した形状位置または尺度パラメータの値を指定する数値定数、変数または式です(省略可能)。

参照項目 詳細

詳細

乱数の生成

RAND関数は、さまざまな連続分布および離散分布から乱数を生成します。可能な場合、最も単純な形式の分布が使用されます。
RAND関数は、松本と西村(1998)によって開発されたMersenne-Twister乱数ジェネレータ(RNG)を応用しています。乱数ジェネレータには、長い周期(219937-1)と高品質な統計的特性を有しています。この周期はMersenne素数で、RNGの名前はこれに由来します。アルゴリズムは、名前の後半部分を説明する、ひねり(twist)を入れた一般化フィードバックシフトレジスタ(TGFSR)です。TGFSRを使用したRNGでは、高次元(32ビット精度の623次元)の均等分布が生成されます。これは、623次元疑似乱数の連続ベクトル間の相関性が非常に小さいことを意味します。
RAND関数は単一のシードで開始します。ただし、プロセスの状態を単一のシードで捕捉することはできません。ジェネレータを停止し、停止時点から再開することはできません。

乱数ストリームの再現

乱数の再現可能なストリームを作成するには、CALL STREAMINITルーチンを使用して乱数生成のシード値を指定します。RAND関数が起動される前に、DATAステップごとにCALL STREAMINITルーチンを1回使用します。CALL STREAMINITルーチンの呼び出しを省略すると(またはCALL STREAMINITルーチンで正以外のシード値を指定すると)、RANDはシステムクロックへの呼び出しを使用してシードを取得します。詳細については、CALL STREAMINIT乱数の再現可能なストリームの作成を参照してください。

Mersenne-Twister RNGアルゴリズムの重複する値

Permutations RNGアルゴリズムには長い周期が使用されますが、大きなランダムサンプルに重複する値がないことを暗に示すものではありません。RAND関数は最大で232個の重複しない値を返します。サイズが105のランダム一様サンプルでは、少なくとも1つの重複を引き当てる確率が50%を超えます。サイズMのランダム一様サンプルの期待重複数は、Mが232よりかなり小さいとき、約M2/233になります。たとえば、サイズM=106のランダム一様サンプルでは、約115個の重複が期待されます。これらの結果は、確率論における有名な“誕生日の一致問題”で説明できます。

Bernoulli分布

x=RAND('BERNOULLI', p)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x = 0, 1

p

成功確率を指定する数値定数、変数または式です。

範囲 0 ≤ p ≤ 1

ベータ分布

x=RAND('BETA', a, b)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 0 < x < 1

a

形状パラメータを指定する数値定数、変数または式です。

範囲 a > 0

b

形状パラメータを指定する数値定数、変数または式です。

範囲 b > 0

二項分布

x=RAND('BINOMIAL', p, n)
引数

x

次の確率密度関数を使用した分布からの整数オブザベーションです。

範囲 x = 0, 1, ..., n

p

成功確率を指定する数値定数、変数または式です。

範囲 0 ≤ p ≤ 1

n

独立Bernoulli試行数を数える整数のパラメータです。

範囲 n = 1, 2, ...

Cauchy分布

x=RAND('CAUCHY')
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 –∞ < x < ∞

カイ2乗分布

x=RAND('CHISQUARE', df)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x > 0

df

自由度を指定する数値定数、変数または式です。

範囲 df > 0

Erlang分布

x=RAND('ERLANG', a)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x > 0

a

形状パラメータを指定する数値定数、変数または式です。

範囲 a = 1, 2, ...

指数分布

x=RAND('EXPONENTIAL')
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x > 0

F分布

x=RAND('F', n, d)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x > 0

n

分子の自由度を指定する数値定数、変数または式です。

範囲 n > 0

d

分母の自由度を指定する数値定数、変数または式です。

範囲 d > 0

ガンマ分布

x=RAND('GAMMA', a)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x > 0

a

形状パラメータを指定する数値定数、変数または式です。

範囲 a > 0

幾何分布

x=RAND('GEOMETRIC', p)
引数

x

1回の成功を得るために必要な試行回数を示す整数の度数です。Xは次の確率密度関数を使用した分布からの整数オブザベーションです。

範囲 x = 1, 2, …

p

成功確率を指定する数値定数、変数または式です。

範囲 0 < p ≤ 1

超幾何分布

x=RAND('HYPER', N, R, n)
引数

x

次の確率密度関数を使用した分布からの整数オブザベーションです。

範囲 x = max(0, (n – (NR))), ..., min(n, R)

N

整数の母集団サイズを指定する数値定数、変数または式です。

範囲 N = 1, 2, ...

R

対象カテゴリの整数の項目数を指定する数値定数、変数または式です。

範囲 R = 0, 1, ..., N

n

整数のサンプルサイズパラメータを指定する数値定数、変数または式です。

範囲 n = 1, 2, ..., N
超幾何分布は、N個のボールが壺に入っており、そのうちのR個が赤のときに、壺からn個のボールを取り出す実験を数学的に形式化したものです。超幾何分布は、n個のサンプル中の赤いボールの数の分布です。

対数正規分布

x=RAND('LOGNORMAL')
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x > 0

負数二項分布

x=RAND('NEGBINOMIAL', p, k)
引数

x

次の確率密度関数を使用した分布からの整数オブザベーションです。

範囲 x = 0, 1, ...

k

成功回数を示す整数パラメータです。ただし、整数ではないk値も使用できます。

範囲 k = 1, 2, ...

p

成功確率を指定する数値定数、変数または式です。

範囲 0 < p ≤ 1
負の二項分布は、同じ成功確率pで行う逐次独立試行でk回成功するまでの失敗回数の分布です。

正規分布

x=RAND('NORMAL',<θ, λ>)
引数

x

次の確率密度関数を使用した平均θおよび標準偏差λの正規分布のオブザベーションです。

範囲 –∞ < x < ∞

θ

平均パラメータを指定する数値定数、変数または式です。

デフォルト 0

λ

標準偏差パラメータを指定する数値定数、変数または式です。

デフォルト 1
範囲 λ > 0

Poisson分布

x=RAND('POISSON', m)
引数

x

次の確率密度関数を使用した分布からの整数オブザベーションです。

範囲 x = 0, 1, ...

m

平均パラメータを指定する数値定数、変数または式です。

範囲 m > 0

T分布

x=RAND('T', df)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 –∞ < x < ∞

df

自由度を指定する数値定数、変数または式です。

範囲 df > 0

テーブル分布

x=RAND('TABLE', p1, p2, ...)
引数

x

次のいずれかの分布からの整数のオブザベーションです。

次の場合、modified cap sigma with i equals 1 below and with n above . p sub i , less than 1. 別の形式を利用するにはイメージをクリックします。 xはこの確率分布関数のオブザベーションです。
次の場合、modified cap sigma with i equals 1 below and with n above . p sub i , greater than or equal to 1. 別の形式を利用するにはイメージをクリックします。がインデックスnで成り立つならば、xはこの確率分布関数のオブザベーションです。

p1, p2, ...

数値の確率値です。

範囲 0 ≤ p1, p2, ...≤ 1
制限事項 確率パラメータの最大数は動作環境によって異なりますが、パラメータの最大数は少なくとも32,767です。
テーブル分布は、指定した確率で値1、2、...、nを取ります。
注: FORMATステートメントを使用することにより、セット{1, 2, ..., n}をn個以下の要素セットにマップできます。

三角分布

x=RAND('TRIANGLE', h)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

この式では、0≤h≤1になります。
範囲 0 ≤ x ≤ 1
分布は簡単に移動および調整できます。

h

三角の頂点の水平位置を指定する数値定数、変数または式です。

範囲 0≤h≤1

一様分布

x=RAND('UNIFORM')
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 0 < x < 1
RAND関数が使用する一様乱数ジェネレータは、Mersenne-Twister(松本と西村(1998))です。このジェネレータには次の周期と 2 super 1 9 9 3 7 end super . minus 1. 別の形式を利用するにはイメージをクリックします。 最大で32ビットの精度で623次元の均等分布があります。このアルゴリズムは、RAND関数で使用できるほかの分布のジェネレータの基礎となります。

Weibull分布

x=RAND('WEIBULL', a, b)
引数

x

次の確率密度関数を使用した分布のオブザベーションです。

範囲 x ≥ 0

a

形状パラメータを指定する数値定数、変数または式です。

範囲 a > 0

b

尺度パラメータを指定する数値定数、変数または式です。

範囲 b > 0

SASステートメントとその結果を次に示します。
SASステートメント
結果
x=rand('BERN', .75);
0
x=rand('BETA', 3, 0.1);
.99920
x=rand('BINOM', 0.75, 10);
10
x=rand('CAUCHY');
-1.41525
x=rand('CHISQ', 22);
25.8526
x=rand('ERLANG', 7);
7.67039
x=rand('EXPO');
1.48847
x=rand('F', 12, 322);
1.99647
x=rand('GAMMA', 7.25);
6.59588
x=rand('GEOM', 0.02);
43
x=rand('HYPER', 10, 3, 5);
1
x=rand('LOGN');
0.66522
x=rand('NEGB', 0.8, 5);
33
x=rand('NORMAL');
1.03507
x=rand('POISSON', 6.1);
6
x=rand('T', 4);
2.44646
x=rand('TABLE', .2, .5);
2
x=rand('TRIANGLE', 0.7);
.63811
x=rand('UNIFORM');
.96234
x=rand('WEIB', 0.25, 2.1);
6.55778

関連項目:

CALLルーチン:

参考文献

Fishman, G. S. 1996. Monte Carlo:Concepts, Algorithms, and Applications. New York, 米国: Springer-Verlag.
Fushimi, M., and S. Tezuka. “The k-Distribution of Generalized Feedback Shift Register Pseudorandom Numbers.” 1983. Communications of the ACM 26: 516-255.
Gentle, J. E. 1998. Random Number Generation and Monte Carlo Methods. New York, 米国: Springer-Verlag.
Lewis, T. G., and W. H. Payne. “Generalized Feedback Shift Register Pseudorandom Number Algorithm.” 1973. Journal of the ACM 20: 456-468.
Matsumoto, M., and Y. Kurita. “Twisted GFSR Generators.” 1992. ACM Transactions on Modeling and Computer Simulation 2: 179-255.
Matsumoto, M., and Y. Kurita. “Twisted GFSR Generators II.” 1994. ACM Transactions on Modeling and Computer Simulation 4: 254-255.
Matsumoto, M., and T. Nishimura. “Mersenne Twister:A 623–Dimensionally Equidistributed Uniform Pseudo-Random Number Generator.” 1998. ACM Transactions on Modeling and Computer Simulation 8: 3-255.
Ripley, B. D. 1987. Stochastic Simulation. New York, 米国: Wiley.
Robert, C. P., and G. Casella. 1999. Monte Carlo Statistical Methods. New York, 米国: Springer-Verlag.
Ross, S. M. 1997. Simulation. San Diego, 米国: Academic Press.
前のページ|次のページ|ページの先頭へ