1 / 7

Tips & Tricks

Tips & Tricks. From your fellow SAS users 9/30/2004. Mehmet Kocak St. Jude Topic: Shapiro-Wilk Normality Test. Shapiro-Wilk Normality Test.

kinipela
Download Presentation

Tips & Tricks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Mehmet KocakSt. JudeTopic: 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

More Related