BOUNTY GOAL
To get bounty I am asking to build a function that serves as an analog of FindDistribution
. You can also simply re-implement FindDistribution
if you know how it works. Your solution can work in same or different ways, have same or different syntax and options, but it needs to give a similar output: best fitted distributions to a data, desirably ranked by fitness. Minimal working function demoed on ay data example is acceptable, even in a quite raw state.
ORIGINAL POST
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 sophisticated large machine learning implementation and we cannot control the algorithm there unless we explicitly rewrite or reinvent it. I wonder if we can build a simple but exhaustive algorithm taking in account all available in Wolfram Language statistical distributions (see related) that acts similar to FindDistribution
.
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 very simple 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 models. See Derived Statistical DistributionsWe could also think of additional criteria that chooses models of smaller complexity - in terms of e.g. number of fitted parameters.
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:
FindDistribution
is excellent in terms of automation, it doesn't challenge the user with respect to how the data was collected or to the objective of obtaining the distribution. That information is not an intrinsic property of the data values. Such a question might be better asked at CrossValidated (stats.stackexchange.com). $\endgroup$