TukeyHSD или glht в R, Анкова

Мне интересно, могу ли я использовать функцию "TukeyHSD" для выполнения всех парных сравнений модели "aov()" с одним фактором (например, GROUP) и одним непрерывным ковариатом (например, AGE). Я сделал например:

library(multcomp)
data('litter', package = 'multcomp')
litter.aov <- aov(weight ~ gesttime + dose, data = litter)
TukeyHSD(litter.aov, which = 'dose')

и я получаю предупреждающее сообщение, подобное этому: Предупреждающее сообщение: В репликациях (вставка ("~", xx), data = mf): игнорируется без учета факторов: gesttime

Является ли этот процесс выше правильным? В чем смысл предупреждающего сообщения? И относится ли TukeyHSD к сильно несбалансированным конструкциям?

Кроме того, есть ли разница между процессами выше и ниже?

litter.mc <- glht(litter.aov, linfct = mcp(dose = 'Tukey'))
summary(litter.mc)

Бест, Сью

2 ответа

Я знаю, что это старая тема, но я не уверен, что существующие ответы верны...

Я пробовал обе функции со своими собственными данными, и у меня ситуация аналогична Sue, где TukeyHSD выдает предупреждающее сообщение об игнорировании нефакторных ковариат, а glht() - нет.

Не похоже, что они делают то же самое вопреки другому ответу. Результаты разные, и похоже, что TukeyHSD не маргинализируется по нефакторным ковариатам (как указано в предупреждении). Похоже, что glht() правильно использует среднее значение нефакторных ковариат для вычисления предельного среднего значения групп, представляющих интерес, поскольку точечные оценки совпадают с оценками, полученными с помощью lsmeans().

Таким образом, не похоже, что TukeyHSD слишком осторожен, просто кажется, что он не может обрабатывать нефакторные ковариаты, в то время как glht может. Так что glht кажется мне правильной функцией в этом случае.

Там нет разницы. TukeyHSD() чуть больше хочет рассказать вам о потенциальных проблемах. Обратите внимание, что это предупреждающее сообщение, а не ошибка, означающее, что результаты могут быть не такими, как вы ожидаете, но они все равно будут возвращены, чтобы вы могли судить сами.

Что касается того, что это означает, это означает, что это говорит: нефакторные переменные игнорируются. Помните, что вы сравниваете различия между группами, и группировка выполняется с использованием факторов, поэтому все факторы TukeyHSD() заботиться о. В вашем случае вы явно указываете функции заботиться только о dose, что является фактором, поэтому предупреждение может рассматриваться как чрезмерно осторожное.

Одним из способов избежать предупреждения будет преобразование gesttime в фактор, и так как он состоит только из четырех уровней, имеет смысл сделать это.

data('litter', package = 'multcomp')
litter$gesttime <- as.factor(litter$gesttime)
litter.aov <- aov(weight ~ gesttime + dose, data = litter)

TukeyHSD(litter.aov, which = 'dose')
Другие вопросы по тегам