I need to run univariate linear regressions on a number of different
files with a number of different dependent and predictor variables. I
also want to save the coefficients and model summary from each
regression to compare them later. The first macro I've come up with is
this:
SET MPRINT OFF.
DEFINE LINREGR1 (X=!CHAREND("/")
/Y=!CMDEND).
OMS SELECT TABLES
/IF COMMANDS=['REGRESSION'] SUBTYPES = ['COEFFICIENTS' ]
/DESTINATION FORMAT = SAV NUMBERED="TN" OUTFILE='F:\my data
\folder1\type1_R1a.sav'.
OMS SELECT TABLES
/IF COMMANDS=['REGRESSION'] SUBTYPES = ['MODEL SUMMARY' ]
/DESTINATION FORMAT = SAV NUMBERED="TN" OUTFILE='F:\my data
\folder1\type1_R1b.sav'.
!DO !I !IN (!X)
!DO !J !IN (!Y)
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS CI R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT !I
/METHOD=ENTER !J.
!DOEND
!DOEND
OMSEND.
!ENDDEFINE.
SET MPRINT ON.
LINREGR1 X= Var1 /Y= Var2 Var3 Var4.
This macro works fine, but I wanted to improve it with a variable for
the outfile destination, so I changed it to this:
SET MPRINT OFF.
DEFINE LINREGR1 (FOLDER=!TOKENS(1)
/X=!CHAREND("/")
/Y=!CMDEND).
OMS SELECT TABLES
/IF COMMANDS=['REGRESSION'] SUBTYPES = ['COEFFICIENTS' ]
/DESTINATION FORMAT = SAV NUMBERED="TN" OUTFILE=!QUOTE(!CONCAT(!
UNQUOTE('F:\my data\'),!UNQUOTE(!FOLDER),!UNQUOTE('_R1a.sav'))).
OMS SELECT TABLES
/IF COMMANDS=['REGRESSION'] SUBTYPES = ['MODEL SUMMARY' ]
/DESTINATION FORMAT = SAV NUMBERED="TN" OUTFILE=!QUOTE(!CONCAT(!
UNQUOTE('F:\my data\'),!UNQUOTE(!FOLDER),!UNQUOTE('_R1b.sav'))).
!DO !I !IN (!X)
!DO !J !IN (!Y)
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS CI R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT !I
/METHOD=ENTER !J.
!DOEND
!DOEND
OMSEND.
!ENDDEFINE.
SET MPRINT ON.
LINREGR1 FOLDER='folder1\type1' /X= Var1 /Y= Var2 Var3 Var4.
I think the string for the outfile destination works ok, but it won't
run the regressions anymore. It just jumps to omsend. Can anybody
help? What am I doing wrong?
Thanks,
Anna
Hi,
you should write:
LINREGR1 FOLDER='folder1\type1' X= Var1 /Y= Var2 Var3 Var4.
baiyun
Thank you,
it's working fine now.