# Robust distribution fitting?

I'm trying to fit a Johnson Unbounded distribution to a set of financial data with kurtosis and skewness, and also outliers. I started using Maximum Likelihood Estimators (MLE) but one outlier has too much influence on the estimated parameters.

Please can you point me to more robust method to estimate the parameters, one where outliers don't have too much influence.

I found a quantile estimator for the distribution parameters. Is this method more robust than MLE?

• The presence of an outlier that badly affects your estimate suggests that the model may not fit well. Quantile estimation is often less affected by outliers, yes, but it's not always "more robust" than MLE. In some situations it will also depend on the type of robustness you mean. May 13 '13 at 3:50

The Johnson $S_U$ density is:

$$f(x) = \frac{\delta \exp \left(-\frac{1}{2} \left(\gamma +\delta \sinh ^{-1}\left(\frac{x-\xi }{\lambda }\right)\right)^2\right)}{\sqrt{2 \pi } \lambda \sqrt{\frac{(x-\xi )^2}{\lambda ^2}+1}}$$

with domain of support on the real line, and where the parameters ($\gamma$, $\delta$, $\xi$, $\lambda$) are implicitly defined as functions of the first 4 moments of the population. So if you know the first four moments, one can find the exact $S_U$ model to arbitrary precision. More usually, though, we have estimates of the first four moments.

For fitting the Johnson $S_U$ (unbounded) system, I'd recommend the Tuenter (2001) state of the art algorithm:

Tuenter, H. J. H. (2001), An algorithm to determine the parameters of SU-curves in the Johnson system of probability distributions by moment matching, Journal of Statistical Computation and Simulation, 70(4), 325-347.

Here is a quick example to illustrate the idea using mathStatica which implements the Tuenter (2001) algorithm to arbitrary numerical precision ...

## Example

Here is some raw (pseudo-random) data:

dist =  NoncentralStudentTDistribution[12, 7];
data  = RandomReal[dist, 50000];


We shall assume that we do not know the distribution from which this data has been drawn, and see how well we do in fitting it. The sample mean is:

mean = Mean[data]


7.4801

An estimate of the vector ($\mu_2$, $\mu_3$, $\mu_4$) is given by:

muvec = Table[UnbiasedCentralMoment[data, r], {r, 2, 4}]


{4.07636, 9.40789, 100.322}

Step (i): JohnsonPlot[muvec] calculates $\beta_1$ and $\beta_2$ from muvec, and then indicates which Johnson Type is appropriate for this data set by plotting a large black dot at ($\beta_1$, $\beta_2$):

JohnsonPlot[muvec]


Step (ii): The large black dot lies in the Johnson $S_U$ zone. The fitted Johnson $S_U$ density $f(x)$ and its domain of support are then given by:

{f, domain[f]} = JohnsonSU[mean, muvec, x]


Finally, the FrequencyPlot function compares the empirical pdf (blue) of the data with the fitted Johnson $S_U$ pdf $f(x)$ (red dashed) we have just derived:

FrequencyPlot[data, f]


and

Outliers can be a problem with any method, including method of moments estimation and MLE. If you do not know the actual population moments, and you have very large kurtosis, the problem is not really method of moments estimation per se ... but rather that your estimates of the 3rd and 4th central moments can be unreliable ... the software will actually warn you ... and perhaps an appropriate course of action is to consider removing one or two large outliers from your data and trying again, and perhaps trying multiple different methods including MLE. Which leaves the questions in reply:

• How large is the kurtosis for your data?
• Do you know the first 4 raw moments for your data set?
• And how large is your data set?
• Thank you wolfies for this great answer. However, do you know more robust curve fitting method? I haven't tried Tuenter's method, but seems to me that a moment-matching method is less robust than a percentile estimation method, due to the unreliability of the estimation of the moments. May 16 '13 at 20:00