ANOVA niezrównoważonego efektu mieszanego dla powtarzanych pomiarów

17

Mam dane od pacjentów leczonych 2 różnymi rodzajami leczenia podczas operacji. Muszę przeanalizować jego wpływ na tętno. Pomiar tętna wykonywany jest co 15 minut.

Biorąc pod uwagę, że długość operacji może być różna dla każdego pacjenta, każdy pacjent może mieć od 7 do 10 pomiarów tętna. Dlatego należy zastosować niezrównoważony projekt. Robię analizę za pomocą R. I używam pakietu ez do wykonywania ANOVA z mieszanym efektem wielokrotnego pomiaru. Ale nie wiem, jak analizować niezrównoważone dane. Czy ktoś może pomóc?

Mile widziane są również sugestie dotyczące analizy danych.

Aktualizacja: zgodnie z
sugestią, dopasowałem dane za pomocą lmerfunkcji i stwierdziłem, że najlepszym modelem jest:

heart.rate~ time + treatment + (1|id) + (0+time|id) + (0+treatment|time)

z następującym wynikiem:

Random effects:
 Groups   Name        Variance   Std.Dev. Corr   
 id       time        0.00037139 0.019271        
 id       (Intercept) 9.77814104 3.127002        
 time     treat0      0.09981062 0.315928        
          treat1      1.82667634 1.351546 -0.504 
 Residual             2.70163305 1.643665        
Number of obs: 378, groups: subj, 60; time, 9

Fixed effects:
             Estimate Std. Error t value
(Intercept) 72.786396   0.649285  112.10
time         0.040714   0.005378    7.57
treat1       2.209312   1.040471    2.12

Correlation of Fixed Effects:
       (Intr) time  
time   -0.302       
treat1 -0.575 -0.121

Teraz jestem zagubiony w interpretowaniu wyniku. Czy mam rację, stwierdzając, że te dwa zabiegi różniły się wpływaniem na tętno? Co oznacza korelacja -504 między Treat0 i Treat1?

biostat_newbie
źródło
Czy przed zaktualizowaniem odpowiedzi leczenie jest czynnikiem powtarzalnym? tj. czy każdy osobnik otrzymuje zarówno leczenie „a”, jak i leczenie „b”, czy też jest to czynnik między podmiotami?
Matt Albrecht,
Leczenie jest czynnikiem pośrednim. Każdy osobnik otrzymuje tylko 1 rodzaj leczenia. Zakodowałem dwa zabiegi jako 1 i 0 i ustawiłem leczenie jako zmienną czynnikową.
biostat_newbie 28.10.10

Odpowiedzi:

15

Funkcje lme / lmer z pakietów nlme / lme4 są w stanie poradzić sobie z niezrównoważonymi projektami. Powinieneś upewnić się, że czas jest zmienną numeryczną. Prawdopodobnie zechcesz również przetestować różne typy krzywych. Kod będzie wyglądał mniej więcej tak:

library(lme4)
#plot data with a plot per person including a regression line for each
xyplot(heart.rate ~ time|id, groups=treatment, type= c("p", "r"), data=heart)

#Mixed effects modelling
#variation in intercept by participant
lmera.1 <- lmer(heart.rate ~ treatment * time + (1|id), data=heart)
#variation in intercept and slope without correlation between the two
lmera.2 <- lmer(heart.rate ~ treatment * time + (1|id) + (0+time|id), data=heart)
#As lmera.1 but with correlation between slope and intercept
lmera.3 <- lmer(heart.rate ~ treatment * time + (1+time|id), data=heart)

#Determine which random effects structure fits the data best
anova(lmera.1, lmera.2, lmera.3)

Aby uzyskać modele kwadratowe, użyj wzoru „heart.rate ~ treatment * time * I (time ^ 2) + (random random)”.

Aktualizacja:
W tym przypadku, gdy leczenie jest czynnikiem między podmiotami, trzymałbym się powyższych specyfikacji modelu. Nie sądzę, aby termin (0 + leczenie | czas) był tym, który chciałbyś uwzględnić w modelu, dla mnie nie ma sensu w tym przypadku traktowanie czasu jako zmiennej grupującej efekty losowe.

Ale aby odpowiedzieć na pytanie „co oznacza korelacja -0,504 między traktowaniem 0 i leczeniem 1 ”, jest to współczynnik korelacji między dwoma traktowaniami, w których za każdym razem grupowanie stanowi jedną parę wartości. Ma to większy sens, jeśli id ​​jest czynnikiem grupującym, a leczenie jest zmienną wewnątrzosobniczą. Następnie masz oszacowanie korelacji między punktami przecięcia dwóch warunków.

Przed wyciągnięciem jakichkolwiek wniosków na temat modelu, zamień go w lmera.2 i dołącz REML = F. Następnie załaduj pakiet „languageR” i uruchom:

plmera.2<-pvals.fnc(lmera.2)
plmera.2

Wtedy możesz uzyskać wartości p, ale na pierwszy rzut oka prawdopodobnie jest to znaczący wpływ czasu i znaczący efekt leczenia.

Matt Albrecht
źródło
1
Czy podczas generowania tych modeli należy ustawić argument REML dla Lmer na FAŁSZ, ponieważ ostatecznie zostaną one porównane za pomocą funkcji anova ()?
Mike Lawrence
7
Porównując modele za pomocą testów ilorazu prawdopodobieństwa, możesz porównać różne struktury efektów losowych za pomocą REML (ograniczone / resztkowe maksymalne prawdopodobieństwo, jak wyżej), ale musisz użyć ML (maksymalne prawdopodobieństwo), aby porównać różne modele o stałym efekcie .
onestop
Czy czas nie powinien być przypadkowym efektem, ponieważ pomiary tętna są pobierane podczas operacji? Jeśli tak jest, czy poniższe dopasowanie miałoby sens (ponieważ wciąż czytam funkcję lmer i nie do końca zrozumiałem składnię)? lmer (heart.rate ~ treatment + (1 | id) + (1 + time), data = heart)
biostat_newbie
1
Termin „(czas | id)” po stronie efektów losowych mówi funkcji, aby dopasować różne (liniowe) nachylenia dla każdej osoby. Możesz więc mieć czas zarówno jako efekt stały, jak i losowy, ale oznaczają one różne rzeczy. Spójrz na przykład ze snu w książce Douglasa Batesa: lme4.r-forge.r-project.org/book/Ch4.pdf
Matt Albrecht
2
Nie rozumiem, jak projektować powtarzane pomiary, lmerjest raczej sugerowany niż stary dobry lme. W takich desiginach skrzyżowane efekty losowe, główna siła lmer, są rzadkie, ale dość często chcesz modelować strukturę korelacji reszt. O ile rozumiem lmer, nie popiera tego, ale lmeobsługuje. Czy mylę się zakładając, że w takich przypadkach lmernarzędzie gorsze jest w porównaniu do tego lme?
AlefSin