*! version 1.0.0 01 September 1993 RG program define corcor version 3.1 local varlist "opt ex min(3)" local if "opt" local in "opt" parse "`*'" parse "`varlist'", parse(" ") tempname Fisher1 Fisher2 Corr1 En1 Corr2 En2 Corrx En3 Avcorr Eff Haitch qui fisher `1' `2' `if' `in' scalar `Fisher1'=Fisher scalar drop Fisher qui fisher `1' `3' `if' `in' scalar `Fisher2'=Fisher scalar drop Fisher qui corr `1' `2' `if' `in' scalar `Corr1'=_result(4) scalar `En1'=_result(1) qui corr `1' `3' `if' `in' scalar `Corr2'=_result(4) scalar `En2'=min(_result(1),`En1') qui corr `2' `3' `if' `in' scalar `Corrx'=_result(4) scalar `En3'=min(_result(1),`En2') scalar `Avcorr'=(`Corr1'^2+`Corr2'^2)/2 scalar `Eff'=min(1,((1-`Corrx')/(2*(1-`Avcorr')))) scalar `Haitch'=(1-(`Eff'*`Avcorr'))/(1-`Avcorr') display "Test Statistic (Z) = "%7.4f (`Fisher1' - /* */ `Fisher2')*sqrt((`En3'-3)/(2*(1-`Corrx')*`Haitch')) _skip(3) /* */ "p-value: "%7.4f 1-normprob(abs((`Fisher1' - /* */ `Fisher2')*sqrt((`En3'-3)/(2*(1-`Corrx')*`Haitch')))) _skip(3) /* */ "2-tailed p-value: "%7.4f 2*(1-normprob(abs((`Fisher1' - /* */ `Fisher2')*sqrt((`En3'-3)/(2*(1-`Corrx')*`Haitch'))))) end