[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
David Airey <david.airey@Vanderbilt.Edu> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: aligned rank test |

Date |
Thu, 28 Feb 2008 11:39:22 -0600 |

.

I came across aligned rank tests (ART) in Higgins (2003) Introduction to Modern Nonparametric Statistics, Duxbury Press. Higgins gives the data example:

B1 B2 B3

A1 1,2,3 4,5,6 7,8,9

A2 10,11,12 13,14,15 20,21,22

from a 2x3 factorial ANOVA design, where an interaction is present in the raw data. Because ranking is a nonlinear transformation, in these data it removes the significant interaction. Aligned ranking fixes this problem.

Statisticians are still improving on the split plot aligned rank test, judging by publications on this, but for multifactorial designs, there seems to be agreement that using "ART" for nonparametric ANOVAs is an improved approach over ranking.

Richter , Scott J. and Payton, Mark E. (2005)

An improvement to the aligned rank statistic for two-factor analysis of variance

Journal of Applied Statistical Science, 14, 225-235

Keywords: ANOVA; Nonparametric

CISid: 275418

Mansouri, H., Paige, R. L. and Surles, J. G. (2004)

Aligned rank transform techniques for analysis of variance and multiple comparisons

Communications in Statistics: Theory and Methods, 33, 2217-2232

CISid: 246876

Beasley, T. Mark and Zumbo, Bruno D. (2003)

Comparison of aligned Friedman rank and parametric methods for testing interactions in split-plot designs

Computational Statistics & Data Analysis, 42, 569-593

Keywords: Aligned ranks; Repeated measures; interaction tests

CISid: 274211

Some adventurous statisticians also recently proposed a unified approach applicable to unbalanced models in the context of a quantitative trait locus data set (A unified nonparametric approach for unbalanced factorial designs. Gao and Mayer. 2005. Journal of the American Statistical Association).

Thank you very much for this rapidly coded program below. It is so much better than mine which looks strikingly like a blank screen.

-Dave

Publication: Journal of the American Statistical Association

Publication Date: 01-SEP-05

Format: Online - approximately 13155 words

Delivery: Immediate Online Access

Author: Gao, Xin ; Alvo, Mayer

On Feb 28, 2008, at 7:13 AM, Joseph Coveney wrote:

David Airey wrote:

Has anyone programmed the aligned-rank transformation for either

multifactorial or split plot designs? Findit finds nothing.

--------------------------------------------------------------------------------

The aligned-rank transformation seems to work reasonably well, if I got it

right. The complaints that I'm aware of about the Conover-Imam approach

(factorial ANOVA of ranks sans alignment) are that it doesn't control Type I

error rate for tests of the interaction term in the presence of a main

effect, and that it has poor power to detect interaction in the presence of

both main effects.

Below, with a nonnull main effect of one factor, the Type I error rates for

the other factor and the interaction term are 0.054 and 0.056 at the nominal

0.05; the rates run 0.047 to 0.052 under the omnibus null. The power to

detect an interaction is no lower than customary ANOVA in the presence of

both main effects--both 15% in the case below (delta of 1 SD increment each

level of each factor + 1 SD for interaction). The simulation below is of a

two-way factorial ANOVA layout with a normally distributed error in a

balanced dataset. You can modify the called program to see how well things

hold up under other circumstances.

Joseph Coveney

Conover, W. J., Iman, R. L. (1981). Rank transformations as a bridge between

parametric and nonparametric statistics. _The American Statistician_

35:124--129.

Seaman, J. W., Walls, S. C., Wide, S.E. and Jaeger, R.G.(1994) Caveat

emptor: rank transform methods and interactions. _Trends in Ecology and

Evolution_ 9:261--63.

clear *

set more off

set seed `=date("2002-08-28", "YMD")'

*

program define simem, rclass

version 10

syntax [, adelta(real 0) bdelta(real 0) abdelta(real 0) ///

n(integer 24)]

tempname p_A p_B p_AB

tempvar response A B A_removed B_removed AB_removed rank

set obs `n'

generate byte `A' = mod(_n, 2)

sort `A'

generate byte `B' = mod(_n, 3)

generate double `response' = `A' * `adelta' + ///

`B' * `bdelta' + !`A' * !`B' * `abdelta' + ///

invnormal(uniform())

* Alignment (setting up for later ranking and ANOVA)

foreach predictor in A B {

generate double ``predictor'_removed' = .

levelsof ``predictor'', local(predictor_levels)

foreach predictor_level of local predictor_levels {

summarize `response' if ``predictor'' == ///

`predictor_level', meanonly

replace ``predictor'_removed' = `response' - ///

r(mean) if ``predictor'' == `predictor_level'

}

}

generate double `AB_removed' = .

foreach predictor_level of local predictor_levels { // Still B

summarize `A_removed' if `B' == `predictor_level', meanonly

replace `AB_removed' = `A_removed' - ///

r(mean) if `B' == `predictor_level'

}

* Ranking and ANOVA

egen double `rank' = rank(`A_removed')

anova `rank' `A' `B' `A'*`B', sequential

scalar define `p_B' = Ftail(e(df_2), e(df_r), e(F_2))

drop `rank'

egen double `rank' = rank(`B_removed')

anova `rank' `A' `B' `A'*`B', sequential

scalar define `p_A' = Ftail(e(df_1), e(df_r), e(F_1))

drop `rank'

if (`abdelta') { // Customary ANOVA for power comparison

anova `response' `A' `B' `A'*`B'

scalar define `p_AB' = Ftail(e(df_3), e(df_r), e(F_3))

}

else scalar define `p_AB' = .

egen double `rank' = rank(`AB_removed')

anova `rank' `A' `B' `A'*`B'

return scalar p_AB = Ftail(e(df_3), e(df_r), e(F_3))

return scalar p_B = scalar(`p_B')

return scalar p_A = scalar(`p_A')

return scalar p_ABun = scalar(`p_AB')

end

*

* Omnibus H0

*

simulate A = r(p_A) B = r(p_B) AB = r(p_AB), ///

reps(10000) nodots: simem

foreach var of varlist A B AB {

generate byte pos_`var' = `var' < 0.05

}

summarize pos_*

*

* Ha for Factor A

*

drop _all

simulate A = r(p_A) B = r(p_B) AB = r(p_AB), ///

reps(10000) nodots: simem , adelta(1)

foreach var of varlist A B AB {

generate byte pos_`var' = `var' < 0.05

}

summarize pos_*

*

* Power for interaction term when omnibus Ha

*

drop _all

simulate ABrank = r(p_AB) ABun = r(p_ABun), ///

reps(10000) nodots: simem , adelta(1) bdelta(1) ///

abdelta(1)

foreach var of varlist AB* {

generate byte pos_`var' = `var' < 0.05

}

summarize pos_*

exit

*

* For searches and help try:

* http://www.stata.com/support/faqs/res/findit.html

* http://www.stata.com/support/statalist/faq

* http://www.ats.ucla.edu/stat/stata/

-- David C. Airey, Ph.D. Pharmacology Research Assistant Professor Center for Human Genetics Research Member Department of Pharmacology School of Medicine Vanderbilt University Rm 8158A Bldg MR3 465 21st Avenue South Nashville, TN 37232-8548 TEL (615) 936-1510 FAX (615) 936-3747 EMAIL david.airey@vanderbilt.edu URL http://people.vanderbilt.edu/~david.c.airey/dca_cv.pdf URL http://www.vanderbilt.edu/pharmacology * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**Re: st: aligned rank test***From:*"Joseph Coveney" <jcoveney@bigplanet.com>

- Prev by Date:
**st: Count Data again** - Next by Date:
**st: SSC Archive updates** - Previous by thread:
**Re: st: aligned rank test** - Next by thread:
**st: 900 dpi tif** - Index(es):

© Copyright 1996–2017 StataCorp LLC | Terms of use | Privacy | Contact us | What's new | Site index |