Estimating two-component mixture of Weibull distributions? Is there any existing package (preferably in Python or Matlab) to estimate the parameters of a two-component Weibull mixture model? And failing that, I am hoping to get some pointers towards rolling out a fairly simple implementation of my own (perhaps something EM-like, a la mixture of Gaussians?).
Note: I considered using mixtures of Gaussians as an easier alternative, but my data are definitely not Gaussian, and being extremal values are quite well-modeled by Weibull.
 A: I realise I'm 13 months too late in this response, but for anyone else viewing this question, there's now a Python package to do this:
https://reliability.readthedocs.io/en/latest/Mixture%20models.html
A: One link for helping to roll your own implementation that came up quickly on a web search is provided by Razali and Al-Wakeel who use maximum likelihood and provide a formula for the log-likelihoods of Weibull mixtures. Each choice of combinations of Weibull components and numbers of parameters is analyzed separately. At first glance, however, their approach for choosing among those competing models seems like it might be prone to over-fitting as it appears to be based on $R^2$ values in the data set at hand rather than a more generalizable approach like bootstrapping.
The reference manual for the R package mixR outlines a general latent-variable approach to mixture models with an expectation-maximization algorithm, together with bootstrapping to help select a final model. R code is open source if you wish to examine implementation details. It has built-in facilities for mixtures of Weibull, Normal, Gamma, and Lognormal families.
