Jak wykonać test Tukey HSD z zespołem ANOVA (pakiet samochodowy)


Mam do czynienia z niezrównoważonym projektem/wzorcem i początkowo nauczyłem się
aov ()
. Teraz wiem, że do moich testów ANOVA muszę użyć sumy kwadratów typu III, co obejmuje użycie dopasowania przy użyciu
lm ()
zamiast używania
aov ()
...
Problem polega na pobieraniu testów post-custom (szczególnie HSD Tukeya) przy użyciu
lm ()
. Wszystkie badania, które przeprowadziłem, wykazały, że użycie
simint
w pakiecie
multcomp
będzie działać, ale teraz, gdy zostało zaktualizowane, to polecenie nie wydaje się być dostępne. Wydaje się również, że opiera się na przekazywaniu
aov ()
do obliczeń.
Zasadniczo wszystkie testy Tukey HSD, które znalazłem dla R, zakładają, że używasz
aov ()
do porównania, a nie
lm ()
. Aby uzyskać sumę kwadratów typu III, których potrzebuję dla niezrównoważonego projektu, muszę użyć:
mod<-lm(Snavg~StudentEthnicity*StudentGender)Anova(mod, type="III")

Jak używać testu Tukey HSD z moim modem za pomocą
lm ()
? Lub, alternatywnie, obliczyć moją ANOVA za pomocą Typu III i nadal być w stanie uruchomić test Tukey HSD?
Podziękować!
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wypróbuj
HSD.test
w
agricolae
library(agricolae)
data(sweetpotato)
model<-lm(yield~virus, data=sweetpotato)
comparison <- HSD.test(model,"virus", group=TRUE,
main="Yield of sweetpotato\nDealt with different virus")


Wyjście

Study: Yield of sweetpotato
Dealt with different virusHSD Test for yield Mean Square Error: 22.48917 virus, means yield std.err replication
cc 24.40000 2.084067 3
fc 12.86667 1.246774 3
ff 36.33333 4.233727 3
oo 36.90000 2.482606 3alpha: 0.05 ; Df Error: 8
Critical Value of Studentized Range: 4.52881 Honestly Significant Difference: 12.39967 Means with the same letter are not significantly different.Groups, Treatments and means
a oo 36.9
ab ff 36.33333
bc cc 24.4
c fc 12.86667
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zauważyłem, że
HSD.test ()
jest również bardzo drobiazgowy, jeśli chodzi o to, jak zbudowałeś model
lm ()
lub
aov ()
, którego używasz dla tego.
Nie było danych wyjściowych z
HSD.test ()
z moimi danymi, gdy użyłem następującego pomysłu na kodowanie dla
lm ()
:
model<-lm(sweetpotato$yield ~ sweetpotato$virus) 
out <- HSD.test(model,"virus", group=TRUE, console=TRUE)

Było tylko jedno wyjście:
Name: virus 
sweetpotato$virus

Wynik był równie zły, gdy użyliśmy tej samej logiki dla
aov ()
model<-aov(sweetpotato$yield ~ sweetpotato$virus)

Aby uzyskać dane wyjściowe dla
HSD.test ()
lm ()
(lub także w przypadku użycia
aov ()
dla modelu)
należy skonstruować ściśle według logiki przedstawionej w odpowiedzi MYaseen208:
model <- lm(yield~virus, data=sweetpotato)

Mamy nadzieję, że pomoże to komuś nie uzyskać pożądanego wyniku z
HSD.test ()
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Na wstępie należy zauważyć, że jeśli nie zostało to zmienione, aby uzyskać poprawne wyniki dla sumy kwadratów typu III, należy ustawić kodowanie kontrastu dla zmiennych czynników. Można to zrobić wewnątrz wywołania
lm
lub używając
options
. W poniższym przykładzie zastosowano
opcje
.
Byłbym ostrożny przy używaniu
HSD.test
i podobnych funkcji z niezrównoważonymi konstrukcjami, chyba że dokumentacja dotyczy ich użycia w takich sytuacjach. Dokumentacja
TukeyHSD
wspomina, że ​​jest ona dostosowywana do konstrukcji "lekko niezrównoważonych". Nie wiem, czy
HSD.test
radzi sobie inaczej. Będziesz musiał sprawdzić dodatkową dokumentację pakietu lub oryginalny link dostarczony dla tej funkcji.
Na marginesie, umieszczenie całej funkcji
HSD.test
w nawiasach spowoduje wydrukowanie wyników. Zobacz przykład poniżej.
Ogólnie rzecz biorąc, zalecałbym porzucenie
Tukey.HSD
i podobnych funkcji oraz użycie elastycznych pakietów
emmeans
(née
lsmeans
) lub
multcomp
dla wszystkich potrzeb związanych z porównaniem post hoc.
emmeans
jest szczególnie przydatne do robienia

średnie podziały według interakcji
https://rcompanion.org/rcompanion/d_08.html
albo za

badanie kontrastów między zabiegami
https://rcompanion.org/rcompanion/h_01.html
.[/code]Jeśli projekt jest niezrównoważony, możesz zgłosić E.M. (lub L.S.) zamiast średniej arytmetycznej. Cm
... SAEPER: jakie są wartości najmniejsze kwadratowe?
http://rcompanion.org/handbook/G_05.html... Zauważ, że w poniższym przykładzie wartości graniczne zgłaszane przez
emmeans
różnią się od tych zgłaszanych przez
HSD.test
.
Zauważ również, że „Tukey” w
glht
nie ma nic wspólnego z Tukey HSD lub porównaniami dostosowanymi do tukey; po prostu ustawia kontrasty dla wszystkich testów parami, jak mówi wynik.
Jednak funkcje
adjust = "tukey"
w
emmeans
oznaczają używanie porównań poprawionych przez Tukey, jak wynika z danych wyjściowych.
Poniższy przykład został częściowo zapożyczony z

ARCHBS: One Way Dispersive
https://rcompanion.org/rcompanion/d_05.html
analiza.
if(!require(car)){install.packages("car")}
library(car)
data(mtcars)
mtcars$cyl.f = factor(mtcars$cyl)
mtcars$carb.f = factor(mtcars$carb)options(contrasts = c("contr.sum", "contr.poly"))model = lm(mpg ~ cyl.f + carb.f, data=mtcars)library(car)
Anova(model, type="III")if(!require(agricolae)){install.packages("agricolae")}
library(agricolae)
(HSD.test(model, "cyl")$groups)if(!require(emmeans)){install.packages("emmeans")}
if(!require(multcompView)){install.packages("multcompView")}
library(emmeans)
library(multcompView)marginal = emmeans(model,
~ cyl.f)pairs(marginal, adjust="tukey")cld(marginal, adjust="tukey", Letters=letters)
if(!require(multcomp)){install.packages("multcomp")}
library(multcomp)mc = glht(model,
mcp(cyl.f = "Tukey"))summary(mc, test=adjusted("single-step"))multcomp::cld(mc)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Utknąłem z tym samym problemem co HSD.test bez drukowania czegokolwiek. Musisz umieścić
console = TRUE
wewnątrz funkcji, aby drukować automatycznie.
Na przykład:
HSD.test(alturacrit.anova, "fator", console=TRUE).
Hope it helps!

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się