org.hipparchus.stat.inference

## Class WilcoxonSignedRankTest

• public class WilcoxonSignedRankTest
extends Object
An implementation of the Wilcoxon signed-rank test. This implementation currently handles only paired (equal length) samples and discards tied pairs from the analysis. The latter behavior differs from the R implementation of wilcox.test and corresponds to the "wilcox" zero_method configurable in scipy.stats.wilcoxon.
• ### Constructor Summary

Constructors
Constructor and 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

All Methods
Modifier and Type Method and Description
double wilcoxonSignedRank(double[] x, double[] y)
Computes the Wilcoxon signed ranked statistic comparing means 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 Detail

• #### WilcoxonSignedRankTest

public WilcoxonSignedRankTest()
Create a test instance where NaN's are left in place and ties get the average of applicable ranks.
• #### WilcoxonSignedRankTest

public WilcoxonSignedRankTest(NaNStrategy nanStrategy,
TiesStrategy tiesStrategy)
Create a test instance using the given strategies for NaN's and ties.
Parameters:
nanStrategy - specifies the strategy that should be used for Double.NaN's
tiesStrategy - specifies the strategy that should be used for ties
• ### Method Detail

• #### wilcoxonSignedRank

public double wilcoxonSignedRank(double[] x,
double[] y)
throws MathIllegalArgumentException,
NullArgumentException
Computes the Wilcoxon signed ranked statistic comparing means 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 have 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.
MathIllegalArgumentException - if x or y are zero-length.
MathIllegalArgumentException - if x and y do not have the same length.
• #### wilcoxonSignedRankTest

public double wilcoxonSignedRankTest(double[] x,
double[] y,
boolean exactPValue)
throws MathIllegalArgumentException,
NullArgumentException,
MathIllegalStateException
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.
Implementation notes:
• Tied pairs are discarded from the data.
• When exactPValue is false, the normal approximation is used to estimate the p-value including a continuity correction factor. wilcoxonSignedRankTest(x, y, true) should give the same results as wilcox.test(x, y, alternative = "two.sided", mu = 0, paired = TRUE, exact = FALSE, correct = TRUE) in R (as long as there are no tied pairs in the data).

Parameters:
x - the first sample
y - the second sample
exactPValue - if the exact p-value is wanted (only works for x.length <= 30, if true and x.length > 30, MathIllegalArgumentException is thrown)
Returns:
p-value
Throws:
NullArgumentException - if x or y are null.
MathIllegalArgumentException - if x or y are zero-length or for all i, x[i] == y[i]
MathIllegalArgumentException - if x and y do not have the same length.
MathIllegalArgumentException - if exactPValue is true and x.length > 30
MathIllegalStateException - if the p-value can not be computed due to a convergence error
MathIllegalStateException - if the maximum number of iterations is exceeded