Package org.hipparchus.stat.inference
Class WilcoxonSignedRankTest
java.lang.Object
org.hipparchus.stat.inference.WilcoxonSignedRankTest
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
ConstructorDescriptionCreate 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 TypeMethodDescriptiondouble
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.
-
Constructor Details
-
WilcoxonSignedRankTest
public WilcoxonSignedRankTest()Create a test instance where NaN's are left in place and ties get the average of applicable ranks. -
WilcoxonSignedRankTest
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'stiesStrategy
- specifies the strategy that should be used for ties
-
-
Method Details
-
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 sampley
- the second sample- Returns:
- wilcoxonSignedRank statistic (the larger of W+ and W-)
- Throws:
NullArgumentException
- ifx
ory
arenull
.MathIllegalArgumentException
- ifx
ory
are zero-length.MathIllegalArgumentException
- ifx
andy
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 aswilcox.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 sampley
- the second sampleexactPValue
- 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
- ifx
ory
arenull
.MathIllegalArgumentException
- ifx
ory
are zero-length or for all i, x[i] == y[i]MathIllegalArgumentException
- ifx
andy
do not have the same length.MathIllegalArgumentException
- ifexactPValue
istrue
andx.length
> 30MathIllegalStateException
- if the p-value can not be computed due to a convergence errorMathIllegalStateException
- if the maximum number of iterations is exceeded
-