למספרים אקראיים תפקיד חשוב במדעי המחשב באופן כללי ותפקיד חשוב אף יותר בתוכנה סטטיסטית כמו SAS. הבעיה העיקרית עם מספרים אקראיים היא שקשה מאוד לייצר מספרים שהם באמת אקראיים, במיוחד שצריכים מספר גדול מאוד מהם.
במהלך השנים פותחו ועדיין מפותחים אלגוריתמים ליצירת זרם (stream) של מספרים אקראיים כך שהמספרים יהיו אקראיים כמה שיותר. גם SAS מכילה היסטוריה של פונקציות ליצירת מספרים אקראיים כאשר לפונקציות הישנות יותר התווספו פונקציות חדשות עם ביצועים משופרים.
הפונקציות הקלאסיות ב – SAS ליצירת מספרים אקראיים ממשפחת RAND כמו למשל RANUNI ליצירת מספרים אקראיים מהתפלגות אחידה, RANNOR ליצירת מספרים אקראיים מהתפלגות נורמלית וכך הלאה.
נכון להיום ההמלצה היא לא לעשות שימוש בפונקציות הללו אלא בפונקציה החדשה והמשופרת RAND אשר מבוססת על אלגוריתמים מעודכנים יותר.
כדי לאתחל את זרם המשתנים האקראיים שלנו עם גרעין (seed) ספציפי או אם אנחנו מרגישים מאוד אקראיים ורוצים לעשות שימוש דווקא במחולל מספרים אקראיים מסוים ניתן לקרוא לפונקציה CALL STREAMINIT עם הערכים המתאימים. לאחר מכן, כל קריאה ל – RAND עם הפרמטרים המתאימים תייצר לנו מספרים אקראיים כאוות נפשנו:
data RANDOMS;
call streaminit(22);
do i=1 to 1000;
Uni=rand('UNIFORM');
Normal=rand('NORMAL');
Weibull=rand('WEIB', 1, 2);
output;
end;
run;
חגי