P-value adjustments for Multiple Comparisons
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | * Ray * I am sending you an improved version of the syntax for p-values * adjustment algorithms. I have added some step-up methods and * documentation for every algorithm. * Marta Garcia-Granero 2002/04/17. ************************** ADJUSTP SYNTAX: DISCLAIMER ADJUSTP is provided "as is" without warranty of any kind. The entire risk as to the quality, performance, and fitness for intended purpose is with you. You assume responsibility for the selection of the program and for the use of results obtained from that program. DESCRIPTION There are 8 p-value adjustment algorithms available. They include one-step, step-down and step-up adjustment methods. 1. One-Step Bonferroni 2. One-Step Sidak [References 1 and 2] 3. Step-Down Holm [3] 4. Step-Down Sidak [1,2,4 and 5] 5. Step-Down Finner [4 and 5] 6. Step-Up Hommel [6 and 7] 7. Step-Up Hochberg [8] 8. Step-Up Simes [9] All the results have been tested with Multiplicity program (2.0) , by Barry W. Brown, The University of Texas M D Anderson Cancer Center. ALGORITHMS The following nomenclature will be used: n = number of p-values p(i) = ith smallest p-value p#(i) = adjusted value of p(i) In one-step adjustment methods p-values are compared to a predetermined value that is a function of alfa, the significance level, and n, the number of p-values. - One-step Bonferroni: p#(i)=n*p(i) - One-Step Sidak: p#(i)=1-(1-p(i))^n In step-down methods p-values are examined in order, from smallest to largest. Once a p-value is found that is large according to a criterion based on alfa and the p-value's position in the list, that p-value and all larger p-values are accepted. - Step-down Holm: p#(i)=(n-i+1)*p(i) - Step-down Sidak: p#(i)=1-(1-p(i))^(n-i+1) - Step-down Finner: p#(i)=1-(1-p(i))^(n/i) In step-up methods p-values are examined in order, from largest to smallest. Once a p-value is found that is small according to a criterion based on alfa and the p-value's position in the list, that p-value and all smaller p-values are rejected. - Step-up Hommel: p#(i)=n*Cn*p(i)/i Cn=1+1/2+ ... +1/n - Step-up Hochberg: p#(i)=(n-i+1)*p(i) - Step-up Simes: p#(i)=n*p(i)/i See [10] for a general reference on p-value adjustment algorithms. REFERENCES 1. Sidak Z (1967) "Rectangular Confidence Regions for the Means of Multivariate Normal Distributions" American Statistical Association, 62, 626-633. 2. Sidak Z (1971) "On probabilities of rectangles in multivariate Student distributions: their dependence on correlations" Ann Math Statist, 42, 169-175. 3. Holm S (1979) "A Simple Sequentially Rejective Multiple Test Procedure" Scandinavian Journal of Statistics, 6, 65-70. 4. Finner H (1990) "Some New Inequalities for the Rnad Distribution With Application to the determination of Optimum Significance Levels of Multiple Range Tests" Journal of the American Statistical Association, 85, 191-194. 5. Finner H (1993) "On A Monotonicity Problem in Step-Down Multiple Test Procedures" Journal of the American Statistical Association, 88, 920-923. 6. Hommel G (1988) "A stagewise rejective multiple test procedure based on a modified Bonferroni test" Biometrika, 75, 383-386. 7. Falk RW (1989) "Hommel's Bonferroni-type inequality for unequally spaced levels" Biometrika, 76, 190-191. 8. Hochberg Y and Benjamini Y (1990) "More powerful procedures for multiple significance testing" Statistics in Medicine, 9, 811-818. 9. Simes RJ (1986) "An improved Bonferroni procedure for multiple tests of significance" Biometrika, 73, 751-754. 10. Westfall PH and Young SS (1993), Resampling-Based Multiple Testing: examples and methods for p-value adjustment. New York: John Wiley and Sons. ******************************************************************************** * BEGINNING OF SYNTAX * Create dataset with p-values. Replace by your own *. DATA LIST list / pvalue(f9.4). BEGIN DATA 0.0728 0.0023 0.3829 0.0041 0.0101 0.4557 END DATA. * SOME AUXILIARY VARIABLES *. COMPUTE id=$CASENUM. FORMAT id (F2.0). SORT CASES BY pvalue (A) . COMPUTE pos=$CASENUM. FORMAT pos (F2.0). *>>>>> This section added by Ray Levesque <<<<<<<. * Calculate the number of p values. RANK pvalue /n into N /PRINT=NO. * N contains the number of cases in the file. *>>>>>> End of section added by Ray <<<<<<<. * ADJUSTED P-VALUES *. * (1) One step methods *. COMPUTE bonferr=pvalue*n. IF bonferr>1 bonferr=1. COMPUTE sidak=1-(1-pvalue)**n. * (2) Step-down methods *. COMPUTE holm=(n-pos+1)*pvalue. IF holm>1 holm=1. IF (holm<LAG(holm,1)) holm=LAG(holm,1). COMPUTE downsidk=1-(1-pvalue)**(n-pos+1). IF (downsidk<LAG(downsidk,1)) downsidk=LAG(downsidk,1). COMPUTE finner=1-(1-pvalue)**(n/pos). IF (finner<LAG(finner,1)) finner=LAG(finner,1). * (3) Step-up methods *. COMPUTE cn=1/pos. DO IF $casenum>1. COMPUTE cn=cn+lag(cn,1). END IF. SORT CASES BY pos(D). IF cn<lag(cn,1) cn=lag(cn,1). COMPUTE hommel = cn*n*pvalue/pos. IF hommel>1 hommel=1. IF (hommel>LAG(hommel,1)) hommel=LAG(hommel,1). COMPUTE hochberg=(n-pos+1)*pvalue. IF (hochberg>LAG(hochberg,1)) hochberg=LAG(hochberg,1). COMPUTE simes=n*pvalue/pos. IF (simes>LAG(simes,1)) simes=LAG(simes,1). * FINAL REPORTS *. FORMAT bonferr to simes (f9.4). VARIABLE LABELS id 'Nr.' /pvalue 'Original' /pos 'Rank' /bonferr 'One-step Bonferroni' /sidak 'One-step Sidak' /holm 'Step-down Holm' /downsidk 'Step-down Sidak' /finner 'Step-down Finner' /hommel 'Step-up Hommel' /hochberg 'Step-up Hochberg' /simes 'Step-up Simes'. SORT CASES BY pos (A). REPORT FORMAT=LIST AUTOMATIC ALIGN(CENTER) /VARIABLES=pos id pvalue bonferr sidak /TITLE "Original and one-step adjusted p-values". REPORT FORMAT=LIST AUTOMATIC ALIGN(CENTER) /VARIABLES=pos id pvalue holm downsidk finner /TITLE "Original and step-down adjusted p-values". REPORT FORMAT=LIST AUTOMATIC ALIGN(CENTER) /VARIABLES=pos id pvalue hommel hochberg simes /TITLE "Original and step-up adjusted p-values". ******************************************************************************** * END OF SYNTAX. |
Related pages
...