[R] Non-parametric test to multi factorial ANOVA


I've spent hours searching online (by "non parametric factorial ANOVA"), reading in books (Zar's "Biostatistical analysis") and manuals (R), but I can't find any clear solution, so I'll bite the bullet and I whine to you.

First, sorry for my English and my lack of Statistical knowledge.



View attachment 5110

Dependent variable: Ci
Independent variables (nominal): Sex, Age or Mature and Location.


Find if the dependent variable follows/is affected significatively by any independent variable of interactions of the latter. I assumed I needed a multi-factorial ANOVA.


Dependent variable doesn't follow a normal distribution (neither its residuals after fitting it to an ANOVA).

I tried using Friedman, but I'm not sure if it's only for the two-ways ANOVA. In any case, I believe I can't analyze the possible interactions, so I'm not sure if it would be right choice.


Any non-parametric alternative to multi-factorial ANOVA?

If I'd need to transform the data, what transformation should I apply?

How can I deal with uncompleted design where I don't have data for every block?

Thanks, I'd really appreciate your help.

Note: I'm using R.


Super Moderator
Why do you think it needs to be non-parametric? Have you done an initial ANOVA perhaps and gone through model validation techniques?
I did an ANOVA:

saccharo <- read.csv ("saccharo.csv.txt")
saccharo.aov <- (aov(glm(Ci ~ Sex*Age*Mature*Location, data=saccharo)))
shapiro.test (saccharo.aov$residuals)
Shapiro-Wilk normality test

data: saccharo.aov$residuals
W = 0.5304, p-value = 6.06e-07

Maybe I'm wrong, but it indicates the residuals are not normally distributed, right?

Any tip in model validation techniques?

Well, I'm not sure if it's right or not, but I've log-transformed the dependent variable:

saccharo$Ci <- log (saccharo$Ci)
Remove the Inf:

NA <- saccharo [16,11]
and run an ANOVA:

saccharo.aov <- aov (glm (Ci.log ~ Sex * Location * Age, data= saccharo)
None of the independent variables or interactions are significantly affecting the dependent variable, but the residuals are normally distributed:

shapiro.test (saccharo.aov$residuals)
Any tip?