FSharp.Stats
FSharp.Stats copied to clipboard
Add Wilcoxon Distribution
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
- [1] Rwilcox
- [2] R vigenette
- [3] analytica wilcox
- [4] original publication
Pointers
- suggested workflow:
- check out other distribution implementations and the original publication
- copy a existing source file (e.g. Normal.fs), rename it to Wilcoxon.fs and replace all members.
- this may be harder as you would imagine, but even if not all members are implemented, it would help us bringing FSharp.Stats a step further
- optional: add unit tests
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.
- 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
- to build the binaries yourself follow the instructions
- while working on the FSharp.Stats documentation (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
I'll take a stab at that.
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.