前のページ|次のページ

CALL RANCAUルーチン

Cauchy分布からランダム変量を返します。

カテゴリ: 乱数

構文

CALL RANCAU(seed, x);

必須引数

シード

シード値です。CALL RANCAUが実行されるたびに、seedの新しい値が返されます。

範囲 seed < 231 - 1
seed ≤ 0の場合、シードストリームの初期化に時刻が使用されます。
参照項目 シード値シード値の詳細については、シード値および乱数関数と乱数CALLルーチンのシード値の比較を参照

x

数値のSAS変数です。CALL RANCAUが実行されるたびに、ランダム変量xの新しい値が返されます。

詳細

CALL RANCAUルーチンはseedを更新し、位置パラメータが0、尺度パラメータが1のCauchy分布から生成された変量xを返します。
シードを調整することで、同一または後続のDATAステップの一部またはすべてのオブザベーションで変量のストリームへの一致または不一致を強制できます。
RANUNI一様変量に適用される受容-棄却手法が使用されます。uおよびvが独立した一様(−1/2、1/2)変数で u2+v2 ≤ 1/4の場合、u/vはCauchy変量です。
乱数CALLルーチンの効果的な使用方法に関する説明と例については、ストリームの開始、停止および再開を参照してください。

比較

CALL RANCAUルーチンは、シードおよび乱数ストリームをRANCAU関数よりも高度に制御できます。

この例では、CALL RANCAUルーチンを使用します。
data case;
   retain Seed_1 Seed_2 Seed_3 45;
   do i=1 to 10;
      call rancau(Seed_1, X1);
      call rancau(Seed_2, X2);
      X3=rancau(Seed_3);
      if i=5 then
          do;
             Seed_2=18;
             Seed_3=18;
          end;
      output;
   end;
run;

proc print;
   id i;
   var Seed_1-Seed_3 X1-X3;
run;
CALL RANCAUルーチンからの出力
CALL RANCAUルーチンからの出力
CALL RANCAUルーチンの別の例を次に示します。
data u1(keep=x);
   seed=104;
   do i=1 to 5;
      call rancau(seed, X); 
      output;
   end;
   call symputx('seed', seed);
run;

data u2(keep=x);
   seed=&seed;
   do i=1 to 5;
      call rancau(seed, X); 
      output;
   end;
run;

data all;
   set u1 u2;
   z=rancau(104);
run;

proc print label;
   label x='Separate Streams' z='Single Stream';
run;
CALL RANCAUルーチンからの出力
CALL RANCAUルーチンからの出力

関連項目:

前のページ|次のページ|ページの先頭へ