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;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.