Documentation Example 7 for Template Modification
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: TEMPLEX7 */
/* TITLE: Documentation Example 7 for Template Modification */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: graphics, ods */
/* PROCS: */
/* DATA: */
/* */
/* SUPPORT: saswfk UPDATE: July 25, 2014 */
/* REF: ods graphics */
/* MISC: */
/* NOTES: */
/****************************************************************/
%let vars = nAtBat nHits nHome nRuns nRBI nBB nOuts nAssts
CrAtBat CrHits CrHome CrRuns CrRbi CrBB;
proc glm noprint data=sashelp.baseball;
class div;
model logsalary = div &vars;
output out=pvals p=p;
quit;
%marginal(independents=&vars, dependent=LogSalary, predicted=p)
proc glm noprint data=sashelp.baseball;
class div;
model logsalary = div CrHome;
output out=pvals p=p;
quit;
%marginal(independents=CrHome, dependent=LogSalary, predicted=p,
panel=1 3, gopts=designheight=250px)
proc glm noprint data=sashelp.baseball;
class div;
model logsalary = div CrHome CrRuns;
output out=pvals p=p;
quit;
%marginal(independents=CrHome CrRuns, dependent=LogSalary, predicted=p)
%let vars = nHits nHome nRuns CrHits CrHome CrRuns CrRbi;
proc glm noprint data=sashelp.baseball;
class div;
model logsalary = div &vars;
output out=pvals p=p;
quit;
%marginal(independents=&vars, dependent=LogSalary, predicted=p)
proc glm noprint data=sashelp.baseball;
class div;
model logsalary = div CrAtBat CrHits CrHome;
output out=pvals p=p;
quit;
%marginal(independents=CrAtBat CrHits CrHome,
dependent=LogSalary, predicted=p, panel=1)
proc template;
define statgraph __marginal;
dynamic _ivar1 _ivar2 _ivar3 ncells pplot;
begingraph / designwidth=defaultdesignheight;
entrytitle "Marginal Models for LogSalary";
legenditem type=line name='a' / lineattrs=GRAPHFIT label='Data';
legenditem type=line name='b' / lineattrs=GRAPHFIT2 label='Model';
layout lattice / columns=2 rows=2 rowdatarange=unionall rowgutter=10
columngutter=10;
if (1 LE NCELLS)
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=(label));
scatterplot y=LOGSALARY x=_IVAR1;
loessplot y=LOGSALARY x=_IVAR1 /;
loessplot y=P x=_IVAR1 / lineattrs=GRAPHFIT2;
endlayout;
endif;
if (2 LE NCELLS)
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=(label));
scatterplot y=LOGSALARY x=_IVAR2;
loessplot y=LOGSALARY x=_IVAR2 /;
loessplot y=P x=_IVAR2 / lineattrs=GRAPHFIT2;
endlayout;
endif;
if (3 LE NCELLS)
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=(label));
scatterplot y=LOGSALARY x=_IVAR3;
loessplot y=LOGSALARY x=_IVAR3 /;
loessplot y=P x=_IVAR3 / lineattrs=GRAPHFIT2;
endlayout;
endif;
if (PPLOT)
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=(label)
label='Predicted Values');
scatterplot y=LOGSALARY x=P;
loessplot y=LOGSALARY x=P /;
seriesplot y=_Y x=_X / lineattrs=GRAPHFIT2;
endlayout;
endif;
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=none);
discretelegend 'a' 'b' / location=inside across=1 border=false;
endlayout;
endlayout;
endgraph;
end;
quit;
proc template;
define statgraph __marginal;
dynamic _ivar1 ncells pplot;
begingraph / designwidth=defaultdesignheight;
entrytitle "Marginal Models for LogSalary";
legenditem type=line name='a' / lineattrs=GRAPHFIT label='Data';
legenditem type=line name='b' / lineattrs=GRAPHFIT2 label='Model';
layout lattice / columns=1 rows=1 rowdatarange=unionall
rowgutter=10 columngutter=10;
if (1 LE NCELLS)
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=(label));
scatterplot y=LOGSALARY x=_IVAR1;
loessplot y=LOGSALARY x=_IVAR1 /;
loessplot y=P x=_IVAR1 / lineattrs=GRAPHFIT2;
layout gridded / autoalign=(topright topleft bottomright
bottomleft);
discretelegend 'a' 'b' / location=inside across=1;
endlayout;
endlayout;
endif;
if (PPLOT)
layout overlay / yaxisopts=(display=none)
xaxisopts=(display=(label) label='Predicted Values');
scatterplot y=LOGSALARY x=P;
loessplot y=LOGSALARY x=P /;
seriesplot y=_Y x=_X / lineattrs=GRAPHFIT2;
layout gridded / autoalign=(topright topleft bottomright
bottomleft);
discretelegend 'a' 'b' / location=inside across=1;
endlayout;
endlayout;
endif;
endlayout;
endgraph;
end;
quit;