Examples


Example 48.1. Cochran-Armitage Test with Permutation Resampling

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 pvals;   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=PMT option creates an output SAS data set 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 ten and eight 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, PROC PRINT displays the SAS data set containing the permutation distributions.

The results from this analysis are listed in Output 48.1.1 through Output 48.1.5.

Output 48.1.1: Cochran-Armitage Test with Permutation Resampling
start example
  The Multtest Procedure   Model Information   Test for discrete variables                 Cochran-Armitage   Exact permutation distribution used         Everywhere   Tails for discrete tests                    Upper-tailed   Strata weights                              None   P-value adjustment                          Permutation   Number of resamples                         10000   Seed                                        36607  
end example
 
Output 48.1.2: Contrast Coefficients
start example
  The Multtest Procedure   Contrast Coefficients   Dose   Contrast                      1               2               3   CA Linear Trend               0               1               2  
end example
 
Output 48.1.3: Summary Statistics
start example
  The Multtest Procedure   Discrete Variable Tabulations   Variable    Dose     Count    NumObs    Percent   S1          1            2         6      33.33   S1          2            4         6      66.67   S1          3            4         6      66.67   S2          1            4         6      66.67   S2          2            2         6      33.33   S2          3            2         6      33.33  
end example
 
Output 48.1.4: Resulting p-Values
start example
  The Multtest Procedure   p-Values   Variable    Contrast                  Raw    Permutation   S1          CA Linear Trend        0.1993         0.4058   S2          CA Linear Trend        0.9220         1.0000  
end example
 
Output 48.1.5: Exact Permutation Distribution
start example
  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  
end example
 

You should check the preceding table to verify that the analysis specifications are correct.

The preceding table lists the label and coefficients from the CONTRAST statement.

The preceding table contains 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 is the sample size , and the Percent column is the percentage of successes in the sample.

The Raw column in the preceding p -Values table contains the p -values from the CA test, and the Permutation column contains the permutation-adjusted p -values.

This table shows that, for S1 , the adjusted p -value is almost twice the raw p -value. In fact, from theoretical considerations, the permutation-adjusted p -value for S1 should be 2 — 0.1993 = 0.3986; the difference is due to resampling error. For S2 , the raw p -value is 0.9220, and the adjusted p -value equals 1, as you would expect from theoretical considerations. The permutation p -values for S1 and S2 also happen to be the Bonferroni-adjusted p -values for this example.

The preceding table lists the OUTPERM= data set, which contains the exact permutation distributions for S1 and S2 in terms of cumulative probabilities.

Example 48.2. Freeman-Tukey and t-Tests with Bootstrap Resampling

The data for the following example are the same as for Example 48.1, except that a continuous variable T , which indicates the time of death of the animal, has been added.

  data a;   input S1 S2 T Dose @@;   datalines;   0 1 104 1   1 0  80 1   0 1 104 1   0 1 104 1   0 1 100 1   1 0 104 1   1 0  85 2   1 0  60 2   0 1  89 2   1 0  96 2   0 1  96 2   1 0  99 2   1 0  60 3   1 0  50 3   1 0  80 3   0 1  98 3   0 1  99 3   1 0  50 3   ;   proc multtest data=a bootstrap nsample=10000   pvals seed=37081 outsamp=res;   test ft(S1 S2 / lowertailed) mean(T / lowertailed);   class Dose;   contrast 'Linear Trend' 0 1 2;   run;   proc print data=res(obs=36);   run;  

The BOOTSTRAP option in the PROC MULTTEST statement requests bootstrap resampling, and NSAMPLE=10000 requests 10,000 bootstrap samples. The seed for the random number generation is 37081. The OUTSAMP=RES option creates an output SAS data set containing the 10,000 bootstrap samples.

The TEST statement specifies the Freeman-Tukey test for S1 and S2 and specifies the t -test for T . Both tests are lower-tailed. The grouping variable in the CLASS statement is Dose , and the coefficients across the levels of Dose are 0, 1, and 2, as specified in the CONTRAST statement. PROC PRINT displays the first 36 observations of the Res data set containing the bootstrap samples.

The results from this analysis are listed in Output 48.2.1 through Output 48.2.5.

Output 48.2.1: FT and t-tests with Bootstrap Resampling
start example
  The Multtest Procedure   Model Information   Test for discrete variables                 Freeman-Tukey   Test for continuous variables               Mean t-test   Tails for discrete tests                    Lower-tailed   Tails for continuous tests                  Lower-tailed   Strata weights                              None   P-value adjustment                          Bootstrap   Center continuous variables                 Yes   Number of resamples                         10000   Seed                                        37081  
end example
 
Output 48.2.2: Contrast Coefficients
start example
  The Multtest Procedure   Contrast Coefficients   Dose   Contrast                   1               2               3   Linear Trend               0               1               2  
end example
 
Output 48.2.3: Summary Statistics
start example
  The Multtest Procedure   Discrete Variable Tabulations   Variable    Dose     Count    NumObs    Percent   S1          1            2         6      33.33   S1          2            4         6      66.67   S1          3            4         6      66.67   S2          1            4         6      66.67   S2          2            2         6      33.33   S2          3            2         6      33.33   Continuous Variable Tabulations   Standard   Variable    Dose    NumObs          Mean     Deviation   T           1            6       99.3333        9.6056   T           2            6       87.5000       14.4326   T           3            6       72.8333       22.7017  
end example
 
Output 48.2.4: p-Values
start example
  The Multtest Procedure   p-Values   Variable    Contrast               Raw     Bootstrap   S1          Linear Trend        0.8547        1.0000   S2          Linear Trend        0.1453        0.4471   T           Linear Trend        0.0070        0.0253  
end example
 
Output 48.2.5: Resampling Data Set
start example
  Obs   _sample_    _class_    _obs_    S1    S2           T   1       1          1         11      0     1      8.5000   2       1          1         16      0     1     25.1667   3       1          1         16      0     1     25.1667   4       1          1         14      1     0   22.8333   5       1          1         18      1     0   22.8333   6       1          1         14      1     0   22.8333   7       1          2          4      0     1      4.6667   8       1          2         12      1     0     11.5000   9       1          2          8      1     0   27.5000   10       1          2          7      1     0   2.5000   11       1          2          3      0     1      4.6667   12       1          2         12      1     0     11.5000   13       1          3         13      1     0   12.8333   14       1          3          5      0     1      0.6667   15       1          3          8      1     0   27.5000   16       1          3          5      0     1      0.6667   17       1          3         13      1     0   12.8333   18       1          3          6      1     0      4.6667   19       2          1          8      1     0   27.5000   20       2          1          3      0     1      4.6667   21       2          1          9      0     1      1.5000   22       2          1         13      1     0   12.8333   23       2          1         14      1     0   22.8333   24       2          1         12      1     0     11.5000   25       2          2         14      1     0   22.8333   26       2          2         18      1     0   22.8333   27       2          2         15      1     0      7.1667   28       2          2          6      1     0      4.6667   29       2          2         13      1     0   12.8333   30       2          2          1      0     1      4.6667   31       2          3          7      1     0   2.5000   32       2          3          7      1     0   2.5000   33       2          3          6      1     0      4.6667   34       2          3         13      1     0   12.8333   35       2          3          4      0     1      4.6667   36       2          3          6      1     0      4.6667  
end example
 

The information in the preceding table corresponds to the specifications in the invocation of PROC MULTTEST.

The preceding table shows the coefficients from the CONTRAST statement, and they model a linear trend.

The summary statistics in the preceding table for S1 and S2 are the same as those from Example 48.1. The variables S1 and S2 are discrete, and T is a continuous variable. The mean, standard deviation, and sample size for each level of Dose is listed in the table for T . The p -values for S1 and S2 are from the Freeman-Tukey test, and the p -values for T are from the t -test.

The p -values are listed in the preceding table. The Raw column contains the results from the tests on the original data, and the Bootstrap column contains the bootstrap resampled adjustment to raw_p . Note that the adjusted p -values are larger than the raw p -values for all three variables. The adjusted p -values more accurately reflect the correlation of the raw p -values, the small size of the data, and the multiple testing.

The preceding table lists the first 36 observations of the SAS data set resulting from the OUTSAMP=RES option in the PROC MULTTEST statement. The entire data set has 180,000 observations, which is 10,000 times the number of observations in the data set. The _sample_ variable is the sample indicator and _class_ indicates the resampling group , that is, the level of the CLASS variable Dose assigned to the new observation. The number of the observation in the original data set is represented by _obs_ . Also listed are the values of the original test variables, S1 and S2 , and the mean-centered values of T .

Example 48.3. Peto Mortality-Prevalence Test

This example illustrates the use of the Peto mortality-prevalence test. The test is a combination of analyses about the prevalence of incidental tumors in the population and mortality due to fatal tumors .

In the data set, each observation represents an animal. The variables S1 ˆ’ S3 are three tumor types, with a value of 0 indicating no tumor, 1 indicating an incidental (nonlethal) tumor, and 2 indicating a lethal tumor. The time variable T indicates the time of death of the animal, a strata variable B is constructed from T , and the grouping variable Dose is drug dosage.

  data a;   input S1-S3 T Dose @@;   if T<=90 then B=1; else B=2;   datalines;   0 0 0 104 0   2 0 1  80 0   0 0 1 104 0   0 0 0 104 0   0 2 0 100 0   1 0 0 104 0   2 0 0  85 1   2 1 0  60 1   0 1 0  89 1   2 0 1  96 1   0 0 0  96 1   2 0 1  99 1   2 1 1  60 2   2 0 0  50 2   2 0 1  80 2   0 0 2  98 2   0 0 1  99 2   2 1 1  50 2   ;   proc multtest data=a notables out=p stepsid;   test peto(S1-S3 / permutation=20 time=T uppertailed);   class Dose;   strata B;   contrast 'mort-prev' 0 1 2;   run;   proc print data=p;   run;  

The NOTABLES option in the PROC MULTTEST statement suppresses the display of the summary statistics for each variable. The OUT=P option creates an output SAS data set containing all p -values and intermediate statistics. The STEPSID option is used to adjust the p -values.

The TEST statement specifies an upper-tailed Peto test for S1 ˆ’ S3 . The mortality strata are defined by TIME= T , the death times. The CLASS statement contains the grouping variable Dose . The prevalence strata are defined by the STRATA statement as the blocking variable B . The CONTRAST statement lists the default linear trend coefficients. PROC PRINT displays the requested p -value data set.

The results from this analysis are listed in Output 48.3.1 through Output 48.3.4.

Output 48.3.1: Peto Test
start example
  The Multtest Procedure   Model Information   Test for discrete variables                 Peto   Exact permutation distribution used         Everywhere   Tails for discrete tests                    Upper-tailed   Strata weights                              Sample size   P-value adjustment                          Stepdown Sidak  
end example
 
Output 48.3.2: Contrast Coefficients
start example
  The Multtest Procedure   Contrast Coefficients   Dose   Contrast                0               1               2   mort-prev               0               1               2  
end example
 
Output 48.3.3: p-Values
start example
  The Multtest Procedure   p-Values   Stepdown   Variable    Contrast            Raw         Sidak   S1          mort-prev        0.0681        0.0814   S2          mort-prev        0.5000        0.5000   S3          mort-prev        0.0363        0.0781  
end example
 
Output 48.3.4: OUT= Data Set
start example
  Obs _test_ _var_ _contrast_ _strat_ _tstrat_ _value_   _exp_     _se_    raw_p   stpsid_p   1  PETO   S1   mort-prev    1         0        0    0.00000  0.00000   .         .   2  PETO   S1   mort-prev    2         0        0    0.62500  0.85696   .         .   3  PETO   S1   mort-prev    50        1        4    2.00000  1.12022   .         .   4  PETO   S1   mort-prev    60        1        3    1.75000  1.06654   .         .   5  PETO   S1   mort-prev    80        1        2    1.57143  1.04978   .         .   6  PETO   S1   mort-prev    85        1        1    0.75000  0.72169   .         .   7  PETO   S1   mort-prev    96        1        1    0.70000  0.78102   .         .   8  PETO   S1   mort-prev    98        1        0    0.00000  0.00000   .         .   9  PETO   S1   mort-prev    99        1        1    0.42857  0.72843   .         .   10  PETO   S1   mort-prev    100       1        0    0.00000  0.00000   .         .   11  PETO   S2   mort-prev    1         0        6    5.50000  1.05221   .         .   12  PETO   S2   mort-prev    2         0        0    0.00000  0.00000   .         .   13  PETO   S2   mort-prev    50        1        0    0.00000  0.00000   .         .   14  PETO   S2   mort-prev    60        1        0    0.00000  0.00000   .         .   15  PETO   S2   mort-prev    80        1        0    0.00000  0.00000   .         .   16  PETO   S2   mort-prev    85        1        0    0.00000  0.00000   .         .   17  PETO   S2   mort-prev    96        1        0    0.00000  0.00000   .         .   18  PETO   S2   mort-prev    98        1        0    0.00000  0.00000   .         .   19  PETO   S2   mort-prev    99        1        0    0.00000  0.00000   .         .   20  PETO   S2   mort-prev    100       1        0    0.00000  0.00000   .         .   21  PETO   S3   mort-prev    1         0        6    5.50000  1.05221   .         .   22  PETO   S3   mort-prev    2         0        4    2.22222  1.08298   .         .   23  PETO   S3   mort-prev    50        1        0    0.00000  0.00000   .         .   24  PETO   S3   mort-prev    60        1        0    0.00000  0.00000   .         .   25  PETO   S3   mort-prev    80        1        0    0.00000  0.00000   .         .   26  PETO   S3   mort-prev    85        1        0    0.00000  0.00000   .         .   27  PETO   S3   mort-prev    96        1        0    0.00000  0.00000   .         .   28  PETO   S3   mort-prev    98        1        2    0.62500  0.85696   .         .   29  PETO   S3   mort-prev    99        1        0    0.00000  0.00000   .         .   30  PETO   S3   mort-prev    100       1        0    0.00000  0.00000   .         .   31  PETO   S1   mort-prev    .         .       12    7.82500  2.42699  0.06808   0.08140   32  PETO   S2   mort-prev    .         .        6    5.50000  1.05221  0.50000   0.50000   33  PETO   S3   mort-prev    .         .       12    8.34722  1.73619  0.03627   0.07811  
end example
 

The preceding information corresponds to the PROC MULTTEST invocation. In this case the totals for all prevalence and fatality strata are less than 20, so exact permutation tests are used everywhere, and the STEPSID adjustments are computed from these permutation distributions.

The contrast trend coefficients are listed in the preceding table. They happen to be the same as the levels of the Dose variable.

In the preceding p -Values table, the p -values for the Peto tests are listed in the Raw column, and the stepdown Sidak adjusted p -values are in the Stepdown Sidak column.

Significant p -values support the claim that higher dosage levels promote higher mortality and prevalence. The raw Peto test is significant at the 5% level for S3 , but the adjusted S3 test is no longer significant at 5%. The raw and adjusted p -values for S2 are the same because of the stepdown technique.

The preceding table lists the OUT= data set. The first 30 observations correspond to intermediate statistics used to compute the Peto p -values. The _test_ variable lists the name of the test, the _var_ variable lists the name of the TEST variables, and the _contrast_ variable lists the CONTRAST label. The _strat_ variable lists the level of the STRATA variable, and the _tstrat_ variable indicates whether or not the stratum corresponds to values of the TIME= variable. The _value_ variable is the observed contrast for a stratum and the _exp_ variable is its expected value. The variable _se_ contains the square root of the variance terms summed to form the denominator of the Peto statistics.

The final three observations correspond to the three Peto tests, with their p -values listed under the raw_p variable. The stpsid_p variable contains the stepdown Sidak adjusted p -values.

Example 48.4. Fisher Test with Permutation Resampling

These data, from Brown and Fears (1981), are the results from an 80-week carcino-genesis bioassay with female mice. Six tissue sites are examined at necropsy; 1 indicates the presence of a tumor and 0 the absence. A frequency variable Freq is included. A control and four different doses of a drug (in parts per milliliter) make up the levels of the grouping variable Dose .

  data a;   input Liver Lung Lymph Cardio Pitui Ovary Freq Dose$ @@;   datalines;   1 0 0 0 0 0 8  CTRL   0 1 0 0 0 0 7  CTRL   0 0 1 0 0 0 6  CTRL   0 0 0 1 0 0 1  CTRL   0 0 0 0 0 1 2  CTRL   1 1 0 0 0 0 4  CTRL   1 0 1 0 0 0 1  CTRL   1 0 0 0 0 1 1  CTRL   0 1 1 0 0 0 1  CTRL   0 0 0 0 0 0 18 CTRL   1 0 0 0 0 0 9  4PPM   0 1 0 0 0 0 4  4PPM   0 0 1 0 0 0 7  4PPM   0 0 0 1 0 0 1  4PPM   0 0 0 0 1 0 2  4PPM   0 0 0 0 0 1 1  4PPM   1 1 0 0 0 0 4  4PPM   1 0 1 0 0 0 3  4PPM   1 0 0 0 1 0 1  4PPM   0 1 1 0 0 0 1  4PPM   0 1 0 1 0 0 1  4PPM   1 0 1 1 0 0 1  4PPM   0 0 0 0 0 0 15 4PPM   1 0 0 0 0 0 8  8PPM   0 1 0 0 0 0 3  8PPM   0 0 1 0 0 0 6  8PPM   0 0 0 1 0 0 3  8PPM   1 1 0 0 0 0 1  8PPM   1 0 1 0 0 0 2  8PPM   1 0 0 1 0 0 1  8PPM   1 0 0 0 1 0 1  8PPM   1 1 0 1 0 0 2  8PPM   1 1 0 0 0 1 2  8PPM   0 0 0 0 0 0 19 8PPM   1 0 0 0 0 0 4  16PPM 0  1 0 0 0 0 2  16PPM  0 0 1 0 0 0 9  16PPM   0 0 0 0 1 0 1  16PPM 0  0 0 0 0 1 1  16PPM  1 1 0 0 0 0 4  16PPM   1 0 1 0 0 0 1  16PPM 0  1 1 0 0 0 1  16PPM  0 1 0 1 0 0 1  16PPM   0 1 0 0 0 1 1  16PPM 0  0 1 1 0 0 1  16PPM  0 0 1 0 1 0 1  16PPM   1 1 1 0 0 0 2  16PPM 0 0 0 0 0 0 14 16PPM   1 0 0 0 0 0 8  50PPM 0  1 0 0 0 0 4  50PPM  0 0 1 0 0 0 8  50PPM   0 0 0 1 0 0 1  50PPM 0  0 0 0 0 1 4  50PPM  1 1 0 0 0 0 3  50PPM   1 0 1 0 0 0 1  50PPM 0  1 1 0 0 0 1  50PPM  0 1 0 0 1 1 1  50PPM   0 0 0 0 0 0 19 50PPM   ;   proc multtest data=a order=data notables out=p   permutation nsample=1000 seed=764511;   test fisher(Liver Lung Lymph Cardio Pitui Ovary /   lowertailed);   class Dose;   freq Freq;   run;   proc print data=p;   run;  

In the PROC MULTTEST statement, the ORDER=DATA option is required to keep the levels of Dose in the order in which they appear in the data set. Without this option, the levels are sorted by their formatted value, resulting in an alphabetic ordering. The NOTABLES option suppresses the display of summary statistics, and the OUT=P option requests an output data set containing p -values. The PERMUTATION option specifies permutation resampling, NSAMPLE=1000 requests 1000 samples, and SEED=764511 provides a starting value for the random number generator. You should specify a seed if you need to duplicate resampling results.

To test for higher rates of tumor occurrence in the treatment groups compared to the control group, the LOWERTAILED option is specified in the TEST statement to produce a lower-tailed Fisher exact test for the six tissue sites. The Fisher test is appropriate for comparing a treatment and a control, but multiple testing can be a problem. Brown and Fears (1981) use a multivariate permutation to evaluate the entire collection of tests. PROC MULTTEST adjusts the p -values by simulation.

The treatments make up the levels of the grouping variable Dose , listed in the CLASS statement. Since no CONTRAST statement is specified, PROC MULTTEST uses the default pairwise contrasts with the first level of Dose . The FREQ statement is used since this is summary data containing frequency counts of occurrences.

The results from this analysis are listed in Output 48.4.1 through Output 48.4.4.

Output 48.4.1: Fisher Test with Permutation Resampling
start example
  The Multtest Procedure   Model Information   Test for discrete variables                 Fisher   Tails for discrete tests                    Lower-tailed   Strata weights                              None   P-value adjustment                          Permutation   Number of resamples                         1000   Seed                                        764511  
end example
 
Output 48.4.2: Default Contrast Coefficients
start example
  The Multtest Procedure   Contrast Coefficients   Dose   Contrast                 CTRL            4PPM            8PPM            16PPM          50PPM   CTRL vs. 4PPM                1   1               0               0              0   CTRL vs. 8PPM                1               0   1               0              0   CTRL vs. 16PPM               1               0               0   1              0   CTRL vs. 50PPM               1               0               0               0   1  
end example
 
Output 48.4.3: p-Values
start example
  The Multtest Procedure   p-Values   Variable    Contrast                 Raw    Permutation   Liver       CTRL vs. 4PPM         0.2828         0.9690   Liver       CTRL vs. 8PPM         0.3069         0.9750   Liver       CTRL vs. 16PPM        0.7102         1.0000   Liver       CTRL vs. 50PPM        0.7718         1.0000   Lung        CTRL vs. 4PPM         0.7818         1.0000   Lung        CTRL vs. 8PPM         0.8858         1.0000   Lung        CTRL vs. 16PPM        0.5469         1.0000   Lung        CTRL vs. 50PPM        0.8498         1.0000   Lymph       CTRL vs. 4PPM         0.2423         0.9430   Lymph       CTRL vs. 8PPM         0.5898         1.0000   Lymph       CTRL vs. 16PPM        0.0350         0.2480   Lymph       CTRL vs. 50PPM        0.4161         0.9960   Cardio      CTRL vs. 4PPM         0.3163         0.9770   Cardio      CTRL vs. 8PPM         0.0525         0.3570   Cardio      CTRL vs. 16PPM        0.4506         1.0000   Cardio      CTRL vs. 50PPM        0.7576         1.0000   Pitui       CTRL vs. 4PPM         0.1250         0.7260   Pitui       CTRL vs. 8PPM         0.4948         1.0000   Pitui       CTRL vs. 16PPM        0.2157         0.9050   Pitui       CTRL vs. 50PPM        0.5051         1.0000   Ovary       CTRL vs. 4PPM         0.9437         1.0000   Ovary       CTRL vs. 8PPM         0.8126         1.0000   Ovary       CTRL vs. 16PPM        0.7760         1.0000   Ovary       CTRL vs. 50PPM        0.3689         0.9950  
end example
 
Output 48.4.4: OUT= Data Set
start example
  Obs  _test_   _var_     _contrast_    _xval_ _mval_ _yval_ _nval_   raw_p   perm_p   sim_se   1  FISHER   Liver   CTRL vs. 4PPM     14     49     18     50    0.28282   0.969  0.005481   2  FISHER   Liver   CTRL vs. 8PPM     14     49     17     48    0.30688   0.975  0.004937   3  FISHER   Liver   CTRL vs. 16PPM    14     49     11     43    0.71022   1.000  0.000000   4  FISHER   Liver   CTRL vs. 50PPM    14     49     12     50    0.77175   1.000  0.000000   5  FISHER   Lung    CTRL vs. 4PPM     12     49     10     50    0.78180   1.000  0.000000   6  FISHER   Lung    CTRL vs. 8PPM     12     49      8     48    0.88581   1.000  0.000000   7  FISHER   Lung    CTRL vs. 16PPM    12     49     11     43    0.54685   1.000  0.000000   8  FISHER   Lung    CTRL vs. 50PPM    12     49      9     50    0.84978   1.000  0.000000   9  FISHER   Lymph   CTRL vs. 4PPM      8     49     12     50    0.24228   0.943  0.007332   10  FISHER   Lymph   CTRL vs. 8PPM      8     49      8     48    0.58977   1.000  0.000000   11  FISHER   Lymph   CTRL vs. 16PPM     8     49     15     43    0.03498   0.248  0.013656   12  FISHER   Lymph   CTRL vs. 50PPM     8     49     10     50    0.41607   0.996  0.001996   13  FISHER   Cardio  CTRL vs. 4PPM      1     49      3     50    0.31631   0.977  0.004740   14  FISHER   Cardio  CTRL vs. 8PPM      1     49      6     48    0.05254   0.357  0.015151   15  FISHER   Cardio  CTRL vs. 16PPM     1     49      2     43    0.45061   1.000  0.000000   16  FISHER   Cardio  CTRL vs. 50PPM     1     49      1     50    0.75758   1.000  0.000000   17  FISHER   Pitui   CTRL vs. 4PPM      0     49      3     50    0.12496   0.726  0.014104   18  FISHER   Pitui   CTRL vs. 8PPM      0     49      1     48    0.49485   1.000  0.000000   19  FISHER   Pitui   CTRL vs. 16PPM     0     49      2     43    0.21572   0.905  0.009272   20  FISHER   Pitui   CTRL vs. 50PPM     0     49      1     50    0.50505   1.000  0.000000   21  FISHER   Ovary   CTRL vs. 4PPM      3     49      1     50    0.94372   1.000  0.000000   22  FISHER   Ovary   CTRL vs. 8PPM      3     49      2     48    0.81260   1.000  0.000000   23  FISHER   Ovary   CTRL vs. 16PPM     3     49      2     43    0.77596   1.000  0.000000   24  FISHER   Ovary   CTRL vs. 50PPM     3     49      5     50    0.36889   0.995  0.002230  
end example
 

The preceding table lists the PROC MULTTEST specifications.

The preceding table lists the default contrasts for the Fisher test. Note that each dose is compared with the control.

The preceding p -Values table lists p -values for the Fisher exact tests and their permutation-based adjustments. As noted by Brown and Fears, only one of the twenty-four tests is significant at the 5% level (Lymph, CTRL vs. 16PPM). Brown and Fears report a 12% chance of observing at least one significant raw p -value for 16PPM and a 9% chance of observing at least one significant raw p -value for Lymph (both at the 5% level). Adjusted p -values exhibit much lower chances of false significances. For this example, none of the adjusted p -values are close to significant.

The preceding table lists the OUT= data set. The _test_ , _var_ ,and _contrast_ variables provide the TEST name, TEST variable, and CONTRAST label, respectively. The _xval_ , _mval_ , _yval_ ,and _nval_ variables contain the components used to compute the Fisher exact tests from the hypergeometric distribution. The raw_p variable contains the p -values from the Fisher exact tests, and the perm_p variable contains their permutation-based adjustments. The variable sim_se is the simulation standard error from the permutation resampling.

Example 48.5. Inputting Raw p-Values

This example illustrates how to use PROC MULTTEST to multiplicity-adjust a collection of raw p -values obtained from some other source. This is a valuable option for those cases where PROC MULTTEST cannot compute the raw p -values directly.

  data a;   input Test$ Raw_P;   datalines;   test1 .09108   test2 .69122   test3 .00177   test4 .57181   test5 .03121   test6 .01413   ;   proc multtest pdata=a holm hoc fdr;   run;  

Note that there are no statements other than the PROC MULTTEST statement using the p -value input mode. In this example, the raw p -values are adjusted using the Holm, Hochberg, and Benjamini and Hocherg (FDR) methods .

The output from this analysis is listed in Output 48.5.1.

Output 48.5.1: Inputting Raw p-Values
start example
  The Multtest Procedure   p-Values   False   Stepdown                   Discovery   Test           Raw    Bonferroni      Hochberg          Rate   1        0.0911        0.2732        0.2732        0.1366   2        0.6912        1.0000        0.6912        0.6912   3        0.0018        0.0106        0.0106        0.0106   4        0.5718        1.0000        0.6912        0.6862   5        0.0312        0.1248        0.1248        0.0624   6        0.0141        0.0707        0.0707        0.0424  
end example
 

Note that the adjusted p -values for the Hochberg method ( hoc_p ) are less than or equal to those for the Holm method ( stpbon_p ). In turn , the adjusted p -values for the Benjamini and Hochberg method ( fdr_p ) are less than or equal to those for the Hochberg method. These comparisons hold generally for all p -value configurations. The FDR method controls the false discovery rate and not the familywise error rate. The Hochberg method controls the familywise error rate under independence. The Holm method controls the familywise error rate without assuming independence.




SAS.STAT 9.1 Users Guide (Vol. 4)
SAS.STAT 9.1 Users Guide (Vol. 4)
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 91

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net