Programming the statistical procedures from SAS

que regarding proc standard

Accepted Solution Solved
Reply
Contributor
Posts: 65
Accepted Solution

que regarding proc standard

Hi,

I am trying to calculate the z-score for the variable that I have in my dataset using proc standard. All the columns have different mean and std, so my question is should I use a common mean and std deviation for calculating the z-score or I should calculate it separately?

in terms of code:

PROC STANDARD

      DATA = X

     MEAN = 0

     STD = 1

     OUT = ZSCORE

     VAR

     A /* it has a mean of 5 and std of 5 */

     B /* it has a mean of 500 and std of 7 */

     C /* it has a mean of 900 and std of 1000 */

run;

OR I should use this approach?

PROC STANDARD

      DATA = X

     MEAN = 5

     STD = 5

     OUT = ZSCORE_a

     VAR

     A /* it has a mean of 5 and std of 5 */

  run;

PROC STANDARD

      DATA = X

     MEAN = 500

     STD = 7

     OUT = ZSCORE_b

     VAR

          B /* it has a mean of 500 and std of 7 */

      run;

PROC STANDARD

      DATA = X

     MEAN = 900

     STD = 1000

     OUT = ZSCORE_c

     VAR

         C /* it has a mean of 900 and std of 1000 */

run;

and then merge all cols

I really appreciate your time and guidance.

Thanks!


Accepted Solutions
Solution
‎06-20-2012 02:08 PM
Respected Advisor
Posts: 2,655

Re: que regarding proc standard

If you want z scores, use your first block of code exactly as it is.  The mean= and std= options give the TARGET values, not the values of your sample.

Another approach is PROC STDIZE.  Something like this:

proc stdize data=X out=zscore sprefix=z_ oprefix=orig;

var A B C;

run;

This will give an output dataset with the original variables prefixed with orig and the z scores prefixed with z_.

I hope this helps.

Steve Denham


View solution in original post


All Replies
Respected Advisor
Posts: 2,655

Re: que regarding proc standard

Your first block of code will standardize all three variables to a mean of 0, and a standard deviation of 1.  This would be a z score.  None of the other code blocks will give z scores, but will instead give scaled scores that will look very much like the raw scores, as you are standardizing to the sample mean and standard deviation.

Steve Denham

Contributor
Posts: 65

Re: que regarding proc standard

Steve, thanks for your reply!

So would it be fair, if I standardzied my data with a mean of 0 and std of 1? Since all my variable have different mean and std. Or should I try to get kind of avg of mean, std and plug it my first block of code?

Solution
‎06-20-2012 02:08 PM
Respected Advisor
Posts: 2,655

Re: que regarding proc standard

If you want z scores, use your first block of code exactly as it is.  The mean= and std= options give the TARGET values, not the values of your sample.

Another approach is PROC STDIZE.  Something like this:

proc stdize data=X out=zscore sprefix=z_ oprefix=orig;

var A B C;

run;

This will give an output dataset with the original variables prefixed with orig and the z scores prefixed with z_.

I hope this helps.

Steve Denham


☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 233 views
  • 1 like
  • 2 in conversation