Friends, especially those with math and stats background, perhaps you could enlighten. We face the following general problem quite often. Perhaps as a community we should find solution working especially well inside Wolfram ecosystem. Moreover - I think some of you might have such strategies - would be nice to share with community.
FindDistribution
is an excellent automation for search of analytic statistical models fitting data. But it is machine learning based and we cannot control the algorithm there. I wonder if we can build a simple but exhaustive algorithm taking in account all available in Wolfram Language statistical distributions (see related).
For the data consider any that is listed in the APPLICATIONS section of docs on FindDistribution. Or any data you like. I suggest the following idea for a start:
Take all set of analytical distributions in Wolfram Language (suitable to your data - e.g. all continuous or all discrete) -- also related
Use
EstimatedDistribution
orFindDistributionParameters
to fit all of themRun some tests - like
PearsonChiSquareTest
orDistributionFitTest
or anything similar and find top models according to some criteriaIf even top models are still far from a good fit use things like
MixtureDistribution
andTransformedDistribution
etc. to derive better modelsWe could think of a criteria that chooses models of smaller complexity - in terms of fitted parameters number e.g.
This is very blueprint-ish :-) I lack the deeper vision that takes in combination both: stats knowledge and Wolfram ecosystem structure. I hope some of you got the insight.
Feel free to demonstrate any strategy on any simple data I described above. Thsi might give some scope:
http://reference.wolfram.com/language/guide/ProbabilityAndStatistics.html