Finding outliers in multiple dimensions I'm working on a dataset which isn't normally distributed. The dataset contains three dimensions like cost, discount and profit. 

I'm trying to find possible outliers in all these dimensions. I used Z-score to detect outliers in single dimension to find which high cost is causing outliers.

As a next step I tried to find outliers with high cost and high profit and low discount.

I came up with a formula of :

Zscore(cost) + Zscore(profit) - Zscore(discount)


negative sign because I want to find outliers with low discount.

Is this approach meaningful to do? or is there any further proven way to achieve this?
Have you considered using the Mahalanobis Distance? It's can be thought of as the magnitude of a multi-dimensional Z-score.

The way I prefer to view the the Mahalanobis Distance is as the square root of the exponent of the Multivariate Normal Distribution. This is similar to the Z-score, which is the exponent of the univarate normal distribution before the square is applied. A big difference between these two is the Z-score is signed, while the Mahalanobis Distance is unsigned, which doesn't matter for finding outliers anyway. 

I understand you don't have normally distributed data, but sometimes pretending your data is normally distributed can have good results, so using the Mahalanobis Distance can be worth investigating.