fslaborg / FSharp.Stats

statistical testing, linear algebra, machine learning, fitting and signal processing in F#
https://fslab.org/FSharp.Stats/
Other
205 stars 54 forks source link

Add Wilcoxon Distribution #293

Open bvenn opened 9 months ago

bvenn commented 9 months ago

Description

The signed rank test currently is only an approximation for large values (see https://github.com/fslaborg/FSharp.Stats/pull/182#discussion_r908169551) There is a valid wilcoxon distribution that is quite expensive to calculate. Nevertheless it is required to calculate exact u test results, and should be implemented:

Citation from #213

To perform a valid u test it is required to implement the Wilcoxon distribution. Is should be added as individual source file within Distributions/Continuous. You can copy the Distributions/Continuous/Normal.fs and replace all fields with its corresponding entries for the Wilcoxon distribution.

References

Pointers

Hints (click to expand if you need additional pointers) A final PR should contain the source file as well as unit tests to verify the correct results of the calculations. But even if some functions are missing, you can file a PR and mention what has to be added and where the problems are. For appropriate unit tests you can check out [exponential distribution unit tests](https://github.com/fslaborg/FSharp.Stats/blob/8fb5d6dd07ff213a4e91b618fb2e654bc6147985/tests/FSharp.Stats.Tests/DistributionsContinuous.fs#L1064). - To be able to contribute to this library you'll need - an GitHub account - an IDE like Visual Studio Community or Visual Studio Code - [dotnet 6 sdk](https://dotnet.microsoft.com/en-us/download) - to build the binaries yourself follow the [instructions](https://fslab.org/FSharp.Stats/#Installation) - while working on the [FSharp.Stats documentation](https://fslab.org/FSharp.Stats/) (any file within https://github.com/fslaborg/FSharp.Stats/tree/developer/docs) you can navigate to the project folder with a prompt of your choice and use the command `./build watchdocs` - unit tests can be executed via `./build runtests`
valbers commented 9 months ago

I'll take a stab at that.

valbers commented 9 months ago

Ok. @bvenn , like we discsussed, it seems like this requirement needs some refinement, since this distribution was already there once and got removed ( https://github.com/fslaborg/FSharp.Stats/issues/213 ), so I'm leaving it at it for now.