Drop a predefined percentage of outliers I have a dataset that follows something between a power and exponential law. I'm not happy with the IQR method of detection of outliers because on small sets of data (<50-100), it does not give you an idea of the percentage of outliers that have been droped.
I thought of an iterative method that would drop on each iteration the most outlying number until the the desired percentage is reached. I could run this method only when the IQR method drops more than the desired percentage.
Does it make sense and is there a standard way of dealing with this problem ?
 A: You should have a look at this answer. The advices therein also apply 
to your problem (detecting outliers in univariate settings when the good 
part of the data is expected to exhibit a skewed distribution).
A: Some thoughts:


*

*
I thought of an iterative method that would drop on each iteration the most outlying number until the the desired percentage is reached

The non-recursive formulation of this is roughly: trim your data to certain quantiles. Whether this is a sensible approach will depend both on your data and the modeling you intend to do.

*If outliers come as a certain percentage of data points, doesn't that suggest that you have two processes that generate fractions of the data?

*Personally, I'm no fan of automated "outlier" removal unless it is a filtering according to knowledge about the data (biological/physical/chemical/... data generating processes) - and in that case one could argue that it should not be called outlier removal but excluding data points generated by process XY.
However, IMHO you can trim your data as you like as long as you treat and report this step as part of your model. For example, for a predictive model that means that "reject" (e.g. NA) is a valid outcome that is produced every so often. Meaning also that you need to report the number (or fraction) of rejected cases during testing of the model.
