*csize.sps ----------------------------------. title "χ2検定 必要サンプル数(効果量w 指定型)". * effect size index . * small w=.10 : medium w=.30: large w=.50 Cohen(1988). preserve. set printback=none. data list free/name(a6) esize alpha powd df. begin data small .10 0.05 .80 3 medium .30 0.05 .80 3 large .50 0.05 .80 3 small .10 0.05 .80 2 medium .30 0.05 .80 2 large .50 0.05 .80 2 small .10 0.05 .80 1 medium .30 0.05 .80 1 large .50 0.05 .80 1 small .10 0.01 .80 1 medium .30 0.01 .80 1 large .50 0.01 .80 1 end data. *initialize values. compute powa=0.0. compute n=0. compute w2=esize**2. compute dfh=df. loop if (powa<=powd). compute n=n +100. compute lambda=w2*n. compute c_alpha=idf.chisq(1-alpha,dfh). compute powa=1-ncdf.chisq(c_alpha,dfh,lambda). end loop. *begin loop for interval halving. compute dir=-1. compute newn=n. compute intv=200. compute powdiff=powa-powd. loop if (powdiff>=.0001). compute intv=intv*.5. compute newn=newn +dir*intv*.5. *compute new power. compute lambda=w2*newn. *compute power . compute c_alpha=idf.chisq(1-alpha,dfh). compute powa=1-ncdf.chisq(c_alpha,dfh,lambda). compute powdiff=abs(powa-powd). do if (powa