Размер выборки для проверки гипотез о корреляциях
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 | * ОПРЕДЕЛЕНИЕ РАЗМЕРА ВЫБОРКИ ДЛЯ ПРОВЕРКИ ГИПОТЕЗ О КОЭФФИЦИЕНТАХ КОРРЕЛЯЦИИ *. * Автор: Marta Garcia-Granero, biostatistics@terra.es . * Создадим дополнительный файл с условиями проверки: значениями заданного уровня значимости (альфа) и мощности проверки. * В файле представлено большинство традиционных вариантов задания условий для определения размера выборки (при необходимости вы можете добавить свои): - альфа=5% и 1% (для одно- и двусторонних проверок) - мощность=80%, 90%, 95% и 99%. * При запуске макроса созданный дополнительный файл должен быть активным файлом данных. 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)). * Этот макрос требует наличия дополнительного файла *. MATRIX. PRINT /TITLE 'ОБЪЕМ ВЫБОРКИ: ОДНОВЫБОРОЧНАЯ ПРОВЕРКА ДЛЯ КОЭФФИЦИЕНТА КОРРЕЛЯЦИИ'. 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="Коэффициенты корреляции для гипотез H0 и H1". compute n=TRUNC(((zalfa-zbeta)/zdiff)&**2)+4. print {id,100*alfa,tails,100*power,n} /format="f8.0" /clabels="NN","Альфа(%)","Хвосты","Мощн.(%)","N" /title="Необходимый размер выборки для следующих значений альфа и бета". 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)). * Дополнительный файл НЕ требуется *. MATRIX. PRINT /TITLE 'ОБЪЕМ ВЫБОРКИ: МОЩНОСТЬ ОДНОВЫБОРОЧНОЙ ПРОВЕРКИ ДЛЯ КОЭФФИЦИЕНТОВ КОРРЕЛЯЦИИ'. 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="Коэффициенты корреляции для H0 & H1". print {100*alfa,tails,n} /format="f8.0" /clabels="Альфа(%)","Хвосты","N" /title="Входные данные". compute power=100*(1-cdfnorm(zalfa-abs(zdiff*sqrt(n-3)))). print power /format="f8.1" /title="Мощность проверки (%)". END MATRIX. !ENDDEFINE. DEFINE twocorr(r1=!TOKENS(1)/ r2=!TOKENS(1)/ ratio=!DEFAULT(1)!TOKENS(1)). * Этот макрос требует наличия дополнительного файла *. MATRIX. PRINT /TITLE 'ОБЪЕМ ВЫБОРКИ: ДВУХВЫБОРОЧНАЯ ПРОВЕРКА ДЛЯ КОЭФФИЦИЕНТОВ КОРРЕЛЯЦИИ'. 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="Корр.1","Корр.2","Zr1","Zr2","Dif. Z" /title="Минимальное статистически значимое различие". print k /format="f8.0" /title="Отношение (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="NN","Альфа(%)","Хвосты","Мощн.(%)","N1","N2","N общий" /title="Требуемые размеры выборок для следующих значений альфа и бета". 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)). * Дополнительный файл НЕ требуется *. MATRIX. PRINT /TITLE 'ОБЪЕМ ВЫБОРКИ: МОЩНОСТЬ ДВУХВЫБОРОЧНОЙ ПРОВЕРКИ ДЛЯ КОЭФФИЦИЕНТОВ КОРРЕЛЯЦИИ'. 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="Корр.1","Корр.2","Zr1","Zr2","Разн. Z" /title="Сравниваемые корреляции". print {100*alfa,tails,n1,n2} /format="f8.0" /clabels="Альфа(%)","Хвосты","N1","N2" /title="Входные данные". compute power=100*(1-cdfnorm(zalfa-abs(zdiff*sqrt((n-3)/2)))). print power /format="f8.1" /title="Мощность проверки(%)". END MATRIX. !ENDDEFINE. * ВЫЗОВ макроса (несколько примеров):. 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
...