Login  Register

Re: effect size: eta-squared vs partial eta-squared

Posted by Marta García-Granero on Jul 19, 2006; 6:25pm
URL: http://spssx-discussion.165.s1.nabble.com/effect-size-eta-squared-vs-partial-eta-squared-tp1069749p1069752.html

Hi

DG> Enis, in Keppel and Wickens (2004) the authors make a rather
DG> compelling argument against the R^2 effect size as reported in
DG> SPSS (i.e, SSa/SStotal) as opposed to omega squared, using their
DG> notation on page 164: (SSa - (a -1)MS s/a)/(SStotal + MS
DG> s/a)..they comment that omega squared "takes the sampling
DG> variability into account and so is most relevant to the population
DG> you are studying" (p. 167) and that, in their opinion, r^2 (which
DG> statistically can be shown) tends to inflate the variation
DG> accounted for.....however, SPSS does not report omega squared so
DG> one would need to hand calculate this estimate

DG>   Keppel, G., & Wickens, T. D.  (2004).  Design and analysis.
DG> (4th Ed.).  Upper Saddle River, NJ: Pearson.

My contribution:

* See http://web.uccs.edu/lbecker/SPSS/glm_effectsize.htm *.

* Example dataset *.
DATA LIST FREE/iv(F8.0) dv(F8.1).
BEGIN DATA
1 7.5 1 6.2 1 6.9 1 7.4 1 9.2 1 8.3 1 7.6
2 5.8 2 7.3 2 8.2 2 7.1 2 7.8 2 7.2 2 7.3
3 5.9 3 6.2 3 5.8 3 4.7 3 7.3 3 7.2 3 6.2
4 6.2 4 6.8 4 5.7 4 4.9 4 6.2 4 5.8 4 5.4
END DATA.
VALUE LABEL iv 1'NonSmoker' 2'ExSmoker' 3'Smoke<1' 4'Smoke>1'.
VAR LABEL iv 'Smoking status during pregnancy' dv'Baby weight (pounds)'.

MATRIX.
PRINT /TITLE='OMEGA-SQUARE & ETA-SQUARE IN ONEWAY ANOVA'.
GET data /VAR = iv dv /MISSING = OMIT.
COMPUTE n = CSUM(DESIGN(data(:,1))).
COMPUTE k = NCOL(n).
COMPUTE kn=NROW(data).
COMPUTE gsum = T(data(:,2))*DESIGN(data(:,1)).
COMPUTE gsum2= T(data(:,2)&**2)*DESIGN(data(:,1)).
COMPUTE mean = gsum/n.
COMPUTE variance = (gsum2-(gsum&**2)/n)/(n-1).
COMPUTE Iroof = RSUM(gsum2).
COMPUTE Aroof = RSUM((gsum&**2)/n).
COMPUTE Troof = (RSUM(gsum))&**2/kn.
COMPUTE SSE = Aroof - Troof.
COMPUTE MSE = SSE/(k-1).
COMPUTE SSw = Iroof - Aroof.
COMPUTE MSw = SSw/(kn-k).
COMPUTE SST = Iroof - Troof.
COMPUTE Ftest = MSE/MSw.
COMPUTE Fsig = (1-FCDF(Ftest,k-1,kn-k)).
COMPUTE omega2 = (SSE - (k-1)*MSw)/(SST+MSw).
COMPUTE eta2 = SSE/SST.
COMPUTE meann = k/MSUM(1/n).
COMPUTE fvalue=SQRT(Ftest/meann).
PRINT {T(mean),T(SQRT(variance)),T(n)}
 /FORMAT='F8.2'
 /CLABEL='Mean','SD','N'
 /RLABEL='No fuma','Ex-Fuma','Fuma<1','Fuma>1'
 /TITLE='Descriptive statistics'.
PRINT {Ftest,Fsig}
 /FORMAT='F8.4'
 /CLABEL='F','Sig.'
 /TITLE='ANOVA test'.
PRINT {eta2;omega2;fvalue}
 /FORMAT='F8.3'
 /RLABEL='Eta²','Omega²','f'
 /TITLE='Measures of effect size for ONEWAY ANOVA'.
END MATRIX.

* Using UNIANOVA *.
UNIANOVA
  dv  BY iv
  /PRINT = DESCRIPTIVE ETASQ
  /DESIGN = iv .

* Example dataset *.
DATA LIST LIST/control zone1 zone2 zone3.
BEGIN DATA
15.0 17.9 16.5 16.7
23.5 26.5 35.4 34.1
20.1 45.2 22.6 20.2
26.1 39.1 33.4 30.6
26.5 35.2 37.6 30.1
19.4 35.1 30.4 24.6
16.4 31.8 23.2 20.1
21.1 21.4 20.8 18.4
19.8 33.1 29.4 24.3
17.4 31.1 28.4 29.6
END DATA.

MATRIX.
PRINT /TITLE='OMEGA-SQUARE, ETA-SQUARE & PARTIAL ETA-SQUARE FOR RM ANOVA'.
GET data /VAR=ALL /NAME=gnames.
COMPUTE b = NROW(data).
COMPUTE k = NCOL(data).
COMPUTE Iroof = MSSQ(data).
COMPUTE Aroof = RSUM((CSUM(data))&**2/b).
COMPUTE Broof = CSUM((RSUM(data))&**2/k).
COMPUTE Troof = (MSUM(data)&**2)/(b*k).
COMPUTE SSE = Aroof - Troof.
COMPUTE MSE = SSE/(k-1).
COMPUTE SSB = Broof - Troof.
COMPUTE SST = Iroof - Troof.
COMPUTE SSw = SST - SSE - SSB.
COMPUTE MSw = SSE/((b-1)*(k-1)).
COMPUTE Ftest = MSE/MSw.
COMPUTE Fsig = (1-FCDF(Ftest,k-1,(k-1)*(b-1))).
COMPUTE omega2 = (SSE - (k-1)*MSw)/(SST+MSw).
COMPUTE eta2 = SSE/SST.
COMPUTE pareta2 = SSE/(SSE+SSw).
PRINT {CSUM(data)/b;SQRT((CSSQ(data)-(CSUM(data)&**2/b))/(b-1))}
 /FORMAT='F8.4'
 /CNAMES=gnames
 /RLABEL='Mean','SD'
 /TITLE='Descriptive statistics'.
PRINT {Ftest,Fsig}
 /FORMAT='F8.4'
 /CLABEL='F','Sig.'
 /TITLE='ANOVA for Within Subjects Factor'.
PRINT {omega2;eta2;pareta2}
 /FORMAT='F8.4'
 /RLABEL='Omega²','Eta²','Eta²Part'
 /TITLE='Measures of effect size for Within Subjects Factor'.
END MATRIX.

* Using UNIANOVA *.
VARSTOCASES /ID = id
 /MAKE trans1 FROM control zone1 zone2 zone3
 /INDEX = index1(trans1)
 /KEEP =
 /NULL = KEEP.
UNIANOVA
  trans1  BY index1 id
  /RANDOM = id
  /METHOD = SSTYPE(3)
  /INTERCEPT = EXCLUDE
  /PRINT = ETASQ
  /DESIGN = index1 id .



Closing time here in Spain... See you tomorrow.