Längsschnittdaten: Zeitreihen, wiederholte Messungen oder etwas anderes?

10

Im Klartext: Ich habe ein multiples Regressions- oder ANOVA-Modell, aber die Antwortvariable für jedes Individuum ist eine krummlinige Funktion der Zeit.

  • Wie kann ich feststellen, welche der Variablen auf der rechten Seite für signifikante Unterschiede in den Formen oder vertikalen Versätzen der Kurven verantwortlich sind?
  • Ist dies ein Zeitreihenproblem, ein Problem mit wiederholten Messungen oder etwas ganz anderes?
  • Was sind die Best Practices für die Analyse solcher Daten (vorzugsweise in R, aber ich bin offen für die Verwendung anderer Software)?

Genauer gesagt: Nehmen wir an, ich habe ein Modell aber ist tatsächlich eine Reihe von Datenpunkten, die aus dem dasselbe Individuum k zu vielen Zeitpunkten t , die als numerische Variable aufgezeichnet wurden. Die Darstellung der Daten zeigt, dass y_ {ijkt} für jedes einzelne eine quadratische oder zyklische Funktion der Zeit ist, deren vertikaler Versatz, Form oder Frequenz (im zyklischen Fall) erheblich von den Kovariaten abhängen kann. Die Kovariaten ändern sich nicht im Laufe der Zeit - dh eine Person hat ein konstantes Körpergewicht oder eine konstante Behandlungsgruppe für die Dauer des Datenerfassungszeitraums.y i j k k t y i j k tyijk=β0+β1xi+β2xj+β3xixj+ϵkyijkktyijkt

Bisher habe ich folgende RAnsätze ausprobiert :

  1. Manova

    Anova(lm(YT~A*B,mydata),idata=data.frame(TIME=factor(c(1:10))),idesign=~TIME); 
    

    ... wo YTist eine Matrix, deren Spalten die Zeitpunkte sind, 10 davon in diesem Beispiel, aber viel mehr in den realen Daten.

    Problem: Hierbei wird die Zeit als Faktor behandelt, aber die Zeitpunkte stimmen nicht für jeden Einzelnen genau überein. Darüber hinaus gibt es viele davon im Verhältnis zur Stichprobengröße, sodass das Modell gesättigt wird. Es scheint, als würde die Form der Antwortvariablen über die Zeit ignoriert.

  2. Mixed-Modell (wie bei Pinheiro und Bates, Mixed-Effect-Modelle bei S und 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')
    

    ... wo IDist ein Faktor, der Daten nach Individuen gruppiert. In diesem Beispiel ist die Antwort über die Zeit zyklisch, es können jedoch auch quadratische Terme oder andere Zeitfunktionen vorhanden sein.

    Problem: Ich bin nicht sicher, ob jeder Zeitterm notwendig ist (insbesondere für quadratische Terme) und welche von welchen Kovariaten betroffen sind.

    • Ist stepAIC()eine gute Methode, um sie auszuwählen?
    • Wenn ein zeitabhängiger Begriff entfernt wird, wird er dann auch aus dem randomArgument entfernt?
    • Was ist, wenn ich auch eine Autokorrelationsfunktion (z. B. corEXP()) verwende, die eine Formel im correlationArgument verwendet - sollte ich diese Formel für corEXP()dieselbe wie die in randomoder nur ~1|IDerstellen?
    • Das nlmePaket wird im Zusammenhang mit Zeitreihen außerhalb von Pinheiro und Bates selten erwähnt ... wird es für dieses Problem nicht als gut geeignet angesehen?
  3. Anpassen eines quadratischen oder trigonometrischen Modells an jedes Individuum und anschließendes Verwenden jedes Koeffizienten als Antwortvariable für multiple Regression oder ANOVA.

    Problem: Mehrfachvergleichskorrektur erforderlich. Ich kann mir keine anderen Probleme vorstellen, die mich misstrauisch machen, dass ich etwas übersehen habe.

  4. Wie bereits auf dieser Website vorgeschlagen ( Was ist der Begriff für eine Zeitreihenregression mit mehr als einem Prädiktor? ), Gibt es ARIMAX- und Übertragungsfunktions- / dynamische Regressionsmodelle .

    Problem: ARMA-basierte Modelle nehmen diskrete Zeiten an, nicht wahr? Was die dynamische Regression betrifft, habe ich heute zum ersten Mal davon gehört, aber bevor ich mich mit einer weiteren neuen Methode befasse, die sich vielleicht doch nicht durchsetzt, hielt ich es für ratsam, Leute, die dies zuvor getan haben, um Rat zu fragen.

f1r3br4nd
quelle
5
@ f1r3br4and Es kann hilfreich sein, wenn Sie einige Details zu genau Ihren Daten hinzufügen. Dh wie viele Fälle wurden zu wie vielen Zeitpunkten gemessen? Befinden sich die Fälle unter verschiedenen Bedingungen? oder etwas anderes?
Jeromy Anglim
Hast du dein Konto verloren? Wenn ja, registrieren Sie bitte eine neue, möglicherweise mit Ihrer Google Mail-Adresse, damit ich leicht herausfinden kann, was zusammengeführt werden soll.
1
@ f-tussel und @ jeromy-anglim: Bei den Daten handelt es sich um verschiedene nicht-invasive Messungen, die von Labortieren im Laufe ihrer natürlichen Lebensdauer erhoben wurden, häufig verbunden mit statischen Informationen wie Genotyp, Geschlecht oder Art der Ernährung, mit der sie gefüttert werden. Mit "vielen" Punkten meine ich 20 bis mehrere hundert. Es ist nicht nur ein Datensatz, den ich analysieren möchte, sondern um zu lernen, wie man einen Datentyp analysiert, der in meiner Gruppe immer häufiger vorkommt. Werden gemischte Modelle mit gruppeninternen Faktoren nur für kleinere Stichproben empfohlen?
f1r3br4nd

Antworten:

5

Wie Jeromy Anglim sagte, wäre es hilfreich zu wissen, wie viele Zeitpunkte Sie für jede Person haben. Wie Sie sagten "viele", würde ich wagen, dass Funktionsanalyse eine praktikable Alternative sein könnte. Vielleicht möchten Sie das R-Paket fda überprüfen und sich das Buch von Ramsay und Silverman ansehen .

F. Tusell
quelle
Die Funktionsanalyse klingt auf lange Sicht vielversprechend, aber es sieht so aus, als würde es eine ziemliche Lernkurve geben, bevor ich zuversichtlich bin, dass ich keine bedeutungslosen oder voreingenommenen Ergebnisse erhalte. Sind die bekannteren nlmeAnsätze (Punkte 2 und 3 im OP) zumindest gültig, um sie vorerst für Daten zu verwenden, während ich mich damit vertraut mache ?
f1r3br4nd
2

Seit ich diese Frage ursprünglich gestellt habe, bin ich zu dem Schluss gekommen, dass Modelle mit gemischten Effekten mit Subjekten als zufälligem Blockierungsfaktor die praktische Lösung für dieses Problem sind, dh Option 2 in meinem ursprünglichen Beitrag. Wenn das randomArgument to auf gesetzt lmeist ~1|ID(wobei IDBeobachtungen identifiziert werden, die von derselben Testperson stammen), wird ein zufälliges Abfangmodell angepasst. Wenn es auf eingestellt ist, ~TIME|IDwird ein zufälliges Steigungs- und Schnittmodell angepasst. Jede rechtsseitige Formel, die Variablen enthält, die innerhalb derselben Person variieren, kann zwischen die ~und die gesetzt werden |ID, aber zu komplizierte Formeln führen zu einem gesättigten Modell und / oder verschiedenen numerischen Fehlern. Daher kann man einen Likelihood-Ratio-Test verwenden (anova(myModel, update(myModel,random=~TIME|ID))) um ein zufälliges Intercept-Modell mit einem zufälligen Steigungs- und Intercept-Modell oder anderen möglichen Zufallseffektmodellen zu vergleichen. Wenn der Unterschied in der Passform nicht signifikant ist, bleiben Sie beim einfacheren Modell. Es war übertrieben für mich, in meinem ursprünglichen Beitrag auf zufällige Triggerfunktionen einzugehen.

Das andere Problem, das ich angesprochen habe, war die Modellauswahl. Es scheint, als ob die Leute keine Modellauswahl mögen, aber niemand hat praktische Alternativen. Wenn Sie dem Forscher, der die Daten darüber gesammelt hat, welche erklärenden Variablen relevant sind und welche nicht, blind glauben, werden Sie ihre ungetesteten Annahmen oft blind akzeptieren. Wenn Sie alle möglichen Informationen berücksichtigen, erhalten Sie häufig ein gesättigtes Modell. Wenn Sie ein bestimmtes Modell und bestimmte Variablen willkürlich auswählen, weil sie einfach sind, akzeptieren Sie wieder ungetestete Annahmen, diesmal Ihre eigenen.

Zusammenfassend lässt sich sagen, dass bei wiederholten Messungen die lmeModelle gefolgt von Trimmen über MASS:::stepAICoder MuMIn:::dredgeund / oder nlme:::anova.lmebis und solange nicht jemand eine bessere Idee hat.

Ich werde diese Selbstantwort für eine Weile stehen lassen, bevor ich sie akzeptiere, um zu sehen, ob jemand irgendwelche Widerlegungen hat. Vielen Dank für Ihre Zeit, und wenn Sie dies lesen, weil Sie die gleiche Art von Frage haben, die ich habe, viel Glück und willkommen in halb unbekanntem Gebiet.

f1r3br4nd
quelle