CTRHO
Estimates the bivariate normal correlation coefficient using a contingency table.
Required Arguments
TABLENROW by NCOL contingency table containing the observed counts. (Input)
RHO — Maximum likelihood estimate of the correlation coefficient. (Output)
VAR — Estimated asymptotic variance of RHO. (Output)
PLTMY — Vector of length NROW + NCOL  2 containing the points of polytomy of the marginal rows and columns of TABLE. (Output)
The first NROW  1 elements of PLTMY are the points of polytomy for the rows while the last NCOL   elements are the points of polytomy for the columns.
PROBNROW by NCOL matrix containing the bivariate normal probabilities corresponding to RHO and PLTMY. (Output)
DRIVNROW by NCOL matrix containing the partial derivatives of the bivariate normal probability with respect to RHO. (Output)
Optional Arguments
NROW — Number of rows in the table. (Input)
Default: NROW = size (TABLE,1).
NCOL — Number of columns in the table. (Input)
Default: NCOL = size (TABLE,2).
LDTABL — Leading dimension of TABLE exactly as specified in the dimension statement of the calling program. (Input)
Default: LDTABL = size (TABLE,1).
EPS — Convergence criterion in the iterative estimation. (Input)
RHO will be within EPS of the maximum likelihood estimate unless roundoff errors prevent this precision. EPS must be less than 2. EPS less than or equal to zero defaults to 0.00001.
Default: EPS = .00001.
LDPROB — Leading dimension of PROB exactly as specified in the dimension statement in the calling program. (Input)
Default: LDPROB = size (PROB,1).
LDDRIV — Leading dimension of DRIV exactly as specified in the dimension statement in the calling program. (Input)
Default: LDDRIV = size (DRIV,1).
FORTRAN 90 Interface
Generic: CALL CTRHO (TABLE, RHO, VAR, PLTMY, PROB, DRIV [])
Specific: The specific interface names are S_CTRHO and D_CTRHO.
FORTRAN 77 Interface
Single: CALL CTRHO (NROW, NCOL, TABLE, LDTABL, EPS, RHO, VAR, PLTMY, PROB, LDPROB, DRIV, LDDRIV)
Double: The double precision name is DCTRHO.
Description
Routine CTRHO computes the maximum likelihood estimate and the asymptotic variance for the correlation coefficient of a bivariate normal population from a two-way contingency table. The maximum likelihood estimates are conditional upon the points of polytomy in the marginal distribution. The resulting estimate for the correlation coefficient should be very close to the unconditional estimate (see Martinson and Hamdan 1972).
The points of polytomy for the row and column marginal probabilities are first computed. If the i-th cumulative column marginal is denoted by pci, then the point of polytomy xi is given as
where Φ denotes the cumulative normal distribution. Let αii = 0, r denote these points for the row marginal cumulative probabilities where r = NROW, α0 =  , and αr = . Similarly, let βjj = 0, c denote the points of polytomy for the columns where c = NCOL. Then, the probability of the (i, j) cell in the table, pij, is defined as
where X and Y are the bivariate random variables. Maximum likelihood estimates for the correlation coefficient are computed based upon the bivariate normal density. The likelihood is specified by the multinomial distribution of the table using probabilities pij.
Routine CTRHO assumes that the row random variable decreases with increasing row number while the column variable increases with the column number. If this is not the case, the sign of the estimated correlation coefficient may need to be changed.
Example
The data are taken from Martinson and Hamdan (1972), who attribute it to Karl Pearson. The row variable is head breadth (in millimeters) for a human male while the column variable is the head breadth of his sister. Head breadth increases across the columns and decreases down the row. The row and column variables have been categorized into one of three intervals. The original table is as follows:
1.0
36.5
77.5
52.5
340.5
143.5
40.5
58.0
9.0
Note that routine CTRHO can accept other than integer counts. It is not clear from Martinson and Hamdan (1972) how the non-integral counts arise in the table here. The correlation is estimated to be 0.5502.
 
USE CTRHO_INT
USE UMACH_INT
USE WRRRN_INT
 
IMPLICIT NONE
INTEGER LDDRIV, LDPROB, LDTABL, NCOL, NROW
PARAMETER (LDDRIV=3, LDPROB=3, LDTABL=3, NCOL=3, NROW=3)
!
INTEGER NOUT
REAL DRIV(LDDRIV, NCOL), PLTMY(NROW+NCOL-2),PROB(LDPROB,NCOL), &
RHO, TABLE(LDTABL, NCOL), VAR
!
DATA TABLE/1.0, 52.5, 40.5, 36.5, 340.5, 58.0, 77.5, 143.5, 9.0/
!
!
CALL CTRHO (TABLE, RHO, VAR, PLTMY, PROB, DRIV)
!
CALL UMACH (2, NOUT)
WRITE (NOUT,*) 'RHO =', RHO, ' VAR =', VAR
CALL WRRRN ('PLTMY', PLTMY, 1, NROW+NCOL-2, 1, 0)
CALL WRRRN ('PROB', PROB)
CALL WRRRN ('DRIV', DRIV)
END
Output
 
RHO = 0.549125 VAR = 1.33199E-03
PLTMY
1 2 3 4
-1.073 1.030 -1.156 0.516
 
PROB
1 2 3
1 0.0015 0.0517 0.0983
2 0.0700 0.4398 0.1970
3 0.0523 0.0816 0.0077
 
DRIV
1 2 3
1 -0.0134 -0.0984 0.1118
2 -0.0717 0.1388 -0.0672
3 0.0851 -0.0404 -0.0447