Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tips & Tricks From your fellow SAS users 9/30/2004.

Similar presentations


Presentation on theme: "Tips & Tricks From your fellow SAS users 9/30/2004."— Presentation transcript:

1 Tips & Tricks From your fellow SAS users 9/30/2004

2 Mehmet Kocak St. Jude Topic: Shapiro-Wilk Normality Test

3 Shapiro-Wilk Normality Test Once you call the macro, here are the parameters you specify: %histogram(data, var, barnum, byvar=none, group=none, numeric=no, title=); DATA: Data set where you have the variable to check normality; VAR: Variable for which to check normality; BARNUM:Number of bars to be shown in the histogram; BYVAR: specifies if you want to check normality for some subgroups; GROUP: specifies group for which to check normality; NUMERIC: specifies if the grouping variable is numberic or categorical (numeric=no/yes) ; TITLE: If no title is specified, then the title is "The Histogram of Variable &VAR"; using this TITLE statement, you can add to the default title;

4 An example can be %histogram(IQData, IQ, 12, byvar=GENDER, group=MALE, numeric=no, title= For Male Patients);

5 %macro histogram(data, var, barnum, byvar=none, group=none, numeric=no, title=); %if &byvar=none %then %do; proc sql noprint; title ""; select distinct min(&var), max(&var), (max(&var)-min(&var))/&barnum into :minval, :maxval, :wdt from &data; quit; proc univariate data=&data normal noprint; title "Univariate Analysis for &var"; var &var; output out=Normal&data normal=normtest probn=pvalue noprint; run; data _null_; set normal&data; if pvalue<0.001 then do; x="<0.001"; call symput("Pvalue", x); end; else call symput ("pvalue", pvalue); run; %let pvalue=%substr(&pvalue, 1,6); proc univariate data=&data normal noprint; title ""; var &var; title "Univariate Analysis for &var"; title1 height=5 font="complex" bold "Histogram of Variable %upcase(&var) &title"; title2 height=5 font=simplex "P-value for Shapiro-Wilk Normality Test=&pvalue"; histogram &var/normal(noprint) height=5 font=complex midpoints=&minval to &maxval by &wdt; run; %end; %else %if &byvar^=none and &numeric=no %then %do; proc sql noprint; title ""; select distinct min(&var), max(&var), (max(&var)-min(&var))/&barnum into :minval, :maxval, :wdt from &data where &byvar="&group"; quit; proc univariate data=&data normal noprint; where &byvar="&group"; title height=0.1 "Univariate Analysis for &var in Group %upcase(&group)"; var &var; output out=Normal&data normal=normtest probn=pvalue; run; data _null_; set normal&data; if pvalue<0.001 then do; x="<0.001"; call symput("Pvalue", x); end; else call symput ("Pvalue", pvalue); run; %let pvalue=%substr(&pvalue, 1,6); proc univariate data=&data noprint; where &byvar="&group"; title ""; var &var; title "Univariate Analysis for &var in Group %upcase(&group)"; title1 height=5 font="complex" bold "Histogram of Variable %upcase(&var) for %upcase(&group) &title"; title2 height=5 font=simplex "P-value for Shapiro-Wilk Normality Test=&pvalue"; histogram &var/normal(noprint) height=5 font=complex midpoints=&minval to &maxval by &wdt; run; %end;

6 %else %if &byvar^=none and &numeric^=no %then %do; proc sql noprint; title ""; select distinct min(&var), max(&var), (max(&var)-min(&var))/&barnum into :minval, :maxval, :wdt from &data where &byvar=&group; quit; proc univariate data=&data normal noprint; where &byvar=&group; title height=0.1 "Univariate Analysis for &var in Group %upcase(&group)"; var &var; output out=Normal&data normal=normtest probn=pvalue; run; data _null_; set normal&data; if pvalue<0.001 then do; x="<0.001"; call symput("Pvalue", x); end; else call symput ("Pvalue", pvalue); run; %let pvalue=%substr(&pvalue, 1,6); proc univariate data=&data noprint; where &byvar=&group; title ""; var &var; title "Univariate Analysis for &var in Group &group"; title1 height=5 font="complex" bold "Histogram of Variable %upcase(&var) for &group &title"; title2 height=5 font=simplex "P-value for Shapiro-Wilk Normality Test=&pvalue"; histogram &var/normal(noprint) height=5 font=complex midpoints=&minval to &maxval by &wdt; run; %end; %mend histogram;

7 Other Misc. Tips and Tricks See handouts on sign-in table for Tips and Tricks from SAS


Download ppt "Tips & Tricks From your fellow SAS users 9/30/2004."

Similar presentations


Ads by Google