page.test {cultevo}R Documentation

Page test for monotonicity of ranks.


Given N replications of k different treatments/conditions, tests whether the median ordinal ranks m_i of the treatments are identical

m_1 = m_2 = \ldots = m_k

against the alternative hypothesis

m_1 \leq m_2 \leq \ldots \leq m_k

where at least one of the inequalities is a strict inequality (Siegel and Castellan 1988, p.184). Given that even a single point change in the distribution of ranks across conditions represents evidence against the null hypothesis, the Page test is simply a test for some ordered differences in ranks, but not a 'trend test' in any meaningful way (see also the Page test tutorial).


page.test(data, verbose = TRUE)

page.L(data, verbose = TRUE, ties.method = "average")

page.compute.exact(k, N, L)



a matrix with the different conditions along its k columns and the N replications along rows. Conversion of the data to ordinal ranks is taken care of internally.


whether to print the final rankings based on which the L statistic is computed


how to resolve tied ranks. Passed on to rank, should be left on "average" (the default).


number of conditions/generations


number of replications/chains


value of the Page L statistic


Tests the given matrix for monotonically increasing ranks across k linearly ordered conditions (along columns) based on N replications (along rows). To test for monotonically decreasing ranks, either reverse the order of columns, or simply invert the rank ordering by calling - on the entire dataset.

Exact p-values are computed for k up to 22, using the pre-computed null distributions from the pspearman package. For larger k, p-values are computed based on a Normal distribution approximation (Siegel and Castellan, 1988).


page.test returns a list of class pagetest (and htest) containing the following elements:


value of the L statistic for the data set


a named vector specifying the number of conditions (k) and replications (N) of the data (which is the number of columns and rows of the data set, respectively)


significance level


whether the computed p-value is "exact" or "approximate"



Siegel, S., and N. J. Castellan, Jr. (1988). Nonparametric Statistics for the Behavioral Sciences. McGraw-Hill.

See Also

rank, Page test tutorial


# exact p value computation for N=4, k=4
page.test(t(replicate(4, sample(4))))

# exact p value computation for N=4, k=10
page.test(t(replicate(4, sample(10))))

# approximate p value computation for N=4, k=23
result <- page.test(t(replicate(4, sample(23))), verbose = FALSE)


# raw calculation of the significance levels
page.compute.exact(6, 4, 322)

[Package cultevo version 1.0.2 Index]