Add Wilcoxon Distribution
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- fsharp
- Domain
- data
Research direction
Start by comparing src/FSharp.Stats/Distributions/Continuous/Normal.fs with other distribution implementations, then read the original publication and the Rwilcox reference. Add Wilcoxon.fs under Distributions/Continuous and unit tests modeled on the exponential distribution tests in tests/FSharp.Stats.Tests/DistributionsContinuous.fs; run ./build runtests to verify the calculations.
Written by the indexing model from the issue text.
Description
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
- Dominant language
- F#
- Stars
- 228
- Forks
- 58
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from fslaborg/FSharp.Stats
-
Documentation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
fslaborg/FSharp.Stats#385 · 1 comment ·
-
agentic-workflows
Difficulty 3/5 1-2 days Newbie friendliness 42/100
fslaborg/FSharp.Stats#394 ·
-
agentic-workflows
Difficulty 3/5 1-2 days Newbie friendliness 35/100
fslaborg/FSharp.Stats#393 ·
-
agentic-workflows
Difficulty 4/5 3-5 days Newbie friendliness 45/100
fslaborg/FSharp.Stats#391 ·
-
automation Documentation repo-assist
Difficulty 4/5 3-5 days Newbie friendliness 20/100
fslaborg/FSharp.Stats#390 ·
All issues in fslaborg/FSharp.Stats
Similar issues
-
blocklist:remove check:passed
Difficulty 2/5 Under an hour Newbie friendliness 66/100
iptv-org/database#36968 · 1 comment ·
Maintainers usually reply within 9 days
-
Add: Prima Comedy SDOpencheck:passed streams:add
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Component: Ruby Type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
area:ingestion bug effort:S level:L3 ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
mczielinski/ob-analytics#354 ·
Maintainers usually reply within 1 day