📄 histogrm.sas
字号:
%macro HISTOGRM;
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* */
/* LAST MODIFIED: March 25, 2003 */
/* */
/* Use GCHART to run histograms (horz/vert bar charts) of */
/* Residuals and Influences: */
/* */
/* 1. Histogram of the residuals. */
/* */
/* 2. Normal Probability Plot of the Residuals. */
/* */
/* 3. Histogram of PSU Influence (if clusters). */
/* */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
footnote;
title;
goptions reset=ALL
cback=white
htitle=5
htext=3
ftext=swissb
colors=(black)
gunit=pct
border
rotate=landscape
NOdisplay
%if &SYSSCP eq WIN %then
%do;
device=WIN
%end;
%else %do;
device=XCOLOR
%end;
;
symbol1 color=black
/* interpol=L1 */
;
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* */
/* 1. Histogram of the residuals. */
/* */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* NOTE: WORK.MERGED1 WAS CREATED BY SCATPLOT.SAS... */
proc gchart data=WORK.MERGED1
gout=WORK.HISTOCAT
;
vbar RESID / frame type=FREQ FREQ levels=10
name='HSTRESID';
title1 "Histogram of Residuals";
footnote1 ;
label RESID="Residuals Midpoints";
run;
quit;
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* */
/* 2. Normal Probability Plot of the Residuals. */
/* */
/* a. Merge Rankit with Residuals. */
/* */
/* b. Do scatter plot of Residuals vs ordered Rankits. */
/* */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* NOTE: WORK.MERGED1 WAS CREATED BY SCATPLOT.SAS... */
proc sort data=WORK.MERGED1 ;
by RESID;
where RESID NE .;
run;
data WORK.MERGED2 ;
set WORK.MERGED1 ;
_OBS_=_n_;
run;
proc sort data=&RANKFILE (rename=(&SEQVAR=&IDVAR))
out=WORK.XRANKFLE
;
by &IDVAR;
run;
data WORK.MERGED3 ;
merge WORK.MERGED2
WORK.XRANKFLE
;
by &IDVAR ;
run;
symbol1 interpol=SM40PS
width=1
height=3
value=star
;
axis97 label=("Residuals")
;
axis96 label=("Rankits")
;
proc gplot data=WORK.MERGED3
gout=WORK.HISTOCAT
;
plot RESID * _RANKIT_ /* Y-var first, X-var second. */
/ frame vaxis=AXIS97 haxis=AXIS96 name='NORMPROB';
title1 "Normal Probability Plot of the Residuals";
run;
quit;
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* */
/* 3. Histogram of PSU Influence. */
/* */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
%if (&INFLFILE ne ) %then %do;
symbol1 interpol=NONE
;
proc gchart data=&INFLFILE
gout=WORK.HISTOCAT;
vbar &INFLVAR / frame type=FREQ FREQ levels=10
name='HISTINFL';
title1 "Histogram of Influences";
footnote1 ;
label &INFLVAR="PSU Influence Midpoints";
run;
quit;
%end;
/* COUNT NUMBER OF GRAPHS (BEFORE RUNNING GSLIDE), ASSIGN */
/* TO A GLOBAL MACRO VARIABLE. */
proc catalog cat=WORK.HISTOCAT;
contents out=WORK.HISTOCON;
run;
quit;
data _NULL_ ;
set WORK.HISTOCON end=LAST ;
%global COUNTHST;
if LAST eq 1 then call symput("COUNTHST",trim(left(_N_)));
run;
/* GENERATE MAIN TITLES WITH GSLIDE... */
proc gslide gout=WORK.HISTOCAT name='HSTSLIDE';
title1 "Regression Diagnostic Plots";
title2 "Histograms and Normal Probability Plot";
footnote1;
run;
quit;
/* MORE HOUSECLEANING: DELETE REMAINING TEMPORARY DATASETS.*/
/* DELETE MACROS FROM SASMACR CATALOG. */
/* NOTE: WILL HAVE TO DELETE HISTOCAT CATALOG LATER. */
proc datasets lib=WORK nolist memtype=data;
delete XRANKFLE HISTOCON / memtype=data ;
run;
quit;
%mend HISTOGRM;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -