FSharp.Stats icon indicating copy to clipboard operation
FSharp.Stats copied to clipboard

Add Wilcoxon Distribution

Open bvenn opened this issue 2 years ago • 2 comments

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

  • 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

bvenn avatar Sep 20 '23 18:09 bvenn

I'll take a stab at that.

valbers avatar Sep 30 '23 14:09 valbers

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.

valbers avatar Sep 30 '23 14:09 valbers