__Spreadsheet and SPSS macro inputs__ * alpha is the likelihood of making a type I error (usually = 0.05) * etasq is partial $$\eta^text{2}$$/100 so, for example, 5.9% = 0.059 Partial $$\eta^text{2}$$ = $$ \frac{\mbox{SS(effect)}}{\mbox{SS(effect) + SS(its error)}}$$ where SS is the sum of squares associated with a particular term in the anova. In other words, partial $$\eta^text(2)$$ represents the proportion of variance in outcome predicted by the effect after adjusting for other terms in the anova. Click [[attachment:etasqrp.pdf|here]] for further details on partial $$\eta^text{2}$$ and [[attachment:etasq.pdf|here.]] If SS are not available you can [[FAQ/power/rsqform| construct eta-squared]]. * correlation = average correlation between repeated measures levels * num(erator) = df of term of interest = the product of the (number of levels of each factor -1) in term of interest * sum (B-1) = sum of dfs involving '''only''' between subject factors in anova or zero otherwise. df = Product of number of levels minus 1 of each between subject factor in term of interest. e.g. For a three way interaction involving three between subject factors, abc, we sum the dfs of the six lower order combinations: ab, ac and bc, a, b and c to that of abc. * Prod (W-1) = df of within subject effect if in term of interest or 1 otherwise. df = Product of number of levels minus 1 of each within subject factor in term of interest * Prod W = product of all within subject levels or one if there are none. * power is the power of the test [[FAQ/power/powexample| Example input]] Computation may be performed using an EXCEL [[attachment:anovan2.xls|spreadsheet]] or the below SPSS syntax. Power analysis software using Winer (1991, pp 136-138) for balanced anovas may be downloaded from [[http://www.soton.ac.uk/~cpd/anovas/datasets/|here]] with details of how to compute inputs [[FAQ/Doncaster| here.]] [ COPY AND PASTE THE BOXED BELOW SYNTAX BELOW INTO A SPSS SYNTAX WINDOW AND RUN; ADJUST INPUT DATA AS REQUIRED] {{{ DATA LIST free /alpha etasq num bsum wdf corr power. BEGIN DATA. .05 0.059 2 1 2 0.3 0.85 .05 0.059 2 1 2 0.0 0.85 END DATA. matrix. get m /variables=alpha etasq num bsum wdf corr power /missing=omit. compute alpha=make(1,1,0). compute etasq=make(1,1,0). compute num=make(1,1,0). compute bsum=make(1,1,0). compute wdf=make(1,1,0). compute corr=make(1,1,0). compute power=make(1,1,0). compute alpha=m(:,1). compute etasq=m(:,2). compute num=m(:,3). compute bsum=m(:,4). compute wdf=m(:,5). compute corr=m(:,6). compute power=m(:,7). end matrix. define apow (!pos !tokens(1) / !pos !tokens(1) / !pos !tokens(1) / !pos !tokens(1) / !pos !tokens(1) / !pos !tokens(1) / !pos !tokens(1)). COMPUTE #POW = !7. compute #conf = (1-!1). compute #lc3 = 1. compute #ind=0. compute ntot = 700.000. comment COMPUTE #LC1 = 2.000. compute denom=(ntot-1-!4)*!5. COMPUTE #CUMF2 = 1 - NCDF.F(IDF.F(#conf,!3,denom),!3,denom,(denom*(!2/(1-!2)))/(1-!6)). COMPUTE #DIFF=1. SET MXLOOPS=10000. LOOP IF (#DIFF GT .00005) . + DO IF (#CUMF2 GT #pow) . + COMPUTE #LC3 = ntot. + COMPUTE ntot = (Ntot - rnd(1)). + COMPUTE denom=(ntot-1-!4)*!5. + COMPUTE #CUMF2 = 1 - NCDF.F(IDF.F(#conf,!3,denom),!3,denom,(denom*(!2/(1-!2)))/(1-!6)). + ELSE . + COMPUTE #LC1 = ntot. + COMPUTE ntot = (ntot + #LC3)/2. + COMPUTE denom=(ntot-1-!4)*!5. + COMPUTE #CUMF2 = 1 - NCDF.F(IDF.F(#conf,!3,denom),!3,denom,(denom*(!2/(1-!2)))/(1-!6)). + END IF. + COMPUTE #DIFF = ABS(#CUMF2 - #pow) . END LOOP . compute pow2 = 1 - NCDF.F(IDF.F(#conf,!3,denom),!3,denom,(denom*(!2/(1-!2)))/(1-!6)). if (ntot-trunc(ntot) gt 0.5) #ind=1. if (#ind eq 0) ntot=trunc(ntot)+1. if (#ind eq 1) ntot=rnd(ntot). EXECUTE . compute alpha=!1. compute etasq=!2. compute num=!3. compute bsum=!4. compute wdf=!5. compute corr=!6. compute power=!7. compute denom=(ntot-1-bsum)*wdf. formats ntot (f7.0) alpha (f5.2) num (f5.2) denom (f5.2) etasq (f5.2) corr (f5.2) power (f5.2). variable labels ntot 'Total Sample Size Required' /alpha 'Alpha' /num 'Numerator' /denom 'Denominator' /etasq 'Partial Eta-Sq' /corr 'Correlation' /power 'Power'. report format=list automatic align(center) /variables=ntot alpha num denom etasq corr power /title "Anova term sample size for given power (any anova)" . !enddefine. matrix. get m /variables=alpha etasq num bsum wdf corr power /missing=omit. compute alpha=make(1,1,0). compute etasq=make(1,1,0). compute num=make(1,1,0). compute bsum=make(1,1,0). compute wdf=make(1,1,0). compute corr=make(1,1,0). compute power=make(1,1,0). compute alpha=m(:,1). compute etasq=m(:,2). compute num=m(:,3). compute bsum=m(:,4). compute wdf=m(:,5). compute corr=m(:,6). compute power=m(:,7). end matrix. apow alpha etasq num bsum wdf corr power. }}} __Reference__ Doncaster CP and Davey AJH (2007) Analysis of covariance. How to choose and construct models for the life sciences. CUP:Cambridge. Winer BJ, Brown DR and Michels KM (1991) Statistical principles in experimental design, 3rd edition. McGraw-Hill:New York.