Package org.apache.commons.math3.stat.inference

# Class WilcoxonSignedRankTest

java.lang.Object
org.apache.commons.math3.stat.inference.WilcoxonSignedRankTest

public class WilcoxonSignedRankTest extends Object
An implementation of the Wilcoxon signed-rank test.

## Constructor Summary

Constructors
Constructor
Description
`WilcoxonSignedRankTest()`
Create a test instance where NaN's are left in place and ties get the average of applicable ranks.
`WilcoxonSignedRankTest(NaNStrategy nanStrategy, TiesStrategy tiesStrategy)`
Create a test instance using the given strategies for NaN's and ties.

## Method Summary

Modifier and Type
Method
Description
`double`
`wilcoxonSignedRank(double[] x, double[] y)`
Computes the Wilcoxon signed ranked statistic comparing mean for two related samples or repeated measurements on a single sample.
`double`
`wilcoxonSignedRankTest(double[] x, double[] y, boolean exactPValue)`
Returns the observed significance level, or p-value, associated with a Wilcoxon signed ranked statistic comparing mean for two related samples or repeated measurements on a single sample.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### WilcoxonSignedRankTest

public WilcoxonSignedRankTest()
Create a test instance where NaN's are left in place and ties get the average of applicable ranks. Use this unless you are very sure of what you are doing.

### WilcoxonSignedRankTest

public WilcoxonSignedRankTest(NaNStrategy nanStrategy, TiesStrategy tiesStrategy)
Create a test instance using the given strategies for NaN's and ties. Only use this if you are sure of what you are doing.

Parameters:
  `nanStrategy` - specifies the strategy that should be used for Double.NaN's
  `tiesStrategy` - specifies the strategy that should be used for ties

## Method Details

### wilcoxonSignedRank

public double wilcoxonSignedRank(double[] x, double[] y) throws NullArgumentException, NoDataException, DimensionMismatchException
Computes the Wilcoxon signed ranked statistic comparing mean for two related samples or repeated measurements on a single sample.

This statistic can be used to perform a Wilcoxon signed ranked test evaluating the null hypothesis that the two related samples or repeated measurements on a single sample has equal mean.

Let Xi denote the i'th individual of the first sample and Yi the related i'th individual in the second sample. Let Zi = Yi - Xi.

Preconditions:

- The differences Zi must be independent.
- Each Zi comes from a continuous population (they must be identical) and is symmetric about a common median.
- The values that Xi and Yi represent are ordered, so the comparisons greater than, less than, and equal to are meaningful.

Parameters:
  `x` - the first sample
  `y` - the second sample
Returns:
  wilcoxonSignedRank statistic (the larger of W+ and W-)
Throws:
  `NullArgumentException` - if `x` or `y` are `null`.
  `NoDataException` - if `x` or `y` are zero-length.
  `DimensionMismatchException` - if `x` and `y` do not have the same length.

### wilcoxonSignedRankTest

public double wilcoxonSignedRankTest(double[] x, double[] y, boolean exactPValue) throws NullArgumentException, NoDataException, DimensionMismatchException, NumberIsTooLargeException, ConvergenceException, MaxCountExceededException
Returns the observed significance level, or p-value, associated with a Wilcoxon signed ranked statistic comparing mean for two related samples or repeated measurements on a single sample.

Let Xi denote the i'th individual of the first sample and Yi the related i'th individual in the second sample. Let Zi = Yi - Xi.

Preconditions:

- The differences Zi must be independent.
- Each Zi comes from a continuous population (they must be identical) and is symmetric about a common median.
- The values that Xi and Yi represent are ordered, so the comparisons greater than, less than, and equal to are meaningful.

Parameters:
  `x` - the first sample
  `y` - the second sample
  `exactPValue` - if the exact p-value is wanted (only works for x.length invalid input: '<'= 30, if true and x.length > 30, this is ignored because calculations may take too long)
Returns:
  p-value
Throws:
  `NullArgumentException` - if `x` or `y` are `null`.
  `NoDataException` - if `x` or `y` are zero-length.
  `DimensionMismatchException` - if `x` and `y` do not have the same length.
  `NumberIsTooLargeException` - if `exactPValue` is `true` and `x.length` > 30
  `ConvergenceException` - if the p-value can not be computed due to a convergence error
  `MaxCountExceededException` - if the maximum number of iterations is exceeded