Computes exact probabilities in a two-way contingency table.
TABLE — NROW by NCOL matrix containing the contingency table cell frequencies. (Input)
PRE — Probability
of a more extreme table where “extreme” is taken in the Neyman-Pearson
sense. (Output)
A table is more extreme if its probability (for
fixed marginals) is less than or equal to PRT.
NROW — Number of
rows in the contingency table. (Input)
Default: NROW
= size (TABLE,1).
NCOL — Number of
columns in the contingency table. (Input)
Default: NCOL
= size (TABLE,2).
LDTABL — Leading
dimension of TABLE exactly as
specified in the dimension statement in the calling program.
(Input)
Default: LDTABL
= size (TABLE,1).
PRT — Probability of the observed table assuming fixed row and column marginal totals. (Output)
PCHEK — Sum of
the probabilities of all tables with the same marginal totals.
(Output)
PCHEK should be 1.0.
Deviation from 1.0 indicates a numerical error.
Generic: CALL CTPRB (TABLE, PRE [,…])
Specific: The specific interface names are S_CTPRB and D_CTPRB.
Single: CALL CTPRB (NROW, NCOL, TABLE, LDTABL, PRT, PRE, PCHEK)
Double: The double precision name is DCTPRB.
Routine CTPRB computes exact probabilities for an r × c contingency table for fixed row and column marginals where r = NROW and c = NCOL. Let fij denote the element in row i and column j of a table, and let fi∙ and f∙j denote the row and column marginals. Under the independence hypothesis, the (conditional) probability for fixed marginals of a table is given by
where f∙∙ is the total number of counts in the table and x! denotes x factorial. When the fij are obtained from the input table (fij = TABLE(i, j)), Pf = PRT. PRE is the sum over all more extreme tables of the probability of each table.
In CTPRB, a more extreme table is defined in the probabilistic sense. Table X is more extreme than the input table if the conditional probability computed for table X (for the same marginal sums) is less than the conditional probability computed for the input table. The user should note that this definition of “more extreme” can be considered as “two-sided” in the cell counts.
Because CTPRB uses total enumeration in computing the probability of a more extreme table, the amount of computer time required increases very rapidly with the size of the table. Tables, with either a large total count f∙∙ or in which the product rc is not small, should not be analyzed with CTPRB. Rather, either the approximate methods of Agresti, Wackerly, and Boyett (1979) should be used or algorithms that do not require total enumeration should be used (see Pagano and Halvorsen [1981], or Mehta and Patel [1983]).
1. Workspace may be explicitly provided, if desired, by use of C2PRB/DC2PRB. The reference is:
CALL C2PRB (NROW, NCOL, TABLE, LDTABL, PRT, PRE, PCHCK, IWK)
The additional argument is:
IWK — Work vector of length (NROW + 2)(NCOL + 2).
2. Informational error
Type Code
3 1 There are no observed counts in TABLE. PRE, PRT, and PCHEK are set to NaN (not a number).
3. Routine CTPRB computes a two-tailed Fisher exact probability in 2 by 2 tables. For one-tailed Fisher exact probabilities, use routine CTTWO.
In this example, CTPRB is used to compute the exact conditional probability for a 2 × 2 contingency table. The input table is given as:
USE UMACH_INT
USE CTPRB_INT
IMPLICIT NONE
INTEGER NCOL, LDTABL
PARAMETER (NCOL=2, LDTABL=2)
!
INTEGER NOUT
REAL PCHEK, PRE, PRT, TABLE(LDTABL,NCOL)
!
DATA TABLE/8, 8, 12, 2/
!
CALL UMACH (2, NOUT)
!
CALL CTPRB (TABLE, PRE, PRT=PRT, PCHEK=PCHEK)
!
WRITE(NOUT,'('' PRT = '', F12.4, /, '' PRE = '', F12.4, /, &
& '' PCHEK = '', F10.4)') PRT, PRE, PCHEK
END
PRT = 0.0390
PRE
= 0.0577
PCHEK =
1.0000
PHONE: 713.784.3131 FAX:713.781.9260 |