Robię jednokierunkową ANOVA (według gatunków) z niestandardowymi kontrastami.
[,1] [,2] [,3] [,4]
0.5 -1 0 0 0
5 1 -1 0 0
12.5 0 1 -1 0
25 0 0 1 -1
50 0 0 0 1
gdzie porównuję intensywność 0,5 z 5, 5 z 12,5 i tak dalej. To dane, nad którymi pracuję
z następującymi wynikami
Generalized least squares fit by REML
Model: dark ~ intensity
Data: skofijski.diurnal[skofijski.diurnal$species == "niphargus", ]
AIC BIC logLik
63.41333 67.66163 -25.70667
Coefficients:
Value Std.Error t-value p-value
(Intercept) 16.95 0.2140872 79.17334 0.0000
intensity1 2.20 0.4281744 5.13809 0.0001
intensity2 1.40 0.5244044 2.66970 0.0175
intensity3 2.10 0.5244044 4.00454 0.0011
intensity4 1.80 0.4281744 4.20389 0.0008
Correlation:
(Intr) intns1 intns2 intns3
intensity1 0.000
intensity2 0.000 0.612
intensity3 0.000 0.408 0.667
intensity4 0.000 0.250 0.408 0.612
Standardized residuals:
Min Q1 Med Q3 Max
-2.3500484 -0.7833495 0.2611165 0.7833495 1.3055824
Residual standard error: 0.9574271
Degrees of freedom: 20 total; 15 residual
16,95 to globalna średnia dla „niphargus”. W intensywności 1 porównuję średnie dla intensywności 0,5 z 5.
Jeśli zrozumiałem to prawo, współczynnik intensywności1 wynoszący 2,2 powinien wynosić połowę różnicy między średnimi poziomami intensywności 0,5 i 5. Jednak moje obliczenia ręki nie pasują do tych z podsumowania. Czy ktoś może wtrącić się w to, co robię źle?
ce1 <- skofijski.diurnal$intensity
levels(ce1) <- c("0.5", "5", "0", "0", "0")
ce1 <- as.factor(as.character(ce1))
tapply(skofijski.diurnal$dark, ce1, mean)
0 0.5 5
14.500 11.875 13.000
diff(tapply(skofijski.diurnal$dark, ce1, mean))/2
0.5 5
-1.3125 0.5625
r
anova
contrasts
generalized-least-squares
Roman Luštrik
źródło
źródło
geom_points(position=position_dodge(width=0.75))
naprawi sposób, w jaki punkty na twojej działce nie pokrywają się z polami.geom_jitter
skrót, który jest skrótem dla wszystkich parametrów geom_point (), które drgają.geom_jitter(position_dodge)
działa? Używamgeom_points(position_jitterdodge)
dodać kropki boxplots z uniku.geom_jitter
tutaj dokumenty . Z doświadczenia wiem, że od powyższej odpowiedzi uważam, że nie jest konieczne używanie wykresów pudełkowych. Zawsze. Jeśli mam wiele punktów, używam wykresów skrzypcowych, które pokazują gęstość punktów w znacznie drobniejszych szczegółach niż wykresy skrzynkowe. Wykresy pudełkowe zostały wynalezione w przeszłości, gdy wykreślono wiele punktów lub ich gęstość nie była dogodna. Być może nadszedł czas, abyśmy zaczęli myśleć o porzuceniu tej (upośledzonej) wizualizacji.Odpowiedzi:
Macierz określona dla kontrastów jest w zasadzie poprawna. Aby przekonwertować go na odpowiednią macierz kontrastu , musisz obliczyć uogólnioną odwrotność oryginalnej macierzy.
Jeśli
M
twoja matryca:Teraz obliczyć uogólnioną odwrotność za pomocą
ginv
i transponować wynik za pomocąt
:Wynik jest identyczny jak w przypadku @Greg Snow. Użyj tej macierzy do analizy.
Jest to o wiele łatwiejszy sposób niż robienie tego ręcznie.
Jest jeszcze łatwiejszy sposób na wygenerowanie matrycy różnic ślizgowych (inaczej powtarzających się kontrastów ). Można tego dokonać za pomocą funkcji
contr.sdif
i liczby poziomów czynników jako parametru. Jeśli masz pięć poziomów czynników, jak w twoim przykładzie:źródło
Jeśli macierz na górze jest sposobem, w jaki kodujesz zmienne fikcyjne (to, co przekazujesz do
C
lubcontrast
funkcji w R), to one pierwsze porównują pierwszy poziom z innymi (faktycznie 0,8 razy pierwszy odejmowany od 0,2 razy suma pozostałych).Drugi semestr porównuje pierwsze 2 poziomy z ostatnimi 3. Trzeci porównuje pierwsze 3 poziomy z ostatnimi 2, a czwarty porównuje pierwsze 4 poziomy z ostatnim.
Jeśli chcesz dokonać porównań, które opisujesz (porównaj każdą parę), to kodowanie zmiennej fikcyjnej to:
źródło
aov()
zamiastlm()
? Pytam, ponieważ przeczytałem kilka samouczków, w których macierze kontrastuaov()
są konstruowane tak, jak podane przez Romana. Np. Patrz rozdział 5 w cran.r-project.org/doc/contrib/Vikneswaran-ED_companion.pdfaov
Funkcja wywołujelm
funkcję do zrobienia główne obliczenia, więc takie rzeczy kontrastu matryc będzie miał ten sam efekt w obu.