Answers.Body: <p>The lower graph doesn't look good. The "Wilcoxan values" are all identical and I can't see how if all pairwise comparisons were 0.46 that would result in a KW of &lt;&lt;0.001. The way the values hold together in the upper graph looks fine. </p>
  
  <p>Just to summarise </p>
  
  <ul>
  <li>KW = 1 way ANOVA ... non-parametric version</li>
  <li>Wilcoxan = T test ... non-parametric version</li>
  </ul>
  
  <p>Looking at your code you specify the pairwise comparisons but then in the ggplot2 code you state <code>method = "kruskal.test"</code> ... are you sure that isn't <code>method = "wilcoxan.test"</code>? </p>
  
  <p>KW will want to perform a global comparison across multiple single columns of data and this might have resulted in some sort of weird mean value being generated, because it will just want to output a single value (my bet is that is why all values are identical). Wilcoxan will be expecting to a request to perform pairwise tests.</p>
  
  <hr>
  
  <p>Okay my advice is to perform an independent Wilcoxan test outside of ggpubr</p>
  
  <pre><code>wtest &lt;- wilcox.test(mCMP ~ mHSC, data = df1, paired = TRUE)
  wtest
  </code></pre>
  
  <p><strong>Output</strong>
      Wilcoxon signed rank test
  data:  weight by group
  .....</p>
  
  <pre><code>wtest$p.value
  </code></pre>
  
  <p><strong>Output</strong>
  p value</p>
  
  <p>I would then simply remove the calculation from with the boxplot and present the p values independently. <em>The only other possibility is whether the data is paired or not and you may have changed that setting between calculations</em>. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-01T07:57:25.077Z
Answers.Text: "method = "kruskal.test"  are you sure that isn't method = "wilcoxan.test" i read in the ggpubr you can specify the method with argument "kruskal.test" ,by default it does wilcox test."Wouldn't you simply perform pairwise T-test" well the data doesn;t come from normal distribution so i didn't perform t-test . KW test because i have more than two comparison ."KW will want to perform a global comparison across multiple single columns of data,this might have resulted in some sort of weird mean value being generated, we will get reviewers comment why wilcox test because of the number of sample.
Answers.UserDisplayName: kcm
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-01T16:33:11.853Z
Answers.Text: Trouble shooting described below. This isn't a biggy.
Answers.UserDisplayName: M__
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-01T16:58:15.947Z
Answers.Text: will use it as you mentioned but a bit of doubt "imply remove the calculation from with the boxplot and present the p values independently" so this is acceptable in publications i have seen though. But if i get it its better to do a pairwise Wilcox rather KW global test even though im going for multiple comparison
Answers.UserDisplayName: kcm
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-03T05:26:18.007Z
Answers.Text: right i ran into this error "Error in wilcox.test.formula((mHSC ~ mCMP), data = df1, paired = TRUE) : 
    grouping factor must have exactly 2 levels"
Answers.UserDisplayName: kcm
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-03T06:16:32.220Z
Answers.Text: this works "wtest <- wilcox.test(df1$mHSC , df1$mCMP, paired = TRUE)"
Answers.UserDisplayName: kcm
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-03T12:46:04.943Z
Answers.Text: Cool, and now you've mentioned it, this makes sense using dataframe.column format.
Answers.UserDisplayName: M__
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-01T04:50:17.967Z
Answers.LastActivityDate: 2019-06-01T16:47:34.977Z
Answers.LastEditDate: 2019-06-01T16:47:34.977Z
Answers.UserDisplayName: M__
Body: <p>I have bit of confusion regarding how ggpubr has implemented the KW and wilcox.test. By default usage of ggpubr reports p value for wilcox.test() but when it comes to Kruskal–Walis it is different .</p>
  
  <p>But as i have to compare more that two groups im opting for Kruskal–Wallis so now the confusion is i get a p value which is significant but if i do the test independently then the p value is not significant not sure why is that 
  I have asked similar question <a href="https://bioinformatics.stackexchange.com/questions/6739/kruskal-wallis-rank-sum-test-output-confusion">old question</a></p>
  
  <p>My data </p>
  
  <pre><code>dput(df1)
  structure(list(mHSC = c(7.7559725, 3.307901197229, 7.91049997141824, 
  10.9659075, 5.66225942792448, 9.40594075, 8.03212169895329, 10.929870369027, 
  9.80897606357472, 4.29298594445745, 8.58579242742772, 12.0936123426199, 
  8.61371460307564, 11.0174749823542, 10.5147718423478, 5.53565725, 
  8.12612925, 10.6881344317581, 8.48826962785442, 5.52294757621421, 
  8.38046925, 9.44552809599148, 9.19142493299942, 7.03072998196466, 
  8.88679975, 0.3126697975, 10.4907798679713, 7.864884, 12.7182883447252, 
  6.3180225, 5.87640020441158, 7.87333318550091, 8.15221192095875, 
  4.51086624773858, 5.957332, 6.90057575, 5.64708909092112, 10.7124580115802, 
  9.82466018308675, 8.49078, 8.63046025, 6.96721675, 7.57871225, 
  8.815752, 6.72449933154642, 10.7951750189282, 8.01780331997795, 
  6.07469990935439, 8.31037653431384, 9.60791091202699, 7.11738304581177, 
  6.27364283988744, 10.8712275, 4.76963356477331, 8.22113922937348, 
  4.68111125, 7.81847825, 8.4123615, 7.1236546846872, 5.5773485, 
  10.72958, 7.716703, 7.606539, 9.3070835272045, 7.75540042667672, 
  9.8687305, 8.98201221147182, 8.93182675, 10.868215, 10.8990875, 
  10.9377104128057, 8.60048104950787, 7.81762687302046, 9.24377416902964, 
  6.57057975, 7.52549392459474, 5.9971085, 10.7335671888057), mCMP = c(8.08511525, 
  3.15081874988432, 8.21803244045432, 12.7012625, 6.95234868015311, 
  10.24927775, 8.02201688082928, 11.1415993774267, 8.6576364168622, 
  4.33979841956685, 9.20120340882164, 12.6360469440726, 8.82394480426142, 
  11.7614369660881, 10.518813583537, 5.9224525, 8.3939755, 10.9519826793289, 
  9.07562352307607, 4.68003855905254, 8.7914695, 9.35721245249627, 
  9.52072790562384, 7.52153767036027, 9.37291475, 5.323077, 11.316187036788, 
  8.08079325, 12.9250246147509, 6.3281185, 6.36628784788811, 8.26354221670866, 
  8.80757801591239, 5.08139074215397, 6.6258195, 7.56676875, 6.30618317691088, 
  12.8268812686057, 10.4361513118013, 9.12211125, 8.94618675, 7.25775925, 
  8.7313635, 9.8282665, 7.10318403743241, 10.9016853993601, 8.75786307748107, 
  6.2613305781586, 7.24503928286349, 10.1900260653741, 6.04352467875968, 
  5.41919427988363, 11.689205, 5.2447156735349, 7.81023802636728, 
  5.484589, 7.9321635, 8.8598865, 7.26208235921707, 11.7873, 11.256575, 
  8.574748, 8.3324525, 9.69726624009281, 8.51491553090231, 10.792235, 
  9.97113940283311, 10.08911925, 11.867595, 11.8185525, 11.9422571106972, 
  9.19311951548278, 8.61818925695215, 9.34701182556221, 7.063838, 
  7.41275116679947, 6.84360325, 10.478012600725), mGMP = c(8.07654075, 
  3.12607874540186, 7.91384610943697, 12.9717825, 6.533351883655, 
  10.394515, 8.26093661667729, 11.2346407524235, 11.1019372952288, 
  4.34824706553879, 9.19896153987714, 12.6475029547774, 8.53466968298702, 
  11.6750087661439, 10.7705094222618, 5.60385575, 8.32733375, 10.6929416341222, 
  8.85393492258581, 4.40609754458633, 9.2379455, 9.43854664655775, 
  9.66597253836355, 7.99640783151295, 9.60382225, 0.40676415, 11.3480173068737, 
  8.2298565, 13.3988341481968, 5.2305385, 6.12320931339542, 8.16212407932226, 
  8.98321413854527, 5.21894298832466, 6.88443175, 7.9935035, 6.66952804861909, 
  11.3240966560241, 10.795029283416, 8.830129, 8.58251875, 7.6113605, 
  8.508246, 9.63661975, 6.87344684043907, 11.2237814311451, 9.43948359781618, 
  6.10350570815157, 8.37769527299503, 9.98272594007505, 7.15195399920282, 
  5.48458261850125, 11.8302525, 5.66643624946888, 8.36658108147322, 
  5.9928725, 8.56603575, 9.670526, 7.70714893990735, 9.552538, 
  11.5112725, 8.99551975, 9.504391, 9.76913665769114, 8.58112436662299, 
  11.2680775, 10.5535730280208, 10.226635, 11.9211375, 12.0610625, 
  12.3249064903557, 9.52625419135532, 8.66295412469679, 10.0469451814325, 
  7.700204, 7.44384030300093, 7.40615025, 10.222430040369), mMono = c(6.86074675, 
  0.899186661852538, 5.72102113412742, 11.0054, 5.22275722758541, 
  8.56569375, 7.25543228485158, 9.37557140457706, 7.92766781596895, 
  1.22333714157354, 7.54589243251616, 11.0881258432345, 7.91303390155615, 
  10.3482735440588, 7.2731491579751, 3.10091425, 6.91085225, 9.03107467062931, 
  7.91879733419338, 2.71978845710368, 8.31396425, 6.89137159431571, 
  8.68813944060236, 6.65073272892769, 8.41960525, 0.283334725, 
  10.0529313221945, 6.7606855, 11.6800576702458, 3.6173355, 3.81146596960356, 
  6.93219836413735, 7.92727013246883, 4.09314670396697, 5.78634575, 
  6.55346475, 5.05937426539404, 10.0514401266737, 9.21573912287031, 
  7.80863325, 7.80450125, 5.96109, 6.07350675, 7.14264825, 5.20991063841094, 
  8.9541923959891, 5.48494732937368, 3.46755807112085, 5.91011468781522, 
  6.19799161521768, 4.09986325310833, 1.58331376348435, 11.021745, 
  4.62557956951436, 7.48457597125806, 4.9819695, 7.567706, 8.547291, 
  7.13353425765299, 9.4336955, 10.6991475, 7.3555725, 8.32300975, 
  9.14731426222114, 8.2750379299376, 10.85821, 9.63317457338075, 
  9.6021585, 11.4682025, 11.4990425, 11.4153866521691, 9.02074441245752, 
  7.96069342402473, 9.45598020603536, 6.462563, 6.78696488936524, 
  5.50898575, 8.79251593030914)), class = "data.frame", row.names = c(NA, 
  -78L))
  </code></pre>
  
  <p>Code for the first figure with wilcox test and KW as argument </p>
  
  <pre><code>  head(df1)
  
  ex &lt;- melt(df1, id.vars=c(NULL))
  
  head(ex)
  my_comparisons &lt;- list( c("mHSC","mCMP"),c("mCMP","mGMP"),c("mGMP","mMono"),c("mHSC","mMono"),c("mHSC","mGMP"))
  
  head(ex)
  
  
  
  ggboxplot(ex, x = "variable", y = "value",ggtheme = theme_bw(base_size = 30),
            color = "variable", palette = "jco", add = "jitter")+ 
    stat_compare_means(comparisons = my_comparisons,method = "kruskal.test")+ # Add pairwise comparisons p-value
    stat_compare_means(label.y = 50)     # Add global p-value
  </code></pre>
  
  <p><a href="https://i.sstatic.net/NzN1U.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/NzN1U.jpg" alt="Global KW p value"></a></p>
  
  <p>New figure <a href="https://i.sstatic.net/kV7AV.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/kV7AV.jpg" alt="KW test with same global KW value"></a></p>
  
  <p>The one im not able to get is in the first figure even with Wilcox and KW as argument the global p value for KW doesn't change where as the KW p value for comparison gives p value which is not significant .</p>
  
  <p>Am i doing it correctly ?</p>
  
Tags: <r>
Title: Kruskal–Wallis and wilcox.test choice of test for expression data
ThreadText: # Kruskal–Wallis and wilcox.test choice of test for expression data
  
  (Asked by: username_0 on 2019-05-31)
  
  I have bit of confusion regarding how ggpubr has implemented the KW and wilcox.test. By default usage of ggpubr reports p value for wilcox.test() but when it comes to Kruskal–Walis it is different .
  
  But as i have to compare more that two groups im opting for Kruskal–Wallis so now the confusion is i get a p value which is significant but if i do the test independently then the p value is not significant not sure why is that
  I have asked similar question [old question](https://bioinformatics.stackexchange.com/questions/6739/kruskal-wallis-rank-sum-test-output-confusion)
  
  My data
  
  ```
  dput(df1)
  structure(list(mHSC = c(7.7559725, 3.307901197229, 7.91049997141824, 
  10.9659075, 5.66225942792448, 9.40594075, 8.03212169895329, 10.929870369027, 
  9.80897606357472, 4.29298594445745, 8.58579242742772, 12.0936123426199, 
  8.61371460307564, 11.0174749823542, 10.5147718423478, 5.53565725, 
  8.12612925, 10.6881344317581, 8.48826962785442, 5.52294757621421, 
  8.38046925, 9.44552809599148, 9.19142493299942, 7.03072998196466, 
  8.88679975, 0.3126697975, 10.4907798679713, 7.864884, 12.7182883447252, 
  6.3180225, 5.87640020441158, 7.87333318550091, 8.15221192095875, 
  4.51086624773858, 5.957332, 6.90057575, 5.64708909092112, 10.7124580115802, 
  9.82466018308675, 8.49078, 8.63046025, 6.96721675, 7.57871225, 
  8.815752, 6.72449933154642, 10.7951750189282, 8.01780331997795, 
  6.07469990935439, 8.31037653431384, 9.60791091202699, 7.11738304581177, 
  6.27364283988744, 10.8712275, 4.76963356477331, 8.22113922937348, 
  4.68111125, 7.81847825, 8.4123615, 7.1236546846872, 5.5773485, 
  10.72958, 7.716703, 7.606539, 9.3070835272045, 7.75540042667672, 
  9.8687305, 8.98201221147182, 8.93182675, 10.868215, 10.8990875, 
  10.9377104128057, 8.60048104950787, 7.81762687302046, 9.24377416902964, 
  6.57057975, 7.52549392459474, 5.9971085, 10.7335671888057), mCMP = c(8.08511525, 
  3.15081874988432, 8.21803244045432, 12.7012625, 6.95234868015311, 
  10.24927775, 8.02201688082928, 11.1415993774267, 8.6576364168622, 
  4.33979841956685, 9.20120340882164, 12.6360469440726, 8.82394480426142, 
  11.7614369660881, 10.518813583537, 5.9224525, 8.3939755, 10.9519826793289, 
  9.07562352307607, 4.68003855905254, 8.7914695, 9.35721245249627, 
  9.52072790562384, 7.52153767036027, 9.37291475, 5.323077, 11.316187036788, 
  8.08079325, 12.9250246147509, 6.3281185, 6.36628784788811, 8.26354221670866, 
  8.80757801591239, 5.08139074215397, 6.6258195, 7.56676875, 6.30618317691088, 
  12.8268812686057, 10.4361513118013, 9.12211125, 8.94618675, 7.25775925, 
  8.7313635, 9.8282665, 7.10318403743241, 10.9016853993601, 8.75786307748107, 
  6.2613305781586, 7.24503928286349, 10.1900260653741, 6.04352467875968, 
  5.41919427988363, 11.689205, 5.2447156735349, 7.81023802636728, 
  5.484589, 7.9321635, 8.8598865, 7.26208235921707, 11.7873, 11.256575, 
  8.574748, 8.3324525, 9.69726624009281, 8.51491553090231, 10.792235, 
  9.97113940283311, 10.08911925, 11.867595, 11.8185525, 11.9422571106972, 
  9.19311951548278, 8.61818925695215, 9.34701182556221, 7.063838, 
  7.41275116679947, 6.84360325, 10.478012600725), mGMP = c(8.07654075, 
  3.12607874540186, 7.91384610943697, 12.9717825, 6.533351883655, 
  10.394515, 8.26093661667729, 11.2346407524235, 11.1019372952288, 
  4.34824706553879, 9.19896153987714, 12.6475029547774, 8.53466968298702, 
  11.6750087661439, 10.7705094222618, 5.60385575, 8.32733375, 10.6929416341222, 
  8.85393492258581, 4.40609754458633, 9.2379455, 9.43854664655775, 
  9.66597253836355, 7.99640783151295, 9.60382225, 0.40676415, 11.3480173068737, 
  8.2298565, 13.3988341481968, 5.2305385, 6.12320931339542, 8.16212407932226, 
  8.98321413854527, 5.21894298832466, 6.88443175, 7.9935035, 6.66952804861909, 
  11.3240966560241, 10.795029283416, 8.830129, 8.58251875, 7.6113605, 
  8.508246, 9.63661975, 6.87344684043907, 11.2237814311451, 9.43948359781618, 
  6.10350570815157, 8.37769527299503, 9.98272594007505, 7.15195399920282, 
  5.48458261850125, 11.8302525, 5.66643624946888, 8.36658108147322, 
  5.9928725, 8.56603575, 9.670526, 7.70714893990735, 9.552538, 
  11.5112725, 8.99551975, 9.504391, 9.76913665769114, 8.58112436662299, 
  11.2680775, 10.5535730280208, 10.226635, 11.9211375, 12.0610625, 
  12.3249064903557, 9.52625419135532, 8.66295412469679, 10.0469451814325, 
  7.700204, 7.44384030300093, 7.40615025, 10.222430040369), mMono = c(6.86074675, 
  0.899186661852538, 5.72102113412742, 11.0054, 5.22275722758541, 
  8.56569375, 7.25543228485158, 9.37557140457706, 7.92766781596895, 
  1.22333714157354, 7.54589243251616, 11.0881258432345, 7.91303390155615, 
  10.3482735440588, 7.2731491579751, 3.10091425, 6.91085225, 9.03107467062931, 
  7.91879733419338, 2.71978845710368, 8.31396425, 6.89137159431571, 
  8.68813944060236, 6.65073272892769, 8.41960525, 0.283334725, 
  10.0529313221945, 6.7606855, 11.6800576702458, 3.6173355, 3.81146596960356, 
  6.93219836413735, 7.92727013246883, 4.09314670396697, 5.78634575, 
  6.55346475, 5.05937426539404, 10.0514401266737, 9.21573912287031, 
  7.80863325, 7.80450125, 5.96109, 6.07350675, 7.14264825, 5.20991063841094, 
  8.9541923959891, 5.48494732937368, 3.46755807112085, 5.91011468781522, 
  6.19799161521768, 4.09986325310833, 1.58331376348435, 11.021745, 
  4.62557956951436, 7.48457597125806, 4.9819695, 7.567706, 8.547291, 
  7.13353425765299, 9.4336955, 10.6991475, 7.3555725, 8.32300975, 
  9.14731426222114, 8.2750379299376, 10.85821, 9.63317457338075, 
  9.6021585, 11.4682025, 11.4990425, 11.4153866521691, 9.02074441245752, 
  7.96069342402473, 9.45598020603536, 6.462563, 6.78696488936524, 
  5.50898575, 8.79251593030914)), class = "data.frame", row.names = c(NA, 
  -78L))
  
  ```
  
  Code for the first figure with wilcox test and KW as argument
  
  ```
    head(df1)
  
  ex <- melt(df1, id.vars=c(NULL))
  
  head(ex)
  my_comparisons <- list( c("mHSC","mCMP"),c("mCMP","mGMP"),c("mGMP","mMono"),c("mHSC","mMono"),c("mHSC","mGMP"))
  
  head(ex)
  
  ggboxplot(ex, x = "variable", y = "value",ggtheme = theme_bw(base_size = 30),
            color = "variable", palette = "jco", add = "jitter")+ 
    stat_compare_means(comparisons = my_comparisons,method = "kruskal.test")+ # Add pairwise comparisons p-value
    stat_compare_means(label.y = 50)     # Add global p-value
  
  ```
  
  [![Global KW p value](https://i.sstatic.net/NzN1U.jpg)](https://i.sstatic.net/NzN1U.jpg)
  
  New figure [![KW test with same global KW value](https://i.sstatic.net/kV7AV.jpg)](https://i.sstatic.net/kV7AV.jpg)
  
  The one im not able to get is in the first figure even with Wilcox and KW as argument the global p value for KW doesn't change where as the KW p value for comparison gives p value which is not significant .
  
  Am i doing it correctly ?
  
  **Tags:** r
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2019-06-01. Score: 1 | Accepted answer
  
  The lower graph doesn't look good. The "Wilcoxan values" are all identical and I can't see how if all pairwise comparisons were 0.46 that would result in a KW of <<0.001. The way the values hold together in the upper graph looks fine.
  
  Just to summarise
  
  * KW = 1 way ANOVA ... non-parametric version
  * Wilcoxan = T test ... non-parametric version
  
  Looking at your code you specify the pairwise comparisons but then in the ggplot2 code you state `method = "kruskal.test"` ... are you sure that isn't `method = "wilcoxan.test"`?
  
  KW will want to perform a global comparison across multiple single columns of data and this might have resulted in some sort of weird mean value being generated, because it will just want to output a single value (my bet is that is why all values are identical). Wilcoxan will be expecting to a request to perform pairwise tests.
  
  ---
  
  Okay my advice is to perform an independent Wilcoxan test outside of ggpubr
  
  ```
  wtest <- wilcox.test(mCMP ~ mHSC, data = df1, paired = TRUE)
  wtest
  
  ```
  
  **Output**
  Wilcoxon signed rank test
  data: weight by group
  .....
  
  ```
  wtest$p.value
  
  ```
  
  **Output**
  p value
  
  I would then simply remove the calculation from with the boxplot and present the p values independently. *The only other possibility is whether the data is paired or not and you may have changed that setting between calculations*.
  
  > **Comments:**
  > **username_0**: "method = "kruskal.test"  are you sure that isn't method = "wilcoxan.test" i read in the ggpubr you can specify the method with argument "kruskal.test" ,by default it does wilcox test."Wouldn't you simply perform pairwise T-test" well the data doesn;t come from normal distribution so i didn't perform t-test . KW test because i have more than two comparison ."KW will want to perform a global comparison across multiple single columns of data,this might have resulted in some sort of weird mean value being generated, we will get reviewers comment why wilcox test because of the number of sample.  
  > **username_1**: Trouble shooting described below. This isn't a biggy.  
  > **username_0**: will use it as you mentioned but a bit of doubt "imply remove the calculation from with the boxplot and present the p values independently" so this is acceptable in publications i have seen though. But if i get it its better to do a pairwise Wilcox rather KW global test even though im going for multiple comparison  
  > **username_0**: right i ran into this error "Error in wilcox.test.formula((mHSC ~ mCMP), data = df1, paired = TRUE) :    grouping factor must have exactly 2 levels"  
  > **username_0**: this works "wtest <- wilcox.test(df1$mHSC , df1$mCMP, paired = TRUE)"  
  > **username_1**: Cool, and now you've mentioned it, this makes sense using dataframe.column format.  
  
  ---
  
  