KENDP
Computes the frequency distribution of the total score in Kendall’s rank correlation coefficient.
Required Arguments
NOBS — Sample size. (Input)
Must be greater than 1 and less than 34 (56 on some computers).
K — Score for which the probability is to be calculated. (Input)
K must be in the range from minus to plus NOBS * (NOBS ‑ 1)/2, inclusive.
FRQ — Vector of length NOBS * (NOBS ‑ 1)/2 + 1 containing the frequency distribution of possible values of K. (Output)
K will range from minus to plus NOBS * (NOBS ‑ 1)/2, inclusive, in increments of 2, with frequency FRQ(i), for a possible K = 2 * (i ‑ 1) ‑ NOBS * (NOBS ‑ 1)/2, where i = 1, 2, …, NOBS * (NOBS ‑ 1)/2 + 1.
PROB — Probability of equaling or exceeding K if the samples on which K is based are uncorrelated. (Output)
FORTRAN 90 Interface
Generic: CALL KENDP (NOBS, K, FRQ, PROB)
Specific: The specific interface names are S_KENDP and D_KENDP.
FORTRAN 77 Interface
Single: CALL KENDP (NOBS, K, FRQ, PROB)
Double: The double precision name is DKENDP.
Description
Routine KENDP computes the frequency distribution of the Kendall S statistic and the probability that S equals or exceeds a given value K. Routine KENDP requires the sample size, n = NOBS, on input. The frequencies reported in position i of FRQ correspond to
S = 2(i ‑ 1) ‑ n(n ‑ 1)/2
To obtain the probability distribution of S, divide each frequency by the sum of the frequencies in FRQ.
The upper bound on NOBS that can be handled by KENDP depends upon the largest real number that can be represented in the computer being used (AMACH(2)). If this value is 1.0E+46 or less, NOBS cannot be greater than 33.
Comments
Workspace may be explicitly provided, if desired, by use of K2NDP/DK2NDP.
The reference is:
CALL K2NDP (NOBS, K, FRQ, PROB, FWK)
The additional argument is:
FWK — Work vector of length (NOBS ‑ 1) * (NOBS ‑ 2)/2 + 1.
Example
The frequency distribution S for NOBS of 4 is computed. The probability is computed for S = 4.
USE IMSL_LIBRARIES
IMPLICIT NONE
INTEGER K, NOBS
PARAMETER (K=4, NOBS=4)
!
INTEGER I, M, NOUT
REAL FRQ(NOBS*(NOBS-1)/2+1,3), PROB, SUM
CHARACTER CLABEL(4)*10, RLABEL(1)*10
!
DATA RLABEL/'NONE'/
DATA CLABEL/' ', 'S', 'FRQ', 'pf'/
!
M = NOBS*(NOBS-1)/2 + 1
DO 10 I=1, M
FRQ(I,1) = 2*(I-1) - NOBS*(NOBS-1)/2
10 CONTINUE
!
CALL KENDP (NOBS, K, FRQ(1:,2), PROB)
! Compute the probabilities
SUM = SSUM(M,FRQ(1:,2),1)
CALL SCOPY (M, FRQ(1:,2), 1, FRQ(1:,3), 1)
CALL SSCAL (M, 1.0/SUM, FRQ(1:,3), 1)
! Print results
CALL UMACH (2, NOUT)
CALL WRRRL (' ', FRQ, RLABEL, CLABEL, FMT='(W10.4)')
WRITE (NOUT,*) 'PROB = ', PROB
END
Output
S FRQ pf
-6.000 1.000 0.042
-4.000 3.000 0.125
-2.000 5.000 0.208
0.000 6.000 0.250
2.000 5.000 0.208
4.000 3.000 0.125
6.000 1.000 0.042
PROB = 0.16666667