Wprowadzenie
Mam uczestników, którzy wielokrotnie dotykają skażonych powierzchni E. coli w dwóch warunkach ( A = w rękawiczkach, B = bez rękawiczek). Chcę wiedzieć, czy istnieje różnica między ilością bakterii na opuszkach palców w rękawicach i bez rękawiczek, ale także między liczbą kontaktów. Oba czynniki są wewnątrz uczestników.
Metoda eksperymentalna:
Uczestnicy (n = 35) dotykają każdego kwadratu tym samym palcem maksymalnie przez 8 kontaktów (patrz rysunek a).
Następnie przecieram palec uczestnika i po każdym kontakcie mierzę bakterie na opuszku palca. Następnie używają nowego palca do dotykania innej liczby powierzchni i od 1 do 8 kontaktów (patrz rysunek b).
Oto prawdziwe dane: prawdziwe dane
Dane są nienormalne, więc zobacz marginalny rozkład bakterii | NumberContacts poniżej. x = bakterie. Każdy aspekt to inna liczba kontaktów.
MODEL
Próbowanie z lme4 :: glmer na podstawie sugestii ameby za pomocą Gamma (link = "log") i wielomian dla NumberContacts:
cfug<-glmer(CFU ~ Gloves + poly(NumberContacts,2) + (-1+NumberContacts|Participant),
data=(K,CFU<4E5),
family=Gamma(link="log")
)
plot(cfug)
NB Gamma (link = „inverse”) nie uruchomi się, mówiąc, że skok o połowę PIRLS nie zmniejszył dewiacji.
Wyniki:
Dopasowane vs resztki dla cfug
qqp (resid (cfug))
Pytanie:
Czy mój model blasku jest odpowiednio zdefiniowany, aby uwzględnić losowe efekty każdego uczestnika oraz fakt, że każdy wykonuje zarówno eksperyment A, jak i eksperyment B ?
Dodanie:
Wydaje się, że istnieje autokorelacja między uczestnikami. Jest tak prawdopodobnie dlatego, że nie zostały przetestowane tego samego dnia, a kolba bakterii rośnie i maleje z czasem. Czy to ma znaczenie?
acf (CFU, lag = 35) pokazuje istotną korelację między jednym uczestnikiem a drugim.
NumberContacts
jako czynnika liczbowego i dołączyć kwadratowy / sześcienny termin wielomianowy. Lub spójrz na Uogólnione mieszane modele dodatków.CFU ~ Gloves * poly(NumberContacts,2) + (Gloves * poly(NumberContacts,2) | Participant)
lub coś takiego.CFU ~ Gloves * poly(NumberContacts,2) + (Gloves + poly(NumberContacts,2) | Participant)
lub może usuń stamtąd RękawiczkiCFU ~ Gloves * poly(NumberContacts,2) + (poly(NumberContacts,2) | Participant)
...Gloves * poly(NumberContacts,2) + (poly(NumberContacts,2) | Participant)
to całkiem przyzwoity model.Odpowiedzi:
Niektóre wykresy do eksploracji danych
Poniżej znajduje się osiem, po jednym dla każdej liczby styków powierzchniowych, wykresy xy pokazujące rękawice w porównaniu z brakiem rękawic.
Każda osoba jest wykreślona kropką. Średnia, wariancja i kowariancja są oznaczone czerwoną kropką i elipsą (odległość Mahalanobisa odpowiadająca 97,5% populacji).
Widać, że efekty są niewielkie w porównaniu do rozprzestrzeniania się populacji. Średnia jest wyższa dla „bez rękawiczek”, a średnia zmienia się nieco wyżej w przypadku większej liczby kontaktów na powierzchni (co można wykazać jako znaczące). Ale efekt jest tylko trochę w rozmiarze (ogólnie obniżenie log), i istnieje wiele osób, bo kto tam jest w rzeczywistości wyższe bakterie liczyć z rękawic.14
Mała korelacja pokazuje, że rzeczywiście istnieje efekt losowy od poszczególnych osób (jeśli nie wystąpiłby efekt od tej osoby, wówczas nie powinno być żadnej korelacji między sparowanymi rękawiczkami i bez rękawiczek). Jest to jednak tylko niewielki efekt, a osoba może mieć różne losowe skutki dla „rękawiczek” i „bez rękawiczek” (np. Dla wszystkich różnych punktów kontaktowych dana osoba może mieć stale wyższą / niższą liczbę dla „rękawiczek” niż „bez rękawiczek”) .
Poniżej wykresu są osobne wykresy dla każdej z 35 osobników. Ideą tego wykresu jest sprawdzenie, czy zachowanie jest jednorodne, a także sprawdzenie, jaki rodzaj funkcji wydaje się odpowiedni.
Pamiętaj, że „bez rękawiczek” ma kolor czerwony. W większości przypadków czerwona linia jest wyższa, więcej bakterii w przypadkach „bez rękawiczek”.
Uważam, że liniowa fabuła powinna wystarczyć do uchwycenia trendów tutaj. Wadą wykresu kwadratowego jest to, że współczynniki będą trudniejsze do interpretacji (nie zobaczysz bezpośrednio, czy nachylenie jest dodatnie czy ujemne, ponieważ wpływ na to mają zarówno element liniowy, jak i kwadratowy).
Ale co ważniejsze, widać, że trendy różnią się znacznie między poszczególnymi osobami, dlatego może być użyteczny dodanie losowego efektu nie tylko dla przechwytywania, ale także nachylenia jednostki.
Model
Z poniższym modelem
.
To daje
kod do uzyskania wykresów
chemometrics :: funkcja drawMahal
Działka 5 x 7
Działka 2 x 4
źródło
Po pierwsze, dobra praca na wykresie; daje wyraźną reprezentację danych, dzięki czemu można już zobaczyć rodzaj wzorca w danych na podstawie liczby kontaktów oraz użycia lub braku rękawiczek.† Patrząc na ten wykres, myślę, że uzyskasz dobre wyniki dzięki prostemu modelowi log-wielomianu, z losowymi efektami dla uczestników. Wybrany model wygląda rozsądnie, ale możesz również rozważyć dodanie kwadratowego terminu dla liczby kontaktów.
Jeśli chodzi o to, czy użyć
MASS:glmmPQL
lublme4:glmer
dla twojego modelu, rozumiem, że obie te funkcje będą pasowały do tego samego modelu (o ile ustawisz równanie modelu, rozkład i funkcję połączenia tak samo), ale używają różnych metod szacowania, aby znaleźć dopasowanie. Mogę się mylić, ale rozumiem z dokumentacji, żeglmmPQL
wykorzystuje karę quasi-prawdopodobieństwa, jak opisano w Wolfinger i O'Connell (1993) , podczas gdyglmer
używa kwadratury Gaussa-Hermite'a. Jeśli martwisz się o to, możesz dopasować swój model do obu metod i sprawdzić, czy dają one takie same oszacowania współczynników, w ten sposób zyskasz większą pewność, że algorytm dopasowywania zbliżył się do prawdziwych MLE współczynników.Ta zmienna ma naturalny porządek, który pojawia się na twoich wykresach, aby mieć płynny związek ze zmienną odpowiedzi, więc możesz rozsądnie traktować ją jako zmienną numeryczną. Jeśli miałbyś to uwzględnić
factor(NumberContacts)
, nie ograniczysz jego formy i nie stracisz wielu stopni swobody. Możesz nawet skorzystać z interakcjiGloves*factor(NumberContacts)
bez utraty zbyt wielu stopni swobody. Warto jednak zastanowić się, czy użycie zmiennej czynnikowej wiązałoby się z nadmiernym dopasowaniem danych. Biorąc pod uwagę, że na wykresie istnieje dość gładka zależność, prosta funkcja liniowa lub kwadratowa uzyskałaby dobre wyniki bez nadmiernego dopasowania.Umieściłeś już swoją zmienną odpowiedzi w skali logarytmicznej za pomocą logarytmicznej funkcji link, więc efekt przechwytywania dla
Participant
daje efekt multiplikatywny dla odpowiedzi. Gdyby nadać temu losowe nachylenie wchodzące w interakcjeNumberContacts
, miałoby to zależny od mocy wpływ na odpowiedź. Jeśli chcesz, możesz to uzyskać, dzięki(~ -1 + NumberContacts|Participant)
czemu usuniesz przechwytywanie, ale doda nachylenie na podstawie liczby kontaktów.W razie wątpliwości spróbuj dopasować model do tej transformacji i zobacz, jak wypada on w porównaniu z innymi modelami, korzystając z odpowiednich statystyk dobroci dopasowania. Jeśli zamierzasz użyć tej transformacji, lepiej pozostaw parametrλ jako darmowy parametr i pozwól, aby był szacowany jako część modelu, zamiast wcześniejszego określania wartości.
Zacznij od spojrzenia na resztkowy wykres, aby sprawdzić, czy istnieją dowody na heteroscedastyczność. Na podstawie fabuł, które już załączyłeś, wydaje mi się, że to nie jest problem, więc nie musisz dodawać żadnych wag dla wariancji. W razie wątpliwości można dodać ciężary za pomocą prostej funkcji liniowej, a następnie wykonać test statystyczny, aby sprawdzić, czy nachylenie ważenia jest płaskie. Oznaczałoby to formalny test heteroscedastyczności, który dałby ci pewne wsparcie dla twojego wyboru.
Jeśli podałeś już uczestnikowi pojęcie efektu losowego, prawdopodobnie złym pomysłem byłoby dodanie terminu autokorelacji do liczby kontaktów. W twoim eksperymencie używa się innego palca dla różnych liczb kontaktów, więc nie spodziewałbyś się autokorelacji w przypadku, gdy już rozliczałeś uczestnika. Dodanie terminu autokorelacji oprócz efektu uczestnika oznaczałoby, że uważasz, że istnieje zależność warunkowa między wynikami różnych palców, oparta na liczbie kontaktów, nawet dla danego uczestnika.
źródło
Rzeczywiście uzasadnione jest twierdzenie, że pomiary wykonane od jednego uczestnika nie są niezależne od pomiarów wykonanych od innego uczestnika. Na przykład niektóre osoby mogą naciskać palcem z większą (lub mniejszą) siłą, co wpłynęłoby na wszystkie ich pomiary dla każdej liczby kontaktów.
Zatem dwukierunkowa ANOVA z powtarzanymi pomiarami byłaby akceptowalnym modelem do zastosowania w tym przypadku.
Alternatywnie można również zastosować model efektów mieszanych
participant
jako czynnik losowy. Jest to bardziej zaawansowane i bardziej wyrafinowane rozwiązanie.źródło