Sample size for correlation hypothesis testing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | * SAMPLE SIZE FOR CORRELATION HYPOTHESIS TESTING *. * Marta Garcia-Granero biostatistics@terra.es . * Usual conditions for alfa and power (auxiliary file). * This file covers the most used conditions for sample size determination (add your own if required): - alfa=5% and 1% with for or two tailed tests - power=80%, 90%, 95% and 99%. * This file must be active in order to make some of the MACROS work. DATA LIST LIST /id(F2.0) alfa(f8.3) tails(F2.0) power(F8.3). BEGIN DATA 1 0.05 1 0.80 2 0.05 2 0.80 3 0.05 1 0.90 4 0.05 2 0.90 5 0.05 1 0.95 6 0.05 2 0.95 7 0.05 1 0.99 8 0.05 2 0.99 9 0.01 1 0.80 10 0.01 2 0.80 11 0.01 1 0.90 12 0.01 2 0.90 13 0.01 1 0.95 14 0.01 2 0.95 15 0.01 1 0.99 16 0.01 2 0.99 END DATA. COMPUTE zalfa = IDF.NORMAL(1-(alfa/tails),0,1) . COMPUTE zbeta = IDF.NORMAL(1-power,0,1) . EXEC. DEFINE onecorr(r0=!DEFAULT(0) !TOKENS(1)/r1=!TOKENS(1)). * This one requires the auxiliary file *. MATRIX. PRINT /TITLE 'SAMPLE SIZE: ONE SAMPLE CORRELATION TEST'. get id /var=id. get alfa /var=alfa. get tails/ var=tails. get power /var=power. get zalfa /var=zalfa. get zbeta /var=zbeta. compute r0=!r0. compute r1=!r1. COMPUTE zr0=.5*(LN((1+r0)/(1-r0))). COMPUTE zr1=.5*(LN((1+r1)/(1-r1))). compute zdiff=abs(zr1-zr0). print {r0,r1,zr0,zr1,zdiff} /format="f8.2" /clabels="H0 rho","H1 rho","Zr0","Zr1","Dif. Z" /title="Correlation coefficients under H0 & H1". compute n=TRUNC(((zalfa-zbeta)/zdiff)&**2)+4. print {id,100*alfa,tails,100*power,n} /format="f8.0" /clabels="Id","Alfa(%)","Nє colas","Pot.(%)","N" /title="Required sample size for the following values of alpha & beta". END MATRIX. !ENDDEFINE. DEFINE onecorrp(r0=!DEFAULT(0) !TOKENS(1)/r1=!TOKENS(1) /n=!TOKENS(1) /alfa=!DEFAULT(0.05) !TOKENS(1) /tails=!DEFAULT(2) !TOKENS(1)). * Auxiliary file NOT needed *. MATRIX. PRINT /TITLE 'SAMPLE SIZE: POWER FOR A ONE SAMPLE CORRELATION TEST'. compute r0=!r0. compute r1=!r1. compute n=!n. compute alfa=!alfa. compute tails=!tails. compute pval=alfa/tails. do if pval=0.05. compute zalfa=1.645. end if. do if pval=0.025. compute zalfa=1.96. end if. do if pval=0.01. compute zalfa=2.326. end if. do if pval=0.005. compute zalfa=2.576. end if. COMPUTE zr0=.5*(LN((1+r0)/(1-r0))). COMPUTE zr1=.5*(LN((1+r1)/(1-r1))). compute zdiff=abs(zr1-zr0). print {r0,r1,zr0,zr1,zdiff} /format="f8.2" /clabels="H0 rho","H1 rho","Zr0","Zr1","Dif. Z" /title="Correlation coefficients under H0 & H1". print {100*alfa,tails,n} /format="f8.0" /clabels="Alpha(%)","Tails","N" /title="Input data". compute power=100*(1-cdfnorm(zalfa-abs(zdiff*sqrt(n-3)))). print power /format="f8.1" /title="Test power (%)". END MATRIX. !ENDDEFINE. DEFINE twocorr(r1=!TOKENS(1)/ r2=!TOKENS(1)/ ratio=!DEFAULT(1)!TOKENS(1)). * This one requires the auxiliary file *. MATRIX. PRINT /TITLE 'SAMPLE SIZE: TWO SAMPLES CORRELATION TEST'. get id /var=id. get alfa /var=alfa. get tails/ var=tails. get power /var=power. get zalfa /var=zalfa. get zbeta /var=zbeta. compute k=!ratio. compute r1=!r1. compute r2=!r2. COMPUTE zr1=.5*(LN((1+r1)/(1-r1))). COMPUTE zr2=.5*(LN((1+r2)/(1-r2))). compute zdiff=abs(zr1-zr2). print {r1,r2,zr1,zr2,zdiff} /format="f8.2" /clabels="Corr 1","Corr 2","Zr1","Zr2","Dif. Z" /title="Minimum significant difference". print k /format="f8.0" /title="Ratio (N2/N1)". compute n=TRUNC(2*((zalfa-zbeta)/zdiff)&**2)+4. COMPUTE n1=n*(k+1)/(2*k). COMPUTE n2=n*(1+k)/2. print {id,100*alfa,tails,100*power,n1,n2,n1+n2} /format="f8.0" /clabels="Id","Alfa(%)","Nє colas","Pot.(%)","N1","N2","N Total" /title="Required sample sizes for the following values of alpha & beta". END MATRIX. !ENDDEFINE. DEFINE twocorrp(r1=!TOKENS(1) /r2=!TOKENS(1) /n1=!TOKENS(1) /n2=!TOKENS(1) /alfa=!DEFAULT(0.05) !TOKENS(1) /tails=!DEFAULT(2) !TOKENS(1)). * Auxiliary file NOT needed *. MATRIX. PRINT /TITLE 'SAMPLE SIZE: POWER FOR A TWO SAMPLES CORRELATION TEST'. compute r1=!r1. compute r2=!r2. compute n1=!n1. compute n2=!n2. compute n=2*n1*n2/(n1+n2). compute alfa=!alfa. compute tails=!tails. compute pval=alfa/tails. do if pval=0.05. compute zalfa=1.645. end if. do if pval=0.025. compute zalfa=1.96. end if. do if pval=0.01. compute zalfa=2.326. end if. do if pval=0.005. compute zalfa=2.576. end if. COMPUTE zr1=.5*(LN((1+r1)/(1-r1))). COMPUTE zr2=.5*(LN((1+r2)/(1-r2))). compute zdiff=abs(zr1-zr2). print {r1,r2,zr1,zr2,zdiff} /format="f8.2" /clabels="Corr 1","Corr 2","Zr1","Zr2","Dif. Z" /title="Correlations compared". print {100*alfa,tails,n1,n2} /format="f8.0" /clabels="Alfa(%)","Tails","N1","N2" /title="Input data". compute power=100*(1-cdfnorm(zalfa-abs(zdiff*sqrt((n-3)/2)))). print power /format="f8.1" /title="Test power (%)". END MATRIX. !ENDDEFINE. * MACRo calls (some examples): ONECORR r1=0.5. ONECORR r0=0.3 r1=0.6. ONECORRP r1=0.5 n=25 alfa=0.05 tails=1. TWOCORR r1=0.3 r2=0.6 ratio=2. TWOCORRP r1=0.3 r2=0.6 n1=110 n2=220. |
Related pages
...
Navigate from here