Robię w jedną stronę ANOVA za pomocą rstatix i chcesz umieścić znaczące wartości testów par (przy użyciu {x1}}) na moją działkę.

Jednak wyjście z emmeans_test rederwers moich czynników. Więc wartości istotności nie są poprawnie umieszczane na odpowiednich paskach.

Oto przykładowe dane:

library(rstatix)
library(ggpubr)
library(dplyr)

#dataframe
ER <- read.table(header=TRUE, text="
  Sex  Group ER
  M    V     1046
  M    V     1290
  M    Z     1202
  M    Z     1056
  F    V     8000
  F    V     7859
  F    Z     4000
  F    Z     3409
")

ER <- ER %>%
  set_ref_level("Sex", ref = "M") #set males as my reference


ER$Sex pokazuje moje czynniki we właściwej kolejności, najpierw mężczyźni

Jednak po tym, jak robię emmeans_test zmiany wyjścia. Może w porządku alfabetycznym?

res.aov <- ER %>% anova_test(ER ~ Sex * Group)
res.aov

pwc <- ER %>% 
  group_by(Sex) %>%
  emmeans_test(ER ~ Group, p.adjust.method = "bonferroni") #output now has females first. 

pwc

Próbowałem określić zamówienie, w sposób, w jaki chcę, aby być na działce, najpierw mężczyźni, potem samic, ostatnie kobiety + t. robienie tego nie zmienia nic.

pwc1 <- pwc[c(2,1),]
pwc1

#plot data 
e <- ggboxplot(ER, x = "Sex", y = "ER", color = "Group",
               palette = "jco")
print(e)

pwc1 <- pwc1 %>% add_xy_position(x = "Sex")

e + stat_pvalue_manual(pwc1) + labs(subtitle = get_test_label(res.aov, detailed = TRUE),
    caption = get_pwc_label(pwc1))

Moja fabuła jest we właściwej kolejności (samce, samice), ale wartości znaczenia są przełączane. Daj mi znać, czego brakuje! Szukałem poprawki online przez wiele dni i próbowałem z niego żadnego korzystania z różnych rzeczy.

(Dziękuję z góry, a także jestem r noob, więc przepraszam, jeśli popełniłem błąd w kodzie / post powyżej)

1
Laura Cortes 5 październik 2020, 23:20

1 odpowiedź

Najlepsza odpowiedź

Nie jestem bardzo zaznajomiony z pakietem rstatix i ggpubr. Jednakże, jak wyobrażasz sobie z siebie, po wykonaniu emmeans_test kolejność zmiennej Sex zostaje utracona, tj. Zostaje przekształcona na postać, a tym samym otrzymasz kolejność alfabetyczną. Rozwiązaniem tego problemu jest przekonwertowanie Sex w danych pwc z powrotem do współczynnika i ustaw poziomy w zestawie danych ER przy użyciu factor(Sex, levels = levels(ER$Sex)):

library(rstatix)
library(ggpubr)
library(dplyr)

#dataframe
ER <- read.table(header=TRUE, text="
  Sex  Group ER
  M    V     1046
  M    V     1290
  M    Z     1202
  M    Z     1056
  F    V     8000
  F    V     7859
  F    Z     4000
  F    Z     3409
")

ER <- ER %>%
  mutate(Sex = factor(Sex)) %>% 
  set_ref_level("Sex", ref = "M") #set males as my reference

res.aov <- ER %>% 
  anova_test(ER ~ Sex * Group)
#> Coefficient covariances computed by hccm()

pwc <- ER %>% 
  group_by(Sex) %>%
  emmeans_test(ER ~ Group, p.adjust.method = "bonferroni") %>% #output now has females first.
  # Set levels of Sex as in your ER dataset
  mutate(Sex = factor(Sex, levels = levels(ER$Sex)))

pwc1 <- pwc[c(2,1),]

#plot data 
e <- ggboxplot(ER, x = "Sex", y = "ER", color = "Group",
               palette = "jco")

pwc1 <- pwc1 %>% add_xy_position(x = "Sex")

e + stat_pvalue_manual(pwc1) + 
  labs(subtitle = get_test_label(res.aov, detailed = TRUE),
       caption = get_pwc_label(pwc1))

0
stefan 6 październik 2020, 20:34