R语言多重比较方法
原文链接:http://tecdat.cn/?p=9578
目录
测试方法
画图
具有五个p值的多重比较示例
画图
测试方法
R具有内置的方法来调整一系列p值,以控制按族分类的错误率或控制错误发现率。
Holm,Hochberg,Hommel和Bonferroni的方法控制着家庭错误率。这些方法试图限制甚至一个错误发现的可能性(I型错误,在没有实际效果时错误地拒绝零假设),因此它们都相对较强(保守)。
BH(Benjamini–Hochberg,与R中的FDR相同)和BY方法控制错误发现率。这些方法试图控制错误发现的预期比例。
请注意,这些方法仅需要调整p值和要比较的p值数量。这与Tukey或Dunnett之类的方法不同,后者也需要基础数据的可变性。Tukey和Dunnett被认为是家庭错误率方法。
没有关于使用哪个p值调整量度的明确建议。通常, 应该选择一种听众或您的研究领域熟悉的方法。此外,可能存在一些逻辑,使您可以选择如何平衡发生II型错误和I型错误的可能性。例如,在初步研究中,您可能希望保留尽可能多的重要值,以免在将来的研究中排除潜在的重要因素。另一方面,在一项医学研究中,人们的生命处于危险之中,正在考虑使用非常昂贵的治疗方法,因此在断定一种治疗方法优于另一种治疗方法之前,您需要具有很高的确定性。
Data = read.table(textConnection(Input),header=TRUE)
headtail(Data)
Food Raw.p
20 Total_calories 0.001
12 Olive_oil 0.008
25 Whole_milk 0.039
17 Semi-skimmed_milk 0.942
21 Total_meat 0.975
14 Processed_meat 0.986
### Perform p-value adjustments and add to data frame
Data
Food Raw.p Bonferroni BH Holm Hochberg Hommel BY
20 Total_calories 0.001 0.025 0.0250000 0.025 0.025 0.025 0.09539895
12 Olive_oil 0.008 0.200 0.1000000 0.192 0.192 0.192 0.38159582
25 Whole_milk 0.039 0.975 0.2100000 0.897 0.882 0.682 0.80135122
24 White_meat 0.041 1.000 0.2100000 0.902 0.882 0.697 0.80135122
15 Proteins 0.042 1.000 0.2100000 0.902 0.882 0.714 0.80135122
11 Nuts 0.060 1.000 0.2500000 1.000 0.986 0.840 0.95398954
5 Cereals_and_pasta 0.074 1.000 0.2642857 1.000 0.986 0.962 1.00000000
23 White_fish 0.205 1.000 0.4910714 1.000 0.986 0.986 1.00000000
3 Butter 0.212 1.000 0.4910714 1.000 0.986 0.986 1.00000000
22 Vegetables 0.216 1.000 0.4910714 1.000 0.986 0.986 1.00000000
18 Skimmed_milk 0.222 1.000 0.4910714 1.000 0.986 0.986 1.00000000
16 Red_meat 0.251 1.000 0.4910714 1.000 0.986 0.986 1.00000000
9 Fruit 0.269 1.000 0.4910714 1.000 0.986 0.986 1.00000000
7 Eggs 0.275 1.000 0.4910714 1.000 0.986 0.986 1.00000000
1 Blue_fish 0.340 1.000 0.5328125 1.000 0.986 0.986 1.00000000
10 Legumes 0.341 1.000 0.5328125 1.000 0.986 0.986 1.00000000
4 Carbohydrates 0.384 1.000 0.5647059 1.000 0.986 0.986 1.00000000
13 Potatoes 0.569 1.000 0.7815789 1.000 0.986 0.986 1.00000000
2 Bread 0.594 1.000 0.7815789 1.000 0.986 0.986 1.00000000
8 Fats 0.696 1.000 0.8700000 1.000 0.986 0.986 1.00000000
19 Sweets 0.762 1.000 0.9071429 1.000 0.986 0.986 1.00000000
6 Dairy_products 0.940 1.000 0.9860000 1.000 0.986 0.986 1.00000000
17 Semi-skimmed_milk 0.942 1.000 0.9860000 1.000 0.986 0.986 1.00000000
21 Total_meat 0.975 1.000 0.9860000 1.000 0.986 0.986 1.00000000
14 Processed_meat 0.986 1.000 0.9860000 1.000 0.986 0.986 1.00000000
画图

一系列25个p值的调整p值与原始p值的关系图。虚线表示一对一的线。
具有五个p值的多重比较示例
### --------------------------------------------------------------
### Multiple comparisons example, hypothetical example
### --------------------------------------------------------------
Data = read.table(textConnection(Input),header=TRUE)
Factor Raw.p Bonferroni BH Holm Hochberg Hommel BY
1 A 0.001 0.005 0.00500 0.005 0.005 0.005 0.01142
2 B 0.010 0.050 0.02500 0.040 0.040 0.040 0.05708
3 C 0.025 0.125 0.04167 0.075 0.075 0.075 0.09514
4 D 0.050 0.250 0.06250 0.100 0.100 0.100 0.14270
5 E 0.100 0.500 0.10000 0.100 0.100 0.100 0.22830
画图

0至0.1之间的五个p值系列的调整p值与原始p值的关系图。请注意,Holm和Hochberg与Hommel具有相同的值,因此被Hommel隐藏。虚线表示一对一的线。