close

 

在SAS Blog看到這樣的詢問,一方面自己也使用過這兩種方法

問題: 為何 ranuni(123) 和 rand('uniform') 不同?

data TEST;
    call streaminit(123); * 指定隨機數生成的種子值( seed value for rand函數);
do i=1 to 20;
    ranuni=ranuni(123);
    rand=rand('uniform');
    output;
end;
proc print;run;

Ans:

RAND 函數使用與 RANUNI 函數的隨機數生成器不同(RAND 函數使用 Mersenne-Twister),所以隨機產生結果不同

由於 Mersenne-Twister 隨機數生成器的統計特性良好,故RAND 函數優於舊的隨機數函數,如:RANUNI。

 

ref: 

1. Rick Wicklin's blog article "Six reasons you should stop using the RANUNI function to generate random numbers".

2.https://communities.sas.com/t5/SAS-Programming/generation-random-numbers/td-p/468993

3.https://documentation.sas.com/doc/en/pgmsascdc/v_006/lefunctionsref/p0fpeei0opypg8n1b06qe4r040lv.htm#n1iz3mply7l1dbn1do00bzj7wo4y

 

 

arrow
arrow
    創作者介紹
    創作者 Vivian 的頭像
    Vivian

    統計散記-Vivian 經驗分享

    Vivian 發表在 痞客邦 留言(0) 人氣()