Hello,
I'm simulating a variable say X that follows a normal standard distribution with the rannor() function.
With n=5000, the mean of X is far from 0 and out of the prediction interval.
With 100 000 000 generated variables, the mean is near 0 but we cannot simulate such a number of variables for the rest of our work.
With R, the same simulation produces a variable with a mean less than 1.10-4 in absolute value and this with only 500 generated variables.
The same problem occurs with the normal() function.
I use SAS 9.2 with Windows 7 X64.
Do you encounter the same problem ? Is it due to SAS ?
Here is my code :
data test;
do i=1 to 10000;
Y1=rannor(-1);
Y2=normal(-1);
output;
end;
run;
proc means data=test;
var Y1 Y2;
run;
Not particularly helpful, but you can see this thread with some discussion around random numbers in SAS though they're discussing the uniform distribution instead.
http://listserv.uga.edu/cgi-bin/wa?A2=ind1204c&L=sas-l&D=0&P=19477
You can also try the rand('normal', 0, 1) function.
I get no sign of non-normality with this :
data test;
do i=1 to 10000;
Y1=rannor(-1);
Y2=normal(-1);
Y3=rand("NORMAL");
output;
end;
run;
proc univariate data=test normal;
var Y1 Y2 Y3;
run;
I'm using SAS 9.3 on Windows 7, 32 bits.
If I recall correctly both of these random functions will use the same random number stream. Use the CALL versions to have a different stream for each function.
This may be causing your problem.
A few comments:
1) RANNOR and NORMAL are the same function. NORMAL is just an alias to RANNOR.
2) A 95% confidence interval means that in 95% of random samples, the sample mean will be within the computed CI. In terns of "seeds," this means that 95% of seeds will give a sample mean within the CI. So any single sample doesn't tell us anything. You might be "unlucky" and choose that one-in-twenty seed!
3) I am running on Windows 7 and X64 and I do not see the situation you report. Use the CLM option on the PROC MEANS statement to get PROC MEANS to display the confidence limits:
proc means data=test N mean clm;
var Y1 Y2;
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.