Portability | portable |
---|---|
Stability | experimental |
Maintainer | bos@serpentine.com |
Safe Haskell | None |
The Wilcoxon matched-pairs signed-rank test is non-parametric test which could be used to whether two related samples have different means.
WARNING: current implementation contain critical bugs https://github.com/bos/statistics/issues/18
- wilcoxonMatchedPairTest :: TestType -> Double -> Sample -> Sample -> Maybe TestResult
- wilcoxonMatchedPairSignedRank :: Sample -> Sample -> (Double, Double)
- wilcoxonMatchedPairSignificant :: TestType -> Int -> Double -> (Double, Double) -> Maybe TestResult
- wilcoxonMatchedPairSignificance :: Int -> Double -> Double
- wilcoxonMatchedPairCriticalValue :: Int -> Double -> Maybe Int
- data TestType
- data TestResult
Wilcoxon signed-rank matched-pair test
:: TestType | Perform one-tailed test. |
-> Double | The p-value at which to test (e.g. 0.05) |
-> Sample | First sample |
-> Sample | Second sample |
-> Maybe TestResult | Return |
The Wilcoxon matched-pairs signed-rank test. The samples are zipped together: if one is longer than the other, both are truncated to the the length of the shorter sample.
For one-tailed test it tests whether first sample is significantly greater than the second. For two-tailed it checks whether they significantly differ
Check wilcoxonMatchedPairSignedRank
and
wilcoxonMatchedPairSignificant
for additional information.
wilcoxonMatchedPairSignedRank :: Sample -> Sample -> (Double, Double)Source
The Wilcoxon matched-pairs signed-rank test.
The value returned is the pair (T+, T-). T+ is the sum of positive ranks (the
ranks of the differences where the first parameter is higher) whereas T- is
the sum of negative ranks (the ranks of the differences where the second parameter is higher).
These values mean little by themselves, and should be combined with the wilcoxonSignificant
function in this module to get a meaningful result.
The samples are zipped together: if one is longer than the other, both are truncated to the the length of the shorter sample.
Note that: wilcoxonMatchedPairSignedRank == ((x, y) -> (y, x)) . flip wilcoxonMatchedPairSignedRank
wilcoxonMatchedPairSignificantSource
:: TestType | Perform one- or two-tailed test (see description below). |
-> Int | The sample size from which the (T+,T-) values were derived. |
-> Double | The p-value at which to test (e.g. 0.05) |
-> (Double, Double) | The (T+, T-) values from |
-> Maybe TestResult | Return |
Tests whether a given result from a Wilcoxon signed-rank matched-pairs test is significant at the given level.
This function can perform a one-tailed or two-tailed test. If the first
parameter to this function is TwoTailed
, the test is performed two-tailed to
check if the two samples differ significantly. If the first parameter is
OneTailed
, the check is performed one-tailed to decide whether the first sample
(i.e. the first sample you passed to wilcoxonMatchedPairSignedRank
) is
greater than the second sample (i.e. the second sample you passed to
wilcoxonMatchedPairSignedRank
). If you wish to perform a one-tailed test
in the opposite direction, you can either pass the parameters in a different
order to wilcoxonMatchedPairSignedRank
, or simply swap the values in the resulting
pair before passing them to this function.
wilcoxonMatchedPairSignificanceSource
:: Int | The sample size |
-> Double | The value of T for which you want the significance. |
-> Double | The significance (p-value). |
Works out the significance level (p-value) of a T value, given a sample size and a T value from the Wilcoxon signed-rank matched-pairs test.
See the notes on wilcoxonCriticalValue
for how this is calculated.
wilcoxonMatchedPairCriticalValueSource
:: Int | The sample size |
-> Double | The p-value (e.g. 0.05) for which you want the critical value. |
-> Maybe Int | The critical value (of T), or Nothing if the sample is too small to make a decision. |
Obtains the critical value of T to compare against, given a sample size and a p-value (significance level). Your T value must be less than or equal to the return of this function in order for the test to work out significant. If there is a Nothing return, the sample size is too small to make a decision.
wilcoxonSignificant
tests the return value of wilcoxonMatchedPairSignedRank
for you, so you should use wilcoxonSignificant
for determining test results.
However, this function is useful, for example, for generating lookup tables
for Wilcoxon signed rank critical values.
The return values of this function are generated using the method detailed in the paper "Critical Values for the Wilcoxon Signed Rank Statistic", Peter Mitic, The Mathematica Journal, volume 6, issue 3, 1996, which can be found here: http://www.mathematica-journal.com/issue/v6i3/article/mitic/contents/63mitic.pdf. According to that paper, the results may differ from other published lookup tables, but (Mitic claims) the values obtained by this function will be the correct ones.
Data types
data TestResult Source
Result of hypothesis testing
Significant | Null hypothesis should be rejected |
NotSignificant | Data is compatible with hypothesis |