wt=α+b1age+b2gender+b3age∗gender+ϵ
∂wt∂gender=b2+b3age
gender=0age=0gender=1age=1gender=0age=1gender=1age=0
wt=α+b1young.male+b2old.male+b3young.female+ϵ
old.femaleb1old.femaleyoung.maleαwtold.female
…
Таким образом, приведенные выше примеры являются слишком сложным способом прийти к такому выводу (что мы на самом деле просто сравниваем четыре групповых значения), но для изучения того, как работают взаимодействия, я думаю, что это полезное упражнение. В CV есть и другие очень хорошие посты о взаимодействии непрерывной переменной с номинальной переменной или взаимодействии двух непрерывных переменных. Даже если ваш вопрос был отредактирован для указания непараметрических тестов, я думаю, что полезно продумать вашу проблему с помощью более традиционного (то есть параметрического) подхода, поскольку большинство непараметрических подходов к проверке гипотез имеют ту же логику, но обычно меньше предположений о конкретных распределениях.
wt
old.menyoung.women
Коротко об «значительных» взаимодействиях
x1x2x1x2Но еще раз, если у нас есть только два ковариаты, которые могут принимать значения только 0 или 1, это означает, что мы в основном смотрим на четыре групповых средних.
Работал пример
Давайте сравним результаты модели взаимодействия с результатами теста Данна. Во-первых, давайте сгенерируем некоторые данные, в которых (а) мужчины весят больше, чем женщины, (б) мужчины младшего возраста весят меньше, чем мужчины старшего возраста, и (в) нет разницы между женщинами более молодого и старшего возраста.
set.seed(405)
old.men<-rnorm(50,mean=80,sd=15)
young.men<-rnorm(50,mean=70,sd=15)
young.women<-rnorm(50,mean=60,sd=15)
old.women<-rnorm(50,mean=60,sd=15)
cat<-rep(1:4, c(50,50,50,50))
gender<-rep(1:2, c(100,100))
age<-c(rep(1,50),rep(2,100),rep(1,50))
wt<-c(old.men,young.men,young.women,old.women)
data<-data.frame(cbind(wt,cat,age,gender))
data$cat<-factor(data$cat,labels=c("old.men","young.men","young.women","old.women"))
data$age<-factor(data$age,labels=c("old","young"))
data$gender<-factor(data$gender,labels=c("male","female"))
wt
mod<-lm(wt~age*gender,data)
library(effects)
allEffects(mod)
model: wt ~ age * gender
age*gender effect
gender
age male female
old 80.61897 57.70635
young 67.78351 56.01228
Нужно рассчитать стандартную ошибку или доверительный интервал для вашего предельного эффекта? Пакет «эффектов», упомянутый выше, может сделать это для вас, но еще лучше, Aiken и West (1991) дают вам формулы, даже для гораздо более сложных моделей взаимодействия. Их таблицы удобно напечатаны здесь , наряду с очень хорошим комментарием Мэтта Голдера.
Теперь, чтобы реализовать тест Данна.
#install.packages("dunn.test")
dunn.test(data$wt, data$cat, method="bh")
Kruskal-Wallis chi-squared = 65.9549, df = 3, p-value = 0
Comparison of x by group
(Benjamini-Hochberg)
Col Mean-|
Row Mean | old.men young.me young.wo
---------+---------------------------------
young.me | 3.662802
| 0.0002*
|
young.wo | 7.185657 3.522855
| 0.0000* 0.0003*
|
old.wome | 6.705346 3.042544 -0.480310
| 0.0000* 0.0014* 0.3155
Значение р в результате критерия хи-квадрат Крускала-Уоллиса предполагает, что по крайней мере одна из наших групп «принадлежит к другой популяции». Для групповых сравнений верхнее число представляет собой статистику z-критерия Данна, а нижнее число представляет собой значение p, которое было скорректировано для множественных сравнений. Поскольку данные нашего примера были довольно искусственными, неудивительно, что у нас так много маленьких p-значений. Но обратите внимание на сравнение справа внизу между молодыми и пожилыми женщинами. Тест правильно поддерживает нулевую гипотезу о том, что между этими двумя группами нет различий.
…
ОБНОВЛЕНИЕ: Учитывая другие ответы, этот ответ был обновлен, чтобы оспорить идею, что это требует любой формы нелинейного моделирования, или что - учитывая конкретный пример OP двух бинарных ковариат, то есть четырех групп, - что должен быть изменение знака оценивает это непараметрически. Например, если бы возраст был непрерывным, были бы другие способы решения этой проблемы, но это был не тот пример, который был дан OP.