Mówiąc wprost : mam model regresji wielokrotnej lub model ANOVA, ale zmienna odpowiedzi dla każdej osoby jest krzywoliniową funkcją czasu.
- Jak stwierdzić, które ze zmiennych po prawej stronie są odpowiedzialne za znaczące różnice w kształtach lub pionowych przesunięciach krzywych?
- Czy to problem z szeregiem czasowym, problem z powtarzanymi pomiarami, czy coś zupełnie innego?
- Jakie są najlepsze praktyki analizy takich danych (najlepiej w
R
, ale jestem otwarty na używanie innego oprogramowania)?
Mówiąc ściślej: powiedzmy, że mam model ale y i j k to tak naprawdę szereg danych punkty zebrane od tej samej osoby k w wielu punktach czasowych t , które zostały zarejestrowane jako zmienna liczbowa. Wykreślenie danych pokazuje, że dla każdej osoby y i j k tjest kwadratową lub cykliczną funkcją czasu, której przesunięcie pionowe, kształt lub częstotliwość (w przypadku cyklicznym) mogą znacznie zależeć od zmiennych towarzyszących. Zmienne towarzyszące nie zmieniają się w czasie - tj. Osoba ma stałą masę ciała lub grupę leczenia przez cały okres zbierania danych.
Do tej pory wypróbowałem następujące R
podejścia:
Manova
Anova(lm(YT~A*B,mydata),idata=data.frame(TIME=factor(c(1:10))),idesign=~TIME);
... gdzie
YT
jest macierz, której kolumny to punkty czasowe, 10 z nich w tym przykładzie, ale znacznie więcej w rzeczywistych danych.Problem: traktuje czas jako czynnik, ale punkty czasowe nie są dokładnie takie same dla każdej osoby. Co więcej, jest ich wiele w stosunku do wielkości próbki, więc model się nasyca. Wygląda na to, że kształt zmiennej odpowiedzi w czasie jest ignorowany.
Model mieszany (jak w Pinheiro i Bates, modele mieszane w S i S-Plus )
lme(fixed=Y~ A*B*TIME + sin(2*pi*TIME) + cos(2*pi*TIME), data=mydata, random=~(TIME + sin(2*pi*TIME) + cos(2*pi*TIME))|ID), method='ML')
... gdzie
ID
jest czynnik grupujący dane według osób. W tym przykładzie odpowiedź jest cykliczna w czasie, ale zamiast tego mogą istnieć wyrażenia kwadratowe lub inne funkcje czasu.Problem: Nie jestem pewien, czy każdy termin jest konieczny (szczególnie w przypadku wyrażeń kwadratowych) i na które z nich mają wpływ zmienne towarzyszące.
- Czy
stepAIC()
to dobry sposób na ich wybranie? - Jeśli usunie termin zależny od czasu, czy również usunie go z
random
argumentu? - Co się stanie, jeśli użyję również funkcji autokorelacji (takiej jak
corEXP()
), która pobiera formułę wcorrelation
argumencie - czy powinienem utworzyć tę formułę dlacorEXP()
takiej samej jak wrandom
lub po prostu~1|ID
? nlme
Pakiet rzadko wspomina się w kontekście szeregów czasowych poza Pinheiro i Bates ... nie jest to uważane za dobrze nadaje się do tego problemu?
- Czy
Dopasowywanie modelu kwadratowego lub trygonometrycznego do każdego osobnika, a następnie wykorzystanie każdego współczynnika jako zmiennej odpowiedzi dla regresji wielokrotnej lub ANOVA.
Problem: Konieczna jest wielokrotna korekta porównania. Nie mogę wymyślić żadnych innych problemów, które budzą we mnie podejrzenia, że coś przeoczę.
Jak wcześniej sugerowano na tej stronie ( jaki jest termin regresji szeregów czasowych z więcej niż jednym predyktorem? ), Istnieją modele ARIMAX i funkcja transferu / regresja dynamiczna .
Problem: modele oparte na ARMA zakładają dyskretne czasy, prawda? Jeśli chodzi o regresję dynamiczną, usłyszałem o tym dziś po raz pierwszy, ale zanim zagłębię się w kolejną nową metodę, która może się jednak nie udać, pomyślałem, że rozsądnie byłoby poprosić ludzi, którzy zrobili to wcześniej, o poradę.
Odpowiedzi:
Jak powiedział Jeromy Anglim, pomocne byłoby poznanie liczby punktów czasowych dla każdej osoby; jak powiedziałeś „wielu”, zaryzykowałbym, że analiza funkcjonalna może być realną alternatywą. Możesz sprawdzić pakiet R fda i spojrzeć na książkę Ramsaya i Silvermana .
źródło
nlme
podejścia bardziej znane (pozycje 2 i 3 w PO), które można na razie wykorzystać na danych?Od momentu postawienia tego pytania doszedłem do wniosku, że modele z efektem mieszanym z podmiotami jako losowym czynnikiem blokującym są praktycznym rozwiązaniem tego problemu, tj. Opcja nr 2 w moim oryginalnym poście. Jeśli
random
argument tolme
jest ustawiony na~1|ID
(gdzieID
identyfikuje obserwacje pochodzące od tego samego badanego obiektu), wówczas dopasowywany jest model przechwytywania losowego. Jeśli jest ustawiony na,~TIME|ID
wówczas dopasowywany jest losowy model nachylenia i przecięcia. Każda prawostronna formuła zawierająca zmienne, które różnią się w obrębie tej samej osoby, może być umieszczona między~
i|ID
, ale zbyt skomplikowane formuły spowodują nasycony model i / lub różne błędy numeryczne. Dlatego można zastosować test współczynnika wiarygodności (anova(myModel, update(myModel,random=~TIME|ID))
) w celu porównania losowego modelu przechwytywania z losowym nachyleniem i modelem przechwytywania lub innymi kandydującymi modelami losowego efektu. Jeśli różnica w dopasowaniu nie jest znacząca, trzymaj się prostszego modelu. To było przesadne, że mogłem przejść do losowych funkcji trig w moim oryginalnym poście.Innym poruszonym przeze mnie zagadnieniem była kwestia wyboru modelu. Wygląda na to, że ludzie nie lubią selekcji modeli, ale nikt nie ma praktycznych alternatyw. Jeśli ślepo uważasz, że badacz, który zebrał dane o tym, jakie zmienne objaśniające są i nie są istotne, często będziesz ślepo akceptował ich niesprawdzone założenia. Jeśli weźmiesz pod uwagę każdy możliwy fragment informacji, często skończysz z nasyconym modelem. Jeśli dowolnie wybierzesz konkretny model i zmienne, ponieważ są one łatwe, ponownie przyjmiesz niesprawdzone założenia, tym razem własne.
Podsumowując, w przypadku powtarzanych pomiarów są to
lme
modele, po których następuje przycinanie przezMASS:::stepAIC
lubMuMIn:::dredge
i / lubnlme:::anova.lme
do i chyba, że ktoś ma lepszy pomysł.Pozostawię tę odpowiedź na chwilę, zanim ją zaakceptuję, aby sprawdzić, czy ktoś ma jakieś obalenia. Dziękuję za poświęcony czas, a jeśli czytasz to, ponieważ masz takie samo pytanie, jakie mam, powodzenia i witam na częściowo nieznanym terytorium.
źródło