Diff for "FAQ/power/rmPowN" - CBU statistics Wiki
location: Diff for "FAQ/power/rmPowN"
Differences between revisions 14 and 15
Revision 14 as of 2006-10-17 15:04:43
Size: 3514
Editor: PeterWatson
Comment:
Revision 15 as of 2006-10-17 15:07:22
Size: 3518
Editor: PeterWatson
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
__SS(effect)   __ __      SS(effect) __
  • alpha is likelihood of making a type I error (usually = 0.05)
  • etasq is partial eta-squared/100 so, for example, 5.9% = 0.059

Partial Eta-squared =

SS(effect)

SS (effect) + SS(its error)

or, in other words, the proportion of variance in outcome predicted by the effect after adjusting for other terms in the anova

  • num(erator) is product over factors comprising term of interest of (numer of levels of factor -1)
  • d1 is sum over the factors of (number of levels of between subject factor - 1)

  • d2 is the product over the factors of (number of levels os within subject factor - 1)

  • power is the power of the test

[ 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 d1 d2 power. 
BEGIN DATA. 
.05 0.02 2 3 2 0.23
.05 0.12 2 3 2 0.93
END DATA.

matrix.
get m /variables=alpha etasq num d1 d2 power  /missing=omit.
compute alpha=make(1,1,0).
compute etasq=make(1,1,0).
compute num=make(1,1,0).
compute d1=make(1,1,0).
compute d2=make(1,1,0).
compute power=make(1,1,0).
compute alpha=m(:,1).
compute etasq=m(:,2).
compute num=m(:,3).
compute d1=m(:,4).
compute d2=m(:,5).
compute power=m(:,6).
end matrix.


define apow   (!pos !tokens(1)
                   / !pos !tokens(1)
                   / !pos !tokens(1)
                   / !pos !tokens(1)
                   / !pos !tokens(1)
                   / !pos !tokens(1)).

COMPUTE #POW = !6.

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)).
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)).
+       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)).
+          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)).
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 d1=!4.
compute d2=!5.
compute power=!6.
compute denom=(ntot-1-d1)*d2.
formats ntot (f7.0) alpha (f5.2) num (f5.2) denom (f5.2) etasq (f5.2) power (f5.2).
variable labels ntot 'Total Sample Size Required' /alpha 'Alpha' /num 'Numerator' /denom 'Denominator' /etasq 'Partial Eta-Sq' /power 'Power'.
report format=list automatic align(center)
  /variables=ntot alpha num denom etasq power 
  /title "Anova term sample size for given power (any anova)" .
!enddefine.
matrix.
get m /variables=alpha etasq num d1 d2 power  /missing=omit.
compute alpha=make(1,1,0).
compute etasq=make(1,1,0).
compute num=make(1,1,0).
compute d1=make(1,1,0).
compute d2=make(1,1,0).
compute power=make(1,1,0).
compute alpha=m(:,1).
compute etasq=m(:,2).
compute num=m(:,3).
compute d1=m(:,4).
compute d2=m(:,5).
compute power=m(:,6).
end matrix.
apow alpha etasq num d1 d2 power.

None: FAQ/power/rmPowN (last edited 2016-01-05 11:49:58 by PeterWatson)