My data is observational data, and that's made it all kinds of ugly, and I can't decide what statistical test is needed. I have one response variable, which is categorical (Species 1, Species 2, or None). I have about a dozen explanatory variables, which are numeric (canopy cover, soil moisture content, etc.). I want to know which of the explanatory variables have a significant influence on the response variable. I cannot safely assume that these variables are independent, so I won't be using a multinomial logistic regression. I also don't want to use a principal component analysis, because I don't really care how my explanatory variables interact with each other (example, canopy cover might be correlated with soil moisture content; that's no shocker, and not really what I'm looking for; I want to know how those variables affect the presence or absence of the species). The data are not normally distributed, so that's a no on using anything that assumes normal distribution. I measured all these variables at 140 physical locations, but they are in groups of 20 points nearby each other, so I cannot assume the cases are all independent.

I am really struggling to find a statistical test that fits this situation. I'm thinking I could run a Kruskal-Wallis test comparing the response variable to each of the explanatory variables individually. Someone tell me if that's a big mathematical "no-no." Alternatively, I was thinking about running a PCA and only looking at the relationships that I am interested in (for example, if there is a statistical correlation between canopy cover and soil moisture, I don't really care; but if there is a statistical correlation canopy cover and the presence of Species 1, that is what I am looking for). Or is there another statistical analysis that fits better? Just about every test I find, my data violate at least one of the core assumptions.

  • $\begingroup$ Welcome to Cross Validated! What is your objection to multinomial logistic regression? I would consider that the starting point for seeing how various factors influence a categorical outcome. $\endgroup$
    – Dave
    Commented Mar 15, 2023 at 12:49

1 Answer 1


Everyone's data always violates model assumptions! But the model can still be useful.

First, Kruskal-Wallis does not work when the response variable is nominal. Besides, an independent test with each variable will make a stronger assumption of independence than doing a regression.

In general, a regression model will work fine unless the explanatory variables are very highly correlated, and you will be able to tell from the output of the model if this is happening -- the standard errors will be way too big. If you need to convince someone else that this is OK, you can potentially use a diagnostic called the Variance Inflation Factor (VIF). First you run the regression model, then you calculate the VIFs from it and if any of them are really big, it means you have (near-)collinearity.

However, we should note that this isn't a world-ending problem anyways. The predictions made by the model (assuming it is correct and all that other stuff) are still accurate, just not the inference on the coefficients. To borrow an analogy from McElreath's Statistical Rethinking, imagine that the regression model is a robot that does a specific task. The regression robot is very good at fitting the model and figuring out the best linear combination of the variables that predicts the (link-transformed) response. But if the variables are collinear, it is not so good at figuring out which variable is more important, so it will give you some crazy numbers. Then it is up to you as a scientist to determine which variables are most important and how to detangle the effects, the robot can't do any of this part that requires critical thinking and domain knowledge.

Finally, to deal with the clustering. I am no expert on spatial data so I can't say too much about the clusters you have, but you can probably get away with using the cluster-robust sandwich variance estimator, which is very easy to implement in R. I highly recommend this blog post by Andrew Heiss for a thorough treatment of this issue. If you want to account for spatial autocorrelation within clusters, I'll leave that to you, but it can definitely be done in a multiple regression framework.


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.