Письма группы Games-Howell post hoc в R
Я использую sweetpotato database
включен в library agricolae
R:
data (sweetpotato) Этот набор данных содержит две переменные: yield(непрерывная переменная) и вирус (факторная переменная).
Из-за значимости теста Левена я не могу предположить однородность отклонений, и я применяю тест Уэлча в R вместо одностороннего ANOVA, за которым следует постхок Тьюки.
Тем не менее, проблемы возникают, когда я применяю posthoc test. В тесте Tukey posthoc я использую library(agricolae)
и отображает надстрочные буквы между вирусными группами. Поэтому проблем нет.
Тем не менее, для выполнения Games-Howell posthoc я использую library(userfriendlyscience)
и я получаю вывод Games-Howell, но для меня невозможно получить сопоставление букв верхнего индекса между вирусными группами, как это получается через library(agricolae)
,
Используемый код был следующим:
библиотека (userfriendlyscience)
Данные (батат)
oneway <-oneway (sweetpotato $ virus, y = sweetpotato $ yield, posthoc = 'games-howell')
в одну сторону
Я пытаюсь с cld()
импортировать ранее library(multcompView)
но не работает.
Может кто-нибудь мог мне помочь?
Заранее спасибо.
1 ответ
Эта функциональность не существует в userfriendlyscience
в данный момент. Вы можете увидеть, какие средства отличаются, и с какими p-значениями, посмотрев на имена строк в кадре данных с результатами теста post-hoc. Я не уверен, какой пакет содержит sweetpotato
набор данных, но с использованием ChickWeight
набор данных, который поставляется с R (и используется на oneway
страница справочника):
oneway(y=ChickWeight$weight, x=ChickWeight$Diet, posthoc='games-howell');
Урожайность:
### (First bit removed as it's not relevant.)
### Post hoc test: games-howell
diff ci.lo ci.hi t df p
2-1 19.97 0.36 39.58 2.64 201.38 .044
3-1 40.30 17.54 63.07 4.59 175.92 <.001
4-1 32.62 13.45 51.78 4.41 203.16 <.001
3-2 20.33 -6.20 46.87 1.98 229.94 .197
4-2 12.65 -10.91 36.20 1.39 235.88 .507
4-3 -7.69 -33.90 18.52 0.76 226.16 .873
Первые три строки сравнивают группы 2, 3 и 4 с 1: использование альфа = 0,05, 1 и 2 имеют те же значения, но 3 и 4 выше. Это позволяет вам вычислить логический вектор, который вам нужен для multCompLetters
в multcompView
, На основе примера со страницы руководства на ?multcompView
:
### Run oneway anova and store result in object 'res'
res <- oneway(y=ChickWeight$weight, x=ChickWeight$Diet, posthoc='games-howell');
### Extract dataframe with post hoc test results,
### and overwrite object 'res'
res <- res$intermediate$posthoc;
### Extract p-values and comparison 'names'
pValues <- res$p;
### Create logical vector, assuming alpha of .05
dif3 <- pValues > .05;
### Assign names (row names of post hoc test dataframe)
names(dif3) <- row.names(res);
### convert this vector to the letters to compare
### the group means (see `?multcompView` for the
### references for the algorithm):
multcompLetters(dif3);
Это приводит к окончательному результату:
2 3 4 1
"a" "b" "c" "abc"
Это то, что тебе нужно, верно?
Я добавил эту функциональность в userfriendlyscience
, но пройдет некоторое время, прежде чем эта новая версия появится на CRAN. Тем временем вы можете получить исходный код этого обновления по адресу https://github.com/Matherion/userfriendlyscience/blob/master/R/oneway.R если хотите (нажмите кнопку "raw", чтобы получить простой скачать версию исходного кода).
Обратите внимание, что если вам нужна эта обновленная версия, вам нужно установить параметр posthocLetters
в TRUE
, потому что это FALSE
по умолчанию. Например:
oneway(y=ChickWeight$weight,
x=ChickWeight$Diet,
posthoc='games-howell',
posthocLetters=TRUE);
Не должно бытьdif3 <- pValues < .05
, вместо dif3 <- pValues > .05
?
Таким образом, буквы будут одинаковыми, если распределение "одинаковое" (это не доказательство того, что они разные).
Пожалуйста, поправьте меня, если я неправильно понимаю.