Jak zauważyli inni, można to modelować liniowo za pomocą interakcji. Wchodzisz w interakcję z dwoma manekinami i nie ma w tym nic nieliniowego. Biorąc pod uwagę model:
Efektem krańcowym „płci” jest pochodna cząstkowa:
wt=α+b1age+b2gender+b3age∗gender+ϵ
∂wt∂gender=b2+b3age
Widzisz, jak jeśli płeć i wiek mogą przyjmować wartości 0 lub 1, to zasadniczo patrzymy tylko na różnicę średnich dla czterech różnych grup? Oznacza to, że tylko cztery różne kombinacje można podłączać do powyższego równania (1), i g e = 0 , (2) g e n d e r = 1 i g e = 1 , (3), g e n d e r = 0 i g egender=0age=0gender=1age=1gender=0 , i (4), g e n d e r = 1 i g e = 0 . Zatem twój konkretny przykład jest równoważny porównaniu czterech średnich grupowych.age=1gender=1age=0
Pomocne może być także zapoznanie się z tą dyskusją, aby zrozumieć, w jaki sposób powyższe jest równoważne ANOVA z dwiema zmiennymi nominalnymi oddziałującymi. Jako kolejny sposób na potwierdzenie faktu, że na twoim konkretnym przykładzie (ponownie, ponieważ istnieją tylko cztery możliwe kombinacje wieku i płci), moglibyśmy również określić model podobny do poniższego, bez wyraźnego terminu interakcji:
wt=α+b1young.male+b2old.male+b3young.female+ϵ
W przypadku, gdy jest pomijana jako kategoria odniesienia, i na przykład współczynnik b 1 będzie różnicą średnich między o l d . f e m o l e a y o, U n g . m a l e . Gdzie punkt przecięcia α będzie również równy średniej w t w ciągu o l d . f eold.femaleb1old.femaleyoung.maleαwt (ponownie kategoria odniesienia).old.female
Wypróbuj to z własnymi danymi. Dzięki modelowi liniowemu z interakcją, ANOVA z interakcją lub użyciu manekinów dla każdej grupy bez interakcji, otrzymasz takie same wyniki. Całkiem fajnie, co? Książka statystyk może omawiać każdą z tych metod w innym rozdziale ale wszystkie drogi prowadzą do Rzymu. Naprawdę, sprawdzenie, jak to działa z własnymi danymi, jest jednym z najlepszych sposobów na naukę. …
Powyższe przykłady są więc zbyt skomplikowanym sposobem na wyciągnięcie tego wniosku (że tak naprawdę porównujemy tylko cztery średnie grupowe), ale myślę, że dla poznania sposobu działania interakcji jest to pomocne ćwiczenie. Istnieją inne bardzo dobre posty w CV na temat interakcji zmiennej ciągłej ze zmienną nominalną lub interakcji dwóch zmiennych ciągłych. Mimo że twoje pytanie zostało zredagowane w celu określenia testów nieparametrycznych, myślę, że warto przemyśleć problem z bardziej konwencjonalnego (tj. Parametrycznego) podejścia, ponieważ większość nieparametrycznych podejść do testowania hipotez ma tę samą logikę, ale ogólnie mniej założeń dotyczących określonych rozkładów.
wt
old.menyoung.women
Pomijając „znaczące” interakcje
x1x2x1x2Ale jeszcze raz, jeśli mamy tylko dwie zmienne towarzyszące, które mogą przyjąć tylko wartości 0 lub 1, oznacza to, że zasadniczo patrzymy na cztery średnie grupowe.
Przykład działania
Porównajmy wyniki z modelu interakcji z wynikami testu Dunna. Najpierw wygenerujmy dane, w których (a) mężczyźni ważą więcej niż kobiety, (b) młodsi mężczyźni ważą mniej niż starsi mężczyźni, oraz (c) nie ma różnicy między młodszymi i starszymi kobietami.
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
Potrzebujesz obliczyć standardowy błąd lub przedział ufności dla efektu krańcowego? Pakiet „efektów”, o którym mowa powyżej, może to dla ciebie zrobić, ale jeszcze lepiej, Aiken i West (1991) podają formuły, nawet w przypadku znacznie bardziej skomplikowanych modeli interakcji. Ich tabele są dogodnie wydrukowane tutaj , wraz z bardzo dobrym komentarzem Matta Goldera.
Teraz zaimplementuj test Dunna.
#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
Wartość p wyniku testu chi-kwadrat Kruskala-Wallisa sugeruje, że co najmniej jedna z naszych grup „pochodzi z innej populacji”. W przypadku porównań grup po grupach najwyższą liczbą jest statystyka testu Dunna z, a dolna liczba to wartość p, która została skorygowana dla wielu porównań. Ponieważ nasze przykładowe dane były raczej sztuczne, nic dziwnego, że mamy tak wiele małych wartości p. Zwróć jednak uwagę na porównanie w prawym dolnym rogu między młodszymi i starszymi kobietami. Test poprawnie potwierdza hipotezę zerową, że nie ma różnicy między tymi dwiema grupami.
…
AKTUALIZACJA: Biorąc pod uwagę inne odpowiedzi, odpowiedź została zaktualizowana, aby zakwestionować pomysł, że wymaga to jakiejkolwiek formy modelowania nieliniowego lub że - biorąc pod uwagę konkretny przykład dwóch binarnych zmiennych towarzyszących, tj. Czterech grup - że musi istnieć zmiana znaku, aby ocenić to nieparametrycznie. Gdyby na przykład wiek był ciągły, istniałyby inne sposoby podejścia do tego problemu, ale nie był to przykład podany przez OP.