Chapter Contents |
Previous |
Next |
The TRANSREG Procedure |
You can use PROC TRANSREG to output to a SAS data set the same smoothing splines that the GPLOT procedure creates. The SMOOTH transformation is a noniterative transformation for smoothing splines. The smoothing parameter can be specified with either the SM= or the PARAMETER= o-option. The independent variable transformation (Tx in this case) contains the results. The GPLOT request y*x=2 with I=SM50 creates the same curve as Tx*x.
title 'Smoothing Splines'; data x; do x = 1 to 100 by 2; do rep = 1 to 3; y = log(x) + sin(x / 10) + normal(7); output; end; end; run; proc transreg; model identity(y) = smooth(x / sm=50); output; run; %let opts = haxis=axis2 vaxis=axis1 frame cframe=ligr; proc gplot; axis1 minor=none label=(angle=90 rotate=0); axis2 minor=none; plot y*x=1 y*x=2 tx*x=3 / &opts overlay; symbol1 color=blue v=star i=none; symbol2 color=yellow v=none i=sm50; symbol3 color=cyan v=dot i=none; run; quit;
When you cross a SMOOTH variable with a CLASS variable, specify ZERO=NONE with the CLASS expansion and the AFTER t-option with the SMOOTH transformation so that separate functions are found within each group.
title2 'Two Groups'; data x; do x = 1 to 100; group = 1; do rep = 1 to 3; y = log(x) + sin(x / 10) + normal(7); output; end; group = 2; do rep = 1 to 3; y = -log(x) + cos(x / 10) + normal(7); output; end; end; run; proc transreg; model identity(y) = class(group / zero=none) | smooth(x / after sm=50); output out=curves; run; data curves2; set curves; if group1 = 0 then tgroup1x = .; if group2 = 0 then tgroup2x = .; run; %let opts = haxis=axis2 vaxis=axis1 frame cframe=ligr; proc gplot; axis1 minor=none label=(angle=90 rotate=0); axis2 minor=none; plot y*x=1 tgroup1x*x=2 tgroup2x*x=2 / &opts overlay; symbol1 color=blue v=star i=none; symbol2 color=yellow v=none i=join; run; quit;
The SMOOTH transformation is valid only with independent variables; typically, it is used in models with a single independent and a single dependent variable. When there are multiple independent variables designated as SMOOTH, the TRANSREG procedure tries to smooth the ith independent variable using the ith dependent variable as a target. When there are more independent variables than dependent variables, the last dependent variable is reused as often as is necessary. For example, for the model
model identity(y1-y3) = smooth(x1-x5);
smoothing is based on the pairs (y1, x1), (y2, x2), (y3, x3), (y3, x4), and (y3, x5).
The SMOOTH transformation is a noniterative transformation; smoothing occurs once per variable before the iterations begin. In contrast, SSPLINE provides an iterative smoothing spline transformation. It does not generally minimize squared error; hence, divergence is possible with SSPLINE.
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.