I am currently trying to figure out whether my data (consisting of thousands of rows, some is numerical, and some are categorical, and some are ordinal) has multicollinearities or not.

One thing I have noticed is that my data is not normally distributed, based on the Shapiro-Wilk test. As is the case with mostly (if not all) real world data, as answered [here][1] 

But based on several posts, including [this one][2], many suggests the ANOVA (Categorical vs Numerical) or the Chi-Squared (Categorical vs Categorical ) tests to detect whether or not there are multicollinearities, without implying (at least not specifically) to ensure the data has normal distribution. 

My questions are:

 1. Can we actually use these methods parametric methods for non-normally distributed data?
 2. Other than statistical tests, is there a computational model/algorithm to detect multicollinearities in data, parametric or non-parametric? I've [read][3] that decision trees algorithms like Random Forests and XGBoost disregards multicollinearities and can also give feature importance information.


  [1]: https://stats.stackexchange.com/questions/363180/how-often-does-one-see-normally-distributed-data-and-why-use-parametric-tests-i
  [2]: https://datascience.stackexchange.com/questions/893/how-to-get-correlation-between-two-categorical-variable-and-a-categorical-variab/898#898
  [3]: https://datascience.stackexchange.com/questions/12554/does-xgboost-handle-multicollinearity-by-itself