Comparing correlations in matrices from two subgroups
The following syntax produces individual group correlation matrices involving variables, x, saves the output to a SPSS data file and then compares two of the groups using Fisher's transformation (details and exmaples, for example in, Howell, (2002)).
In brief, we can transform a correlation, r, to ,r', where
$$\mbox{r' = 0.5} log_text{e} abs [ \frac{1+r}[1-r} } ]$$.
Now, for a sample of size, N, the transformed correlation, r', follows a normal distribution with a mean of zero and a variance equal to 1/(N-3).
This means we can compare two correlations by comparing their transformed counterparts and so form a z score.
$$z = \frac{r'_text{1} - r'_text{2}}{\sqrt{1/(N_text{1}-3) + 1/(N_text{2}-3)}}$$
The macro below firstly uses the output management system (OMS) to obtain the correlations for two independent groups and then carries out the transformation and finally computes a z score which we can convert to p-values using other functions in SPSS. Any p-value less than 0.05 suggests there is evidence a pair of group correlations differ from one another.
* USING FISHER'S TRANSFORMATION FOR COMPARING TWO CORRELATIONS FROM TWO INDEPENDENT GROUPS DEFINE !FISH ( GP !TOKENS(1) / X !CMDEND). SPLIT FILE BY !GP. OMS /SELECT TABLES /IF SUBTYPES=['Correlations'] /DESTINATION FORMAT=SAV OUTFILE='c:\corrs.sav' /COLUMNS SEQUENCE=[R3, R1]. CORRELATIONS /VARIABLES=!X /PRINT=TWOTAIL NOSIG /MISSING=PAIRWISE . OMSEND. !ENDDEFINE. * Specify group variable and variables in correlation matrix. !FISH GP=SEX X=AGE EDUC PRESTG80. * Edit the correlation data file and perform Fisher's test. * OMS creates names of form using the variable label * PearsonCorrelation_Var Label which are a bit cumbersome * so you can rename them as below if you wish and remove * extraneous information. GET FILE ='C:\CORRS.SAV'. SAVE OUTFILE='C:\CORRS2.SAV' /DROP=Command_ to Var2 Sig.2tailed_Female Sig.2tailed_Male /RENAME=(PearsonCorrelation_Male PearsonCorrelation_Female N_Male N_Female = cm cf nm nf). exe. GET FILE='C:\CORRS2.SAV'. SELECT IF (CF NE 1 AND CM NE 1). EXE. FORMAT CF (F5.2) CM (F5.2). DEFINE !FISH2 ( GP1 !TOKENS(1) / GP2 !TOKENS(1) / NGP1 !TOKENS(1) / NGP2 !TOKENS(1)). COMPUTE Z= (0.5*LN(ABS((1+!GP1)/(1-!GP1))) - 0.5*LN(ABS((1+!GP2)/(1-!GP2)))) / SQRT( (1/(!NGP1-3)) + (1/(!NGP2-3)) ). COMPUTE PZ= 2*CDFNORM(-ABS(Z)). EXE. SUMMARIZE /TABLES=!GP1 !GP2 Z PZ /FORMAT=LIST NOCASENUM NOTOTAL /TITLE='CORRELATION COMPARISONS FOR MALES AND FEMALES' /MISSING=VARIABLE /CELLS=NONE. !ENDDEFINE. !FISH2 GP1=CM GP2=CF NGP1=NM NGP2=NF.
Reference
Howell DC (2002) Statistical methods for psychologists. Duxbury Press:Pacific Grove, CA