# General approach for non-parametric two-way ANOVA

Apologies for the almost text-book like question.

I have a 2x2 design with fixed categories and a continuous response variable.

If the variances are equal between groups (Bartlett test) and residuals are normally distributed (Shapiro test), ok I can do standard ANOVA.

Otherwise:

1. Try transforming the data (e.g: arcsin(sqrt), or log(), or even rank()). If transformed data is homoscedastic & normal residues, do normal ANOVA.

2. One option: Kruskal test (tells you whether any means differ between groups) followed by many pairs of wilcox tests (to identify which means differ). If all are significant, all factors (and interactions are significant).

3. Another option: Use the bootstrap approach (permuting residuals) outlined here: Is there an equivalent to Kruskal Wallis one-way test for a two-way model?

Is this correct?

The proportional odds ordinal logistic model is a generalization of the Wilcoxon and Kruskal-Wallis tests that extend to multiple covariates, interactions, etc. It is a semiparametric method that only uses the ranks of Y. It handles continuous Y, creating k-1 intercepts where k is the number of unique Y values.

• +1, A question, though: If Y were initially continuous (just quite badly behaved), and you converted them to ordinal categories via a rank transform, you could end up with a large number of categories--easily N. My intuition is troubled by this. Would ordinal log reg be reliable in such a situation? Typically, we think of ord reg with situations with a small number of categories (e.g., in surveys, 4) with many observations per category. Dec 9, 2011 at 3:41
• Having almost as many intercepts as N is only a computational problem. JMP software even uses a shortcut so that computational time is trivial for this case - someday I'll implement that in the rms package's lrm function in R. These intercepts don't have any other costs because they are forced to be in order and don't spend any degrees of freedom. Think of this like Cox proportional hazards regression for continuous survival time. If you run into computer time problems you can group Y into 101 percentile groups. Note that the prop. odds model elegantly handles excessive ties in Y. Dec 9, 2011 at 12:13

This sounds good to me. There are some issues to consider though:

1. In option 2, you need to make sure to correct the p-values in your wilcox tests for multiple hypothesis testing. The pairwise.wilcox.test function in R will do this for you.

2. In my experience, even though the bootstrap approach is very nice here, if other people in your field (e.g. paper reviewers) are unfamiliar with it you can draw a lot of criticism.

It really depends on what is normal in your field, and what the purpose of the analysis is. If this work is for a paper, and practitioners in your field have a recipe for data analysis which does not match this one, it might be easier to justify using that approach (even if it's wrong). For example, in some fields the 'correct' procedure is just "Use ANOVA". No extra tests are performed, and the results are accepted as valid. ANOVA is reasonably robust to the violation of normality too, so in practice this approach (although overly simplistic) works out okay.

• Thanks - good points. I didn't know about pairwise.wilcox.test! Dec 11, 2011 at 23:44