I measured two variables (outcomes) $Y_a$ and $Y_b$ for several subjects. $Y_a$ and $Y_b$ are continuous variables defined on $[0,100]$ and have a bimodal distribution. I tried using a transformation but came up with nothing worthy. I have two independent variables $X_1$ (factor with 2 levels) and $X_2$ (factor with 3 levels) characterizing each subject. I would like to investigate if $X_1$ and $X_2$ influence $Y_a$ or $Y_b$. In normally distributed outcomes I would have used lm(Ya ~ X1 + X2). What is the non-parametric equivalent test? Is it the Kruskal-Wallis? Do I have to recode $X_a$ and $X_b$ in one variable?


2 Answers 2


Linear models do not make assumptions about the distribution of the dependent variable, they make assumptions about the distribution of the error, as measured by the residuals. That said, if the Y variables are bimodal, you may want to think about quantile regression. I wrote about how to do this in SAS but that paper also shows some basic points not specific to SAS. Since evidently you use R you can look into the quantreg package.

I suggest quantile regression because, if Y is bimodal, it seems likely to me that different things may be related to changes in Y at or near the different modes.

I am not sure what your last sentence refers to.


@Peter Flom's point on precisely what is assumed is crucial.

In addition, much depends on the nature of the bimodality and how marked it is. You don't say what transformations you tried, but the most usual transformations such as logarithm or square root are indeed unlikely to help here. However, If the modes are near 0 and near 100 so that your distribution is approximately U-shaped, then a logit transformation should help, once you divide by 100, or equivalently generalise the transformation to match the bounds.

For example, a logit transformation always removes bimodality from a beta distribution.

However, you may have exact zeros or exact unities, and for that reason and on other grounds, a generalized linear model with logit link is the better way to go. See also http://www.stata-journal.com/sjpdf.html?articlenum=st0147 That paper is geared to Stata implementation, but the principles are as usual more general.

Note that the Kruskal-Wallis test's way of coping with bimodality is to ignore it. Only in that sense is it a solution. Furthermore, it cannot handle two predictors or interaction. Recoding two predictors to a composite predictor, which seems to be what you are asking about, again solves that problem only by ignoring it.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.