1 The SAS System 08:15 Friday, November 23, 2001 NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA. NOTE: SAS (r) Proprietary Software Release 8.2 (TS2M0) Licensed to UNC-CHAPEL HILL-SYSTEMWIDE-T/R, Site 0039466002. NOTE: This session is executing on the WIN_PRO platform. NOTE: SAS initialization used: real time 0.23 seconds cpu time 0.10 seconds 1 TITLE1 "EXAMPLE2.SAS--Demonstrate LINMOD using MAKESS"; 2 3 * Data are from Danford, Hughes, and McNee, *; 4 * "On the Analysis of Repeated Measurement Experiments," *; 5 * Biometrics, 16, 1960, pp. 547-565. *; 6 7 * 0. Define raw data file; 8 FILENAME IN01 "..\EXAMPLES\PAYNE.DAT"; 9 DATA PAYNE; 10 INFILE IN01; 11 INPUT @7 GROUP $ INIT SCORE2 SCORE4 SCORE6 SCORE8 SCORE10; 12 * Create indicator variables ; 13 CONTROL =(GROUP="1"); 14 LOW =(GROUP="2"); 15 MODERATE=(GROUP="3"); 16 HIGH =(GROUP="4"); 17 NOTE: The infile IN01 is: File Name=D:\PROGRAMS\LINMOD33\EXAMPLES\PAYNE.DAT, RECFM=V,LRECL=256 NOTE: 45 records were read from the infile IN01. The minimum record length was 31. The maximum record length was 31. NOTE: The data set WORK.PAYNE has 45 observations and 11 variables. NOTE: DATA statement used: real time 0.01 seconds cpu time 0.01 seconds 18 PROC PRINT DATA=PAYNE; 19 20 *1. Define directory in which LINMOD source code has been stored; 21 %LET LMDIRECT = ..\SOURCE\ ; 22 23 *2. Define SAS macro's needed; 24 %INCLUDE "&LMDIRECT.MACROLIB.MAC" / NOSOURCE2 ; 41 2 The SAS System 08:15 Friday, November 23, 2001 42 * 3. Reduce raw data to a TYPE=CORR file. See Example 1; 43 * Not done in this example due to using MAKESS; 44 45 * 4.1 Start IML with at least minimum space needed; 46 * Use SHOW SPACE statement and larger WORKSIZE, SYMSIZE values 47 * to tune performance with bigger problems; NOTE: There were 45 observations read from the data set WORK.PAYNE. NOTE: The PROCEDURE PRINT printed page 1. NOTE: PROCEDURE PRINT used: real time 0.02 seconds cpu time 0.02 seconds 48 PROC IML WORKSIZE=1000 SYMSIZE=1000; Worksize = 1024000 Symbol size = 1024000 NOTE: IML Ready 49 50 *4.2 Initialize LINMOD code; 51 &LINMOD ; NOTE: Module _DEFOPT_ defined. NOTE: Module _EREXIT_ defined. NOTE: Module _FITMOD_ defined. NOTE: Module _GETCSS_ defined. NOTE: Module _INITL_ defined. NOTE: Module _MAKESS_ defined. NOTE: Module _NMLIST_ defined. NOTE: Module _PRPARM_ defined. NOTE: Module _PVTYPE_ defined. NOTE: Module _SCAN_ defined. NOTE: Module _SETOPT_ defined. NOTE: Module _TSTGLH_ defined. NOTE: Module _UNIREP_ defined. NOTE: Module _UNSCAN_ defined. NOTE: Module _ZPIVOT_ defined. NOTE: Module FITMODEL defined. NOTE: Module GETCORSS defined. NOTE: Module MAKESS defined. NOTE: Module SETOPT defined. NOTE: Module TESTGLH defined. NOTE: Module NAMELIST defined. NOTE: Module UTREND defined. NOTE: Module UMEAN defined. NOTE: Module UPOLY1 defined. NOTE: Module UPOLY2 defined. 2301 2302 *5. Change and list options; 2303 OPT_OFF = { "MSH" }; 2304 OPT_ON = { "LISTINFO" "AVAILOPT" }; 3 The SAS System 08:15 Friday, November 23, 2001 2305 RUN SETOPT; 2306 2307 *6.1 Read raw data into IML; 2308 * Use this approach only for small files; 2309 * Use PROCSSCP macro otherwise; 2310 USE PAYNE; 2311 READ ALL VAR{"GROUP"} INTO GROUP; 2312 READ ALL VAR{"INIT"} INTO INIT; 2313 READ ALL VAR{"SCORE2" "SCORE4" "SCORE6" "SCORE8" "SCORE10"} INTO Y; 2314 CLOSE PAYNE; 2315 2316 *6.2 Use IML functions to create indicator variables for design 2316 ! matrix; 2317 N=NROW(Y); 2317 ! * # observations in sample; 2318 CONSTANT=J(N,1,1); 2318 ! *Column of 1's for intercept, etc; 2319 CELLMEAN=DESIGN(GROUP); 2319 ! *Cell mean coding; 2320 EFFECT =CONSTANT||DESIGNF(GROUP); 2320 ! *Effect coding; 2321 REFERENC=CONSTANT||CELLMEAN(|*,2:NCOL(CELLMEAN)|); 2322 *Reference cell coding 2322 ! ; 2323 *Refer to IML manual for explanation of functions; 2324 *Use PROC PRINT and FREQ on GROUP to determine interpretation of BETA 2324 ! ; 2325 2326 *6.3 Assemble all predictors and responses into a single matrix, 2327 which must be called Z (to use MAKESS). ZNAMES must also exist, 2328 with 1 row, with values labeling the columns of Z ; 2329 Z = CELLMEAN || INIT || Y; 2330 ZNAMES = { "CONTROL" "LOW" "MODERATE" "HIGH" "INIT" } 2331 || { "SCORE2" "SCORE4" "SCORE6" "SCORE8" "SCORE10" } ; 2332 FREE GROUP INIT Y ; 2333 2334 *7. Create SSCP matrix and associated parameters; 2335 RUN MAKESS; 2336 FREE Z; 2336 ! *Saves space, but if helpful, use PROCSSCP macro, not MAKESS; 2337 2338 *8. Fit a model; 2339 INDVARS = { "CONTROL" "LOW" "MODERATE" "HIGH" "INIT" }; 2340 DEPVARS = { "SCORE2" "SCORE4" "SCORE6" "SCORE8" "SCORE10" }; 2341 RUN FITMODEL; 2342 2343 *9. Conduct any testimation desired; 2344 *C= ---- ; 2345 *U= ---- ; 2346 *RUN TESTGLH; 4 The SAS System 08:15 Friday, November 23, 2001 NOTE: Exiting IML. NOTE: The PROCEDURE IML printed pages 2-5. NOTE: PROCEDURE IML used: real time 0.31 seconds cpu time 0.31 seconds NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414 NOTE: The SAS System used: real time 0.98 seconds cpu time 0.46 seconds