Chapter Contents |
Previous |
Next |

Tutorial: A Module for Linear Regression |

You can create some simple plots by using the PGRAF subroutine. The PGRAF subroutine produces scatter plots suitable for printing on a line printer. If you want to produce better quality graphics using color, you can use the graphics capabilities of IML (see Chapter 12, "Graphics Examples," for more information).

Here is how you can plot the residuals against **x**.
First, create a matrix containing the pairs of points by
concatenating **X1** with **RESID**
using the horizontal concatenation operator (|).

> xy=x1||resid; XY 5 rows 2 cols (numeric) 1 -0.2 2 1 3 -1.8 4 1.4 5 -0.4Next, use a CALL statement to call the PGRAF subroutine to produce the desired plot. The arguments to PGRAF are, in order,

- the matrix containing the pairs of points
- a plotting symbol
- a label for the X-axis
- a label for the Y-axis
- a title for the plot

> call pgraf(xy,'r','x','Residuals','Plot of Residuals'); Plot of Residuals 2 + | | r R | e | r s | i | d 0 + u | r r a | l | s | | | r -2 + --------+------+------+------+------+------+------+------+------+-------- 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 x

You can also plot the predicted values
against **x**.
You must first create a matrix, say
**XYH**, containing the points.
Do this by concatenating **X1** with **YHAT**.
Next, call the PGRAF subroutine to plot the points.

> xyh=x1||yhat; XYH 5 rows 2 cols (numeric) 1 1.2 2 4 3 10.8 4 21.6 5 36.4 > call pgraf(xyh,'*','x','Predicted','Plot of Predicted Values'); Plot of Predicted Values 40 + | * | P | r | e | d | * i 20 + c | t | e | * d | | | * 0 + * --------+------+------+------+------+------+------+------+------+-------- 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 xYou can get a more detailed plot, denoting the observed values with a "y" and the predicted values with a "p" using the following statements. Create a matrix

> newxy=(x1//x1)||(y//yhat); NEWXY 10 rows 2 cols (numeric) 1 1 2 5 3 9 4 23 5 36 1 1.2 2 4 3 10.8 4 21.6 5 36.4 > n=nrow(x1); N 1 row 1 col (numeric) 5 > label=repeat('y',n,1)//repeat('p',n,1); LABEL 10 rows 1 col (character, size 1) y y y y y p p p p p > call pgraf(newxy,label,'x','y','Scatter Plot with Regression Line' ); Scatter Plot with Regression Line y 40 + | y | | | | | y 20 + | | | p | y | y | p 0 + y --------+------+------+------+------+------+------+------+------+---- 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 xAs you can see, the observed and predicted values are too close together to be able to distinguish them at all values of

Chapter Contents |
Previous |
Next |
Top |

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.