other names for "Dunn's Method for pairwise comparisons"?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

other names for "Dunn's Method for pairwise comparisons"?

sonja-4
hi everyone,

not having been into statistics too much, i'm now getting in touch,
doing my doctoral thesis.

by chance, i can partly rely on someone having worked with the same
experimental setting; thus, at the hour of doing statistics, i
re-read the part of their paper referring to statistical analysis.

i'm now wondering which procedure might be paraphrased by "Dunn's
Method for Pairwise Comparisons", which had been applied by my
idols for post-hoc testing after significant Friedman's results, -
and which i haven't been able to discover neither in
SIEGEL/CASTELLAN (e.g) nor in SPSS help.

according to the list's archives, this is how far i've got in
figuring out the meaning of "Dunn's":

     Dunn's test   =    Bonferroni t (in SPSS)
     (020249 00/10/25     10:33 42 Re: Dunn's Test)

is this right?
i'd heavily appreciate being able to perform the test using SPSS.

(and by the way - are there even more known synonymous expressions
for that same test? or is Dunn-Sidak, e.g., definitely something different?)

thanks in advance.
sonja.
Reply | Threaded
Open this post in threaded view
|

Re: other names for "Dunn's Method for pairwise comparisons"?

Marta García-Granero
Hi Sonja

s> i'm now wondering which procedure might be paraphrased by "Dunn's
s> Method for Pairwise Comparisons", which had been applied by my
s> idols for post-hoc testing after significant Friedman's results, -
s> and which i haven't been able to discover neither in
s> SIEGEL/CASTELLAN (e.g) nor in SPSS help.

s> according to the list's archives, this is how far i've got in
s> figuring out the meaning of "Dunn's":

s>      Dunn's test   =    Bonferroni t (in SPSS)
s>      (020249 00/10/25     10:33 42 Re: Dunn's Test)

s> is this right?

NO

s> (and by the way - are there even more known synonymous expressions
s> for that same test? or is Dunn-Sidak, e.g., definitely something
s> different?)

See below.

Answer:

In the experimental situation you are describing, Dunn's method refers
to this procedure:

- Friedman's mean ranks are used to construct Z statistics (see ref.
  below)
- Z p-values are then adjusted with Bonferroni or Sidak method (this
  last is called the Dunn-Sidak method, answering your question above).

See if the following syntax helps you:

* See HANDBOOK OF PARAMETRIC AND NONPARAMETRIC STATISTICAL PROCEDURES
  Test 25 (David J Sheskin, 2000; Chapman & Hall) *.

****************************************************************
* Friedman test & Multiple Comparisons for large samples       *
* Tukey-Kramer & SNK methods available for up to 20 groups,    *
* Dunnett test for 12 groups (1 control & 11 treatment groups) *
* Critical values for Dunnett test obtained from: Dunnett, CW  *
* (1964) "New tables for multiple comparisons with a control"  *
* Biometrics 20, 482-91                                        *
* Critical Values of the Studentized Range Statistic obtained  *
* from http://cse.niaes.affrc.go.jp/miwa/probcalc/             *
****************************************************************
* (C) Marta García-Granero ([hidden email]) 04/14/2006 *
****************************************************************

* Comments:

Since Friedman test is an extension to more than 2 samples of the sign test
(not Wilcoxon test), symmetry is NOT a condition. Asymptotic significance will
be OK if number of data (k·b) is at least 25. If sample size is low, then exact
significance must be used (with SPSS, EXACT TESTS module must be installed, PQRS.exe,
a freeware utility, can be used instead). The equivalent of the Wilcoxon signed ranks
test for 3 or more groups is Quade test. There is another test (Page) adequate for
ordered categories (you can use WinPepi freeware package for it).

* Sample dataset: "Effectiveness of terbutaline and theophylline alone and
  in combination in exercise-induced bronchospasm" GG Shapiro, JJ McPhillips,
  K Smith, CT Furukawa, WE Pierson and CW Bierman (1981) Pediatrics 67: 508-513 *.
DATA LIST LIST/placebo terbut teofil terteo(4 F8.1).
BEGIN DATA
3.18 3.27 3.34 3.87
0.80 2.73 2.18 2.28
2.13 2.12 2.13 2.26
1.35 1.92 2.28 2.72
2.10 2.06 2.53 2.73
1.30 2.45 2.35 4.41
3.30 3.10 3.07 3.86
2.93 2.49 2.93 3.25
3.50 3.03 3.32 2.78
0.55 2.26 1.96 2.08
0.33 0.37 1.12 1.05
1.55 2.48 2.23 2.38
2.10 2.12 2.31 2.46
3.49 3.63 3.70 3.63
0.70 0.83 1.57 1.27
2.20 3.06 2.92 2.95
1.35 2.32 2.12 2.65
1.73 2.74 2.68 2.92
4.68 4.54 4.63 4.81
0.83 1.16 2.04 2.70
0.43 0.93 2.70 3.16
END DATA.
VAR LABEL placebo 'FEV(lt) after Placebo'.
VAR LABEL terbut  'FEV(lt) after Terbutaline'.
VAR LABEL teofil  'FEV(lt) after Theophylline'.
VAR LABEL terteo  'FEV(lt) after Terbutaline+Theophylline'.

MATRIX.
PRINT /TITLE='FRIEDMAN TEST & MULTIPLE COMPARISON METHODS'.
PRINT /TITLE='(All corrected for ties)'.
* Input original data (use "placebo TO terteo" instead of "ALL" if more
  variables exist in dataset) *.
GET rawdata /VAR=ALL /NAME=gnames /MISSING=OMIT.
* Rank data by blocks *.
COMPUTE b=NROW(rawdata).
COMPUTE k=NCOL(rawdata).
COMPUTE rdata=MAKE(b,k,0).
PRINT {k-1,b}
 /FORMAT='F8.0'
 /CLABELS='DF','N'
 /TITLE='Degrees of Freedom & Sample size'.
LOOP i=1 TO b.
- COMPUTE rdata(i,:)=RNKORDER(rawdata(i,:)).
END LOOP.
RELEASE rawdata. /* Get rid of original data *.
* Check for data adequacy *.
DO IF k*b LT 25.
- PRINT /TITLE='Warning: Low sample size for any asymptotic testing. Use exact tests'.
ELSE.
- PRINT /TITLE='Sample size is enough for asymptotic testing.'.
END IF.
* Friedman test *.
COMPUTE ranks=CSUM(rdata).
COMPUTE VarRi = (MSSQ(rdata)-(MSUM(rdata))&**2/(b*k))/(b*(k-1)).
COMPUTE totalchi=(MSSQ(ranks)/b-(MSUM(rdata))&**2/(b*k))/VarRi.
COMPUTE tchisig=1-CHICDF(totalchi,k-1).
PRINT {totalchi,tchisig}
 /FORMAT='F8.4'
 /CLABELS='Chi^2','Sig.'
 /TITLE='Friedman test (asymptotic)'.
* Dunnett test (assuming always first group is reference group)
  Can be easily to modified to set last group as reference:
  inside next loop, replace "1" by "k" and "i+1" by "i" at right side
  of COMPUTE statements (DON'T change the "i" at the left side), then
  change the TITLE of the PRINT statement *.
COMPUTE se_rankd=SQRT(VarRi*2*b).
COMPUTE drankd=MAKE(k-1,1,0).
COMPUTE compard=MAKE(k-1,3,' ').
LOOP i=1 TO k-1. /* This is the loop to modify if first group is reference *.
- COMPUTE drankd(i)=ABS(ranks(1)-ranks(i+1)).
- COMPUTE compard(i,:)={gnames(1),'  vs    ',gnames(i+1)}.
END LOOP.
COMPUTE dunnett={1.96,2.21,2.35,2.41,2.51,2.57,2.65,2.72,2.77,2.83,2.91;
                 2.58,2.79,2.92,3.00,3.06,3.11,3.19,3.25,3.29,3.35,3.42}.
COMPUTE dunnett5=dunnett(1,k-1)*se_rankd.
COMPUTE dunnett1=dunnett(2,k-1)*se_rankd.
COMPUTE sigd=MAKE(k-1,1,' ').
LOOP i=1 TO k-1.
- DO IF drankd(i) GE dunnett1.
-  COMPUTE sigd(i)='   <0.01'.
- ELSE IF drankd(i) GE dunnett5.
-  COMPUTE sigd(i)='   <0.05'.
- ELSE.
-  COMPUTE sigd(i)='      NS'.
- END IF.
END LOOP.
* Change TITLE in PRINT command if last group is reference *.
PRINT {compard,sigd}
 /FORMAT='A8'
 /TITLE='Comparisons (adjusted): Dunnett method (first group is reference)'.
RELEASE se_rankd,drankd,compard,dunnett,dunnett5,dunnett1,sigd.
* For all next methods, sum of ranks are sorted (with their names)
  in ascending order (sorting algorithm by Ristow&Peck) *.
COMPUTE sranks=ranks.
COMPUTE sranks(GRADE(ranks))=ranks.
COMPUTE snames=gnames. /* Sort also group names *.
COMPUTE snames(GRADE(ranks))=gnames.
PRINT {sranks/b}
 /FORMAT='F8.2'
 /CNAME=snames
 /TITLE='Sorted Mean Ranks (in ascending order)'.
RELEASE rdata,gnames. /* Get rid of unsorted data *.
* Common data *.
COMPUTE se_rank=SQRT(VarRi*2*b).
COMPUTE drank=MAKE(k*(k-1)/2,1,0).
COMPUTE compar=MAKE(k*(k-1)/2,3,' ').
COMPUTE sig=MAKE(k*(k-1)/2,1,' ').
COMPUTE count=0.
LOOP i=1 TO k-1.  /* Label all pairwise comparisons   *.
- LOOP j=i+1 TO k./* and compute the rank differences *.
-  COMPUTE count=count+1.
-  COMPUTE drank(count)=ABS(sranks(i)-sranks(j)).
-  COMPUTE compar(count,:)={snames(i),'  vs    ',snames(j)}.
- END LOOP.
END LOOP.
* LSD test *.
COMPUTE pvalue=2*(1-CDFNORM(drank/se_rank)).
LOOP i=1 TO count.
- DO IF pvalue(i) LE 0.01 .
-  COMPUTE sig(i)='   <0.01'.
- ELSE IF pvalue(i) LE 0.05.
-  COMPUTE sig(i)='   <0.05'.
- ELSE.
-  COMPUTE sig(i)='      NS'.
- END IF.
END LOOP.
PRINT {compar,sig}
 /FORMAT='A8'
 /TITLE='Comparisons (unadjusted): LSD test'.
* Dunn-Sidak test *.
COMPUTE apvalue=1-(1-pvalue)&**count.
LOOP i=1 TO count.
- DO IF apvalue(i) LE 0.01.
-  COMPUTE sig(i)='   <0.01'.
- ELSE IF apvalue(i) LE 0.05.
-  COMPUTE sig(i)='   <0.05'.
- ELSE.
-  COMPUTE sig(i)='      NS'.
- END IF.
END LOOP.
PRINT {compar,sig}
 /FORMAT='A8'
 /TITLE='Comparisons (adjusted): Dunn-Sidak test'.
COMPUTE studrang={2.772,3.314,3.633,3.858,4.030,4.170,4.286,4.387,4.474,
                  4.552,4.622,4.685,4.743,4.796,4.845,4.891,4.934,4.974,5.012;
                  3.643,4.120,4.403,4.603,4.757,4.882,4.987,5.078,5.157,
                  5.227,5.290,5.348,5.400,5.448,5.493,5.535,5.574,5.611,5.645}.
* Tukey-Kramer test *.
COMPUTE ctukey5=studrang(1,k-1)*se_rank/SQRT(2).
COMPUTE ctukey1=studrang(2,k-1)*se_rank/SQRT(2).
LOOP i=1 TO count.
- DO IF drank(i) GE ctukey1.
-  COMPUTE sig(i)='   <0.01'.
- ELSE IF drank(i) GE ctukey5.
-  COMPUTE sig(i)='   <0.05'.
- ELSE.
-  COMPUTE sig(i)='      NS'.
- END IF.
END LOOP.
PRINT {compar,sig}
 /FORMAT='A8'
 /TITLE='Comparisons (adjusted): Tukey-Kramer method'.
* S-N-K method (step-down, more sensitive) *.
COMPUTE snk5=MAKE(k-1,1,0).
COMPUTE snk1=MAKE(k-1,1,0).
LOOP i=1 TO k-1.
- COMPUTE snk5(i)=studrang(1,k-i)*se_rank/SQRT(2).
- COMPUTE snk1(i)=studrang(2,k-i)*se_rank/SQRT(2).
END LOOP.
COMPUTE step=MAKE(k*(k-1)/2,1,0).
COMPUTE count=0.
LOOP i=1 TO k.
- LOOP j=i+1 TO k.
-  COMPUTE count=count+1.
-  COMPUTE step(count)=k+i-j.
- END LOOP.
END LOOP.
LOOP i=1 TO count.
- DO IF drank(i) GE snk1(step(i)).
-  COMPUTE sig(i)='   <0.01'.
- ELSE IF drank(i) GE snk5(step(i)).
-  COMPUTE sig(i)='   <0.05'.
- ELSE.
-  COMPUTE sig(i)='      NS'.
- END IF.
END LOOP.
PRINT {compar,sig}
 /FORMAT='A8'
 /TITLE='Comparisons (adjusted): Step-down SNK method'.
END MATRIX.


--
Regards,
Dr. Marta García-Granero,PhD           mailto:[hidden email]
Statistician

---
"It is unwise to use a statistical procedure whose use one does
not understand. SPSS syntax guide cannot supply this knowledge, and it
is certainly no substitute for the basic understanding of statistics
and statistical thinking that is essential for the wise choice of
methods and the correct interpretation of their results".

(Adapted from WinPepi manual - I'm sure Joe Abrahmson will not mind)