* -------------------------------------------------------------- . * Run a series of simple linear regressions with the same DV * using matrix output from CORRELATIONS procedure as the input. * This example was posted to newsgroup comp.soft-sys.stat.spss * by David Marso (aka Neila Nessa) in October, 2004. * -------------------------------------------------------------- . GET FILE='C:\Program Files\SPSS\1991 U.S. General Social Survey.sav'. ** NEAT TRICK HERE IF YOU HAVE A HUGE MATRIX AND ** Frankly You Don't Give a Damn"......***. SET ERRORS OFF RESULTS OFF. CORRELATIONS /VARIABLES=happy sex race life sibs / MATRIX OUT(*). ** TRICK OVER.. RESUME LIFE IN DEFAULT WORLD ;-) . SET ERRORS ON RESULTS ON . SAVE OUTFILE "C:\TEMP\CorrMat.sav". ** JUST A REALITY CHECK FOR THE NON-BELIEVERS OUT THERE ;-) *. REGRESSION / MATRIX IN (*) / MISSING PAIRWISE /DEP HAPPY / METHOD ENTER sex. REGRESSION / MATRIX IN (*) / MISSING PAIRWISE / DEP HAPPY / METHOD ENTER Race. REGRESSION / MATRIX IN (*) / MISSING PAIRWISE / DEP HAPPY / METHOD ENTER Life. REGRESSION / MATRIX IN (*) / MISSING PAIRWISE / DEP HAPPY / METHOD ENTER Sibs. * --------------- Define macro REGMEM -------------------- . DEFINE REGMEM ( VARLIST !ENCLOSE ("(",")") ). RECODE ROWTYPE_ ("MEAN"=0)("STDDEV"=1)("N"=3)("CORR"=4) INTO ROWORD. COMPUTE VORDER=1. IF VARNAME_= !QUOTE(!UPCASE(!HEAD(!VARLIST) )) VORDER=0. SORT CASES BY ROWORD VORDER . MATCH FILES / FILE * / KEEP rowtype_ varname_ SIBS ALL / DROP ROWORD VORDER. SELECT IF ANY(ROWTYPE_,"MEAN","STDDEV","CORR","N") OR varName_=!QUOTE(!UPCASE(!HEAD(!VARLIST) )). FLIP VARIABLES=!VARLIST / NEWNAME=rowtype_ . MATCH FILES / FILE * / KEEP case_lbl mean stddev n corr . DO IF $CASENUM=1. - COMPUTE #MNY=MEAN. - COMPUTE #SDY = STDDEV. ELSE. - COMPUTE MEANY=#MNY . - COMPUTE SDY= #SDY . - COMPUTE Beta = corr*SDy / StdDev. - COMPUTE B0 = MeanY-Beta*Mean. - COMPUTE Sb = (SDY*SQRT(1-Corr**2)* SQRT(N /(N-2)) )/(Stddev * SQRT(N-1)). - COMPUTE T= Beta /Sb . - COMPUTE PROB = (1 - CDF.T(T,N-2)) * 2. END IF. FORMATS mean to prob (f7.3) / n (F7.0). exe. !ENDDEFINE . * ------------- End of macro definition ----------------- . SET MPRINT ON / PRINTBACK ON. ** READ IN THE CORRELATION MATRIX, THEN CALL THE MACRO **. ** JUST PUT THE DEPENDENT VARIABLE FIRST **. GET FILE "C:\TEMP\CorrMat.sav". REGMEM VARLIST (happy sex race life sibs ) . list case_lbl to corr beta to prob. GET FILE "C:\TEMP\CorrMat.sav". REGMEM VARLIST (sex race life sibs happy ) . list case_lbl to corr beta to prob. GET FILE "C:\TEMP\CorrMat.sav". REGMEM VARLIST (race life sibs happy sex ) . list case_lbl to corr beta to prob. GET FILE "C:\TEMP\CorrMat.sav". REGMEM VARLIST ( life sibs happy sex race) . list case_lbl to corr beta to prob. GET FILE "C:\TEMP\CorrMat.sav". REGMEM VARLIST ( sibs happy sex race life) . list case_lbl to corr beta to prob. ** END OF FILE **.