greatest.possible.newbie
2012-Aug-03 05:42 UTC
[R] Multiple Comparisons-Kruskal-Wallis-Test: kruskal{agricolae} and kruskalmc{pgirmess} don't yield the same results although they should do (?)
Hi there, I am doing multiple comparisons for data that is not normally distributed. For this purpose I tried both functions kruskal{agricolae} and kruskalmc{pgirmess}. It confuses me that these functions do not yield the same results although they are doing the same thing, don't they? Can anyone tell my why this happens and which function I can trust? kruskalmc() tells me that there are no differences between any of the groups (i.e. the "difference" column of the results is filled only with FALSE). kruskal() tells me that there are indeed differences (between group 4 and 11). Here is my data and code: x <- structure(c(-0.089, 0.093, -0.125, -0.253, 0.053, 0.029, 0.429, 0.139, 0.153, -0.035, 0.721, 0, -0.271, -0.014, 0.038, 0.107, -0.064, -0.178, 0, -0.065, 0.232, 0, -0.036, 0.107, -0.018, -0.632, 0.189, -0.247, -0.982, 0.161, 0.307, 0.146, 0.21, -0.043, -0.029, 0.107, -0.043, -0.178, 0.036, 0.511, 0, 0.307, 0.389, -0.754, 0.152, -0.129, 0.65, 0.411, 0, 0.539, -0.122, 0.514, -0.15, -1.19, -0.032, 0.103, 0, -0.522, -0.857, -0.036, 0.104, -0.357, 0.114, -0.054, 0.04, 0.036, 0.086, 0.736, -0.097, 0.784, 0.053, 0.007, -0.646, 0.185, 0.107, -0.115, 0, -0.036, -0.082, -0.113, -0.032, 0.354, -0.095, -0.328, -0.215, -0.036, 0, 0.357, 0, 0.108, -0.014, 0.307, -0.053, 0.318, -0.058, 0.268, -0.067, 0.071, 0.261, -0.018, 0.054, 0.086, 1.107, -0.617, 0.286, 0.072, 0.036, 0.179, -0.096, 0.143, 0.45, -0.21, 0.372, 0.061, -0.218, -0.214, 0.272, 0.108, 0.175, -0.017, 0.473, -0.575, 0.083, 0.025, 0.25, -0.843, -0.054, -0.775, 0.036, -0.297, 0.8, 0.004, 0.189, 0.005, 0.103, 0.289, -0.107, -0.096, 0, 0.015, -0.035, -0.125, 0.125, -0.071, -0.029, -0.643, -0.008, 0.184, 0.303, 0, -0.164, 0.047, -0.062, -0.164, -0.604, -0.178, 0.233, -0.154, -0.107, -0.14, -0.207, 0.211, 0.175, 0.714, 0, 0.286, -0.143, 0.018, 0.643, -0.036, 0.357, 0.071, 0.186, 0.104, -0.086, -0.611, -0.028, -0.025, 0.179, -0.032, 0.058, 0.04, -0.428, 0.447, 0.178, -0.061, 0.167, -0.071, 0.321, 0.082, 0.532, -0.22, 0.086, -0.107, 0.118, -0.139, 0.03, -0.228, 0.008, 0.178, -0.3, 0.018, -0.025, -0.329, 0.136, 0.304, 0.085, -0.014, 0.07, 0.136, -0.218, 0.071, -0.178, 0.012, 0.229, 0.268, -0.535, 0.164, -0.15, 0.097, 0.125, -0.536, 0.214, 0.222, -0.089, -0.121, -0.155, -0.286, -0.282, -0.443, 0.071, -0.05, -0.04, -0.075, -0.03, -0.357, -0.071, 0.641, 0.007, 0, 0.018, -0.573, 0.132, -0.33, -0.279, -0.639, -0.093, -0.5, -0.197, 0.303, 0.322, -0.071, -0.071, 0.165, 0, 0, 0, 0, 0.054, -0.321, 0.093, 0.268, -0.511, -0.3, 0.202, 0.328, -0.24, 0.871, -0.021, 0.211, 0.118, -0.157, -0.357, 0.107, 0, 0.072, -0.357, 0.003, 0.147, 0.057, -0.315, 0.053, 0.35, -0.107, 0.036, -0.143, 0.168, 0, 0.172, 0.321, 0.178, -0.526, -0.035, 0.247, 0.557, 0.168, 0.143, 0, -0.432, 0.072, -0.065, 1, 0, 0.179, 0.218, 0.196, -0.122, -0.457, 0.072, 0, 0.247, -0.296, -0.118, 0.107, 0.136, 0.029, -0.058, 0.25, 0.139, -0.057, 0.15, 0.042, -0.703, -0.018, -0.318, -0.011, -0.321, -0.6, -1.189, 0.225, -0.143, -0.112, 0.09, -0.071, -0.015, 0.828, 0.124, 0.582, 0.689, -0.107, 0.017, -0.15, 0.057, 0.143, 0.107, -0.204, -0.118, 0.021, 0.067, -0.035, -0.357, -1.015, -0.039, 0.046, -0.036, 0.072, 0.204, 0.05, -0.038, 0, 0.057, -0.05, 0.41, 0.143, -0.325, 0.332, -0.153, 0.157, -0.185, 0.206, -0.086, -0.204, 0, 0.271, -0.143, 0, -0.357, 0.218, 0.036, 0.179, -0.45, 0.072, 0.018, -0.259, 0, -0.53, -0.018, -0.054, 0.435, 0.378, 0.221, -0.921, -0.375, -0.54, 0.25, -0.16, 0, -0.007, -0.357, 0.204, 0.129, 0, -0.45, 0, 0, 0.571, 0.392, 0, -0.465, 0.072, 0.072, -0.257, -0.007, 0.039, 0, 0.299, -0.526, 0.268, -0.05, -0.45, 0.178, 0.025, 0.072, 0.107, 0.195, 0.089, 0.115, 0, 0.189, -0.036, -0.337, -0.45, -0.34, -0.065, 0.343, -0.071, 0.107, -0.111, 0, -0.411, -1.012, -0.108, -0.036, -0.036, 0.243, -0.118, 0.045, 0.018, -0.607, 0.196, -0.425, -0.174, 0.068, -0.886, -0.075, 0.143, 0.09, 0.482, -0.058, -0.2, 0.341, -0.014, 0.068, 0.107, 0.078, 0.107, -0.25, 0.382, -0.122, -0.466, -0.471, 0.046, 0.229, 0.329, 0.043, -0.207, 0.357, 0.029, 0.107, 0.286, 0, -0.15, -0.389, -0.261, -0.135, 1.028, 0.384, 0.136, -0.147, -0.143, 0.486, -0.075, -0.036, 0.04, -0.214, 0, 0.286, 0.071, 0.25, 0.115, 1, 7, 5, 1, 1, 1, 11, 8, 3, 11, 9, 4, 9, 2, 1, 1, 4, 2, 2, 4, 2, 1, 1, 6, 4, 4, 8, 1, 4, 1, 9, 1, 11, 9, 3, 10, 1, 4, 1, 5, 2, 1, 1, 1, 1, 3, 7, 11, 1, 1, 2, 1, 1, 2, 1, 1, 8, 2, 1, 1, 1, 1, 1, 10, 3, 4, 1, 10, 2, 1, 1, 6, 5, 1, 1, 11, 1, 11, 3, 1, 1, 2, 11, 2, 1, 6, 7, 1, 9, 1, 3, 8, 1, 1, 4, 2, 5, 2, 1, 1, 3, 1, 1, 1, 10, 5, 3, 1, 1, 11, 4, 1, 1, 10, 1, 1, 6, 2, 1, 1, 5, 1, 2, 4, 9, 1, 1, 5, 1, 1, 1, 1, 5, 1, 1, 11, 5, 1, 1, 1, 1, 1, 1, 2, 1, 10, 1, 1, 9, 9, 1, 11, 1, 1, 1, 4, 2, 3, 1, 11, 1, 4, 1, 1, 1, 5, 1, 1, 4, 1, 1, 1, 1, 8, 2, 1, 1, 1, 1, 1, 7, 2, 2, 2, 2, 1, 11, 1, 8, 1, 1, 8, 2, 1, 1, 5, 1, 5, 1, 1, 2, 10, 7, 8, 1, 9, 1, 5, 6, 9, 11, 2, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 11, 1, 1, 5, 5, 5, 11, 10, 3, 1, 8, 1, 1, 1, 6, 1, 1, 6, 1, 11, 1, 4, 1, 1, 8, 11, 8, 1, 3, 1, 1, 1, 1, 11, 11, 5, 9, 1, 1, 5, 5, 7, 11, 4, 3, 1, 10, 5, 8, 1, 1, 7, 1, 5, 1, 1, 1, 6, 5, 4, 1, 2, 1, 7, 1, 3, 7, 1, 8, 7, 1, 1, 2, 11, 1, 1, 1, 1, 1, 10, 1, 1, 1, 11, 3, 3, 1, 1, 9, 1, 1, 1, 11, 1, 11, 1, 1, 1, 11, 7, 1, 6, 1, 1, 1, 11, 10, 3, 4, 3, 4, 1, 1, 1, 11, 1, 8, 6, 1, 6, 5, 11, 1, 2, 1, 4, 1, 1, 1, 10, 1, 1, 6, 1, 1, 2, 1, 1, 1, 7, 2, 1, 8, 8, 1, 1, 1, 1, 5, 1, 11, 1, 1, 1, 9, 4, 1, 2, 2, 8, 1, 1, 6, 3, 1, 2, 1, 1, 1, 1, 1, 10, 9, 4, 1, 1, 6, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 10, 1, 6, 2, 1, 1, 1, 1, 1, 1, 1, 10, 10, 6, 11, 1, 1, 1, 1, 11, 1, 1, 1, 1, 2, 1, 1, 1, 7, 6, 1, 1, 1, 9, 1, 7, 11, 4, 1, 1, 1, 1, 8, 1, 1, 6, 1, 2, 1, 3, 1, 11, 1, 5, 1, 6, 1, 1, 11, 6, 1, 1, 1, 2, 1, 1, 2, 6, 7, 7, 1, 8, 3, 1, 1, 1, 7, 1, 1), .Dim = c(500L, 2L)) #Now perform the kruskalmc() test. require(pgirmess) kruskalmc(x[,1], x[,2]) #Multiple comparison test after Kruskal-Wallis #p.value: 0.05 #Comparisons # obs.dif critical.dif difference #1-2 8.4929415 82.16065 FALSE #1-3 2.6363784 104.15270 FALSE #1-4 22.5503277 102.13541 FALSE #1-5 13.2511610 100.24365 FALSE #1-6 0.8574104 108.62307 FALSE #[..........] #8-9 17.8228070 165.54197 FALSE #8-10 9.5230263 162.62538 FALSE #8-11 26.2159443 137.28174 FALSE #9-10 27.3458333 172.25281 FALSE #9-11 8.3931373 148.56074 FALSE #10-11 35.7389706 145.30369 FALSE require(agricolae) kruskal(x[,1], x[,2]) # [ ... ] #Means with the same letter are not significantly different #Groups, Treatments and mean of the ranks #a 11 304.4 #ab 9 296 #ab 7 286.6 #ab 8 278.2 #ab 10 268.7 #ab 2 250.6 #ab 6 242.9 #ab 1 242.1 #ab 3 239.4 #ab 5 228.8 #b 4 219.5 -- View this message in context: http://r.789695.n4.nabble.com/Multiple-Comparisons-Kruskal-Wallis-Test-kruskal-agricolae-and-kruskalmc-pgirmess-don-t-yield-the-sa-tp4639004.html Sent from the R help mailing list archive at Nabble.com.
peter dalgaard
2012-Aug-03 07:20 UTC
[R] Multiple Comparisons-Kruskal-Wallis-Test: kruskal{agricolae} and kruskalmc{pgirmess} don't yield the same results although they should do (?)
On Aug 3, 2012, at 07:42 , greatest.possible.newbie wrote:> I am doing multiple comparisons for data that is not normally distributed. > For this purpose I tried both functions kruskal{agricolae} and > kruskalmc{pgirmess}. It confuses me that these functions do not yield the > same results although they are doing the same thing, don't they? Can anyone > tell my why this happens and which function I can trust? > > kruskalmc() tells me that there are no differences between any of the groups > (i.e. the "difference" column of the results is filled only with FALSE). > kruskal() tells me that there are indeed differences (between group 4 and > 11).Trust nothing if you don't understand the issues involved. There's a reason that special code is required for multiple comparisons, and a rather complicated and inexact theory for dealing with it. There are special complications with rank tests because the standard theory assumes a global null (no group differences at all). One of the approaches is to perform the testing pairwise and adjust the p-values for multiple comparisons. Notice that the kruskal() function has a p.adj argument which defaults to "none"! -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com