This example, from Keith Soper at Merck, illustrates the exact permutation Cochran-Armitage test carried out on permutation
resamples. In the following data set, each observation represents an animal. The binary variables S1
and S2
indicate two tumor types, with 0s indicating no tumor (failure) and 1 indicating a tumor (success); note that they have perfect
negative association. The grouping variable is Dose
.
data a; input S1 S2 Dose @@; datalines; 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 2 1 0 2 0 1 2 1 0 2 0 1 2 1 0 2 1 0 3 1 0 3 1 0 3 0 1 3 0 1 3 1 0 3 ;
proc multtest data=a permutation nsample=10000 seed=36607 outperm=pmt; test ca(S1 S2 / permutation=10 uppertailed); class Dose; contrast 'CA Linear Trend' 0 1 2; run; proc print data=pmt; run;
The PROC MULTTEST statement requests 10,000 permutation resamples. The OUTPERM=
option creates an output SAS data set pmt
used for the exact permutation distribution computed for the CA
test.
The TEST
statement specifies an upper-tailed Cochran-Armitage linear trend test for S1
and S2
. The cutoff for exact permutation calculations is 10, as specified with the PERMUTATION=
option in the TEST
statement. Since S1
and S2
have 10 and 8 successes, respectively, PROC MULTTEST uses exact permutation distributions to compute the p-values for both variables.
The groups for the CA
test are the levels of Dose
from the CLASS
statement. The trend coefficients applied to these groups are 0, 1, and 2, respectively, as specified in the CONTRAST
statement.
Finally, the PROC PRINT statement displays the SAS data set pmt
, which contains the permutation distributions.
The results from this analysis are displayed in Output 79.1.1 through Output 79.1.5. You should check the "Model Information" table to verify that the analysis specifications are correct.
Output 79.1.1: Cochran-Armitage Test with Permutation Resampling
The label and coefficients from the CONTRAST statement are shown in Output 79.1.2.
Output 79.1.2: Contrast Coefficients
Output 79.1.3 displays summary statistics for the two test variables, S1
and S2
. The Count column lists the number of successes for each level of the CLASS variable, Dose
. The NumObs column lists the sample size, and the Percent column lists the percentage of successes in the sample.
Output 79.1.3: Summary Statistics
The Raw column in Output 79.1.4 contains the p-values from the CA test, and the Permutation column contains the permutation-adjusted p-values.
Output 79.1.4: Resulting p-Values
This table shows that, for S1
, the adjusted p-value is approximately twice the raw p-value. In fact, resamples with small (large) p-values for S1
have large (small) p-values for S2
due to the perfect negative association of the variables, and hence the permutation-adjusted p-value for S1
should be ; the difference is due to resampling error. For the same reason, since the raw p-value for S2
is 0.9220, the adjusted p-value equals 1. The permutation p-values for S1
and S2
also happen to be the Bonferroni-adjusted p-values for this example.
The OUTPERM= data set is displayed in Output 79.1.5, which contains the exact permutation distributions for S1
and S2
in terms of cumulative probabilities.
Output 79.1.5: Exact Permutation Distribution
Obs | _contrast_ | _var_ | _value_ | upper_p |
---|---|---|---|---|
1 | CA Linear Trend | S1 | 0 | 1.00000 |
2 | CA Linear Trend | S1 | 1 | 1.00000 |
3 | CA Linear Trend | S1 | 2 | 1.00000 |
4 | CA Linear Trend | S1 | 3 | 1.00000 |
5 | CA Linear Trend | S1 | 4 | 1.00000 |
6 | CA Linear Trend | S1 | 5 | 0.99966 |
7 | CA Linear Trend | S1 | 6 | 0.99609 |
8 | CA Linear Trend | S1 | 7 | 0.97827 |
9 | CA Linear Trend | S1 | 8 | 0.92205 |
10 | CA Linear Trend | S1 | 9 | 0.80070 |
11 | CA Linear Trend | S1 | 10 | 0.61011 |
12 | CA Linear Trend | S1 | 11 | 0.38989 |
13 | CA Linear Trend | S1 | 12 | 0.19930 |
14 | CA Linear Trend | S1 | 13 | 0.07795 |
15 | CA Linear Trend | S1 | 14 | 0.02173 |
16 | CA Linear Trend | S1 | 15 | 0.00391 |
17 | CA Linear Trend | S1 | 16 | 0.00034 |
18 | CA Linear Trend | S1 | 17 | 0.00000 |
19 | CA Linear Trend | S1 | 18 | 0.00000 |
20 | CA Linear Trend | S1 | 19 | 0.00000 |
21 | CA Linear Trend | S1 | 20 | 0.00000 |
22 | CA Linear Trend | S2 | 0 | 1.00000 |
23 | CA Linear Trend | S2 | 1 | 1.00000 |
24 | CA Linear Trend | S2 | 2 | 1.00000 |
25 | CA Linear Trend | S2 | 3 | 0.99966 |
26 | CA Linear Trend | S2 | 4 | 0.99609 |
27 | CA Linear Trend | S2 | 5 | 0.97827 |
28 | CA Linear Trend | S2 | 6 | 0.92205 |
29 | CA Linear Trend | S2 | 7 | 0.80070 |
30 | CA Linear Trend | S2 | 8 | 0.61011 |
31 | CA Linear Trend | S2 | 9 | 0.38989 |
32 | CA Linear Trend | S2 | 10 | 0.19930 |
33 | CA Linear Trend | S2 | 11 | 0.07795 |
34 | CA Linear Trend | S2 | 12 | 0.02173 |
35 | CA Linear Trend | S2 | 13 | 0.00391 |
36 | CA Linear Trend | S2 | 14 | 0.00034 |
37 | CA Linear Trend | S2 | 15 | 0.00000 |
38 | CA Linear Trend | S2 | 16 | 0.00000 |