Я пытаюсь понять, как реализовать одновременный вывод для обобщенных линейных моделей с помощью функции multcomp :: glht (). В частности, я хотел бы провести полный анализ Тьюки для примера двустороннего ANOVA из здесь . Они проводят postho c анализ Тьюки для модели с взаимодействием.
mod <- lm(breaks ~ wool * tension, data = warpbreaks)
- шерсть - это двухуровневый фактор (A, B)
- натяжение - трехуровневый фактор (L, M, H)
В примере виньетки они проверяют разницу в средних значениях уровней натяжения на каждом уровне шерсти. Однако мне интересно научиться искать различия между всеми возможными комбинациями уровней. Следуя примеру, с таким кодом:
tmp <- expand.grid(tension = unique(warpbreaks$tension),
wool = unique(warpbreaks$wool))
X <- model.matrix(~ wool * tension, data = tmp)
glht(mod, linfct = X)
Tukey <- contrMat(table(warpbreaks$tension), "Tukey")
K1 <- cbind(Tukey, matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)))
rownames(K1) <- paste(levels(warpbreaks$wool)[1], rownames(K1), sep = ":")
K2 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$wool)[2], rownames(K2), sep = ":")
K <- rbind(K1, K2)
colnames(K) <- c(colnames(Tukey), colnames(Tukey))
summary(glht(mod, linfct = K %*% X))
они получат что-то вроде следующего:
Simultaneous Tests for General Linear Hypotheses
Fit: lm(formula = breaks ~ wool * tension, data = warpbreaks)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
A:M - L == 0 -20.5556 5.1573 -3.986 0.00131 **
A:H - L == 0 -20.0000 5.1573 -3.878 0.00187 **
A:H - M == 0 0.5556 5.1573 0.108 0.99996
B:M - L == 0 0.5556 5.1573 0.108 0.99996
B:H - L == 0 -9.4444 5.1573 -1.831 0.30795
B:H - M == 0 -10.0000 5.1573 -1.939 0.25535
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Итак, как мне получить правильную матрицу контрастности, чтобы я делал сравнения вроде :
- A: M - B: M == 0
- A: M - B: H == 0
Я знаю, как контраст матрица K должна быть, чтобы я мог разобраться вручную. Однако это всего лишь пример для ознакомления с пакетом. Мой настоящий ANOVA имеет 5-уровневый фактор и еще 10-уровневый фактор, поэтому выполнение его вручную было бы такой болью. Спасибо