Données longitudinales: séries chronologiques, mesures répétées ou autre chose?


10

En clair: j'ai un modèle de régression multiple ou ANOVA mais la variable de réponse pour chaque individu est une fonction curviligne du temps.

  • Comment puis-je savoir laquelle des variables de droite est responsable des différences significatives dans les formes ou les décalages verticaux des courbes?
  • S'agit-il d'un problème de séries chronologiques, d'un problème de mesures répétées ou de tout autre chose?
  • Quelles sont les meilleures pratiques pour analyser ces données (de préférence dans R, mais je suis prêt à utiliser d'autres logiciels)?

En termes plus précis: disons que j'ai un modèle mais est en fait une série de points de données collectés à partir du même individu à de nombreux moments , qui ont été enregistrés comme une variable numérique. Le traçage des données montre que pour chaque individu est une fonction quadratique ou cyclique du temps dont le décalage vertical, la forme ou la fréquence (dans le cas cyclique) pourrait dépendre de manière significative des covariables. Les covariables ne changent pas au fil du temps - c'est-à-dire qu'un individu a un poids corporel constant ou un groupe de traitement pour la durée de la période de collecte de données.y i j k k t y i j k tyjejk=β0+β1Xje+β2Xj+β3XjeXj+ϵkyjejkktyjejkt

Jusqu'à présent, j'ai essayé les Rapproches suivantes :

  1. Manova

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

    ... où YTest une matrice dont les colonnes sont les points temporels, 10 d'entre elles dans cet exemple, mais beaucoup plus dans les données réelles.

    Problème: cela traite le temps comme un facteur, mais les points temporels ne correspondent pas exactement à chaque individu. De plus, ils sont nombreux par rapport à la taille de l'échantillon, de sorte que le modèle est saturé. Il semble que la forme de la variable de réponse au fil du temps soit ignorée.

  2. Modèles mixtes (comme dans Pinheiro et Bates, modèles à effets mixtes dans S et 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')
    

    ... où IDest un facteur qui regroupe les données par individu. Dans cet exemple, la réponse est cyclique dans le temps, mais il pourrait plutôt y avoir des termes quadratiques ou d'autres fonctions du temps.

    Problème: je ne sais pas si chaque terme est nécessaire (en particulier pour les termes quadratiques) et quels sont ceux qui sont affectés par quelles covariables.

    • Est-ce stepAIC()une bonne méthode pour les sélectionner?
    • S'il supprime un terme dépendant du temps, le supprimera-t-il également de l' randomargument?
    • Que se passe-t-il si j'utilise également une fonction d'autocorrélation (telle que corEXP()) qui prend une formule dans l' correlationargument - dois-je faire cette formule pour corEXP()la même que celle dans randomou juste ~1|ID?
    • Le nlmepackage est rarement mentionné dans le contexte des séries chronologiques en dehors de Pinheiro et Bates ... n'est-il pas considéré comme bien adapté à ce problème?
  3. Ajuster un modèle quadratique ou trigonométrique à chaque individu, puis utiliser chaque coefficient comme variable de réponse pour la régression multiple ou l'ANOVA.

    Problème: correction de comparaison multiple nécessaire. Je ne peux penser à aucun autre problème qui me fait soupçonner que j'oublie quelque chose.

  4. Comme suggéré précédemment sur ce site ( quel est le terme pour une régression de séries chronologiques ayant plus d'un prédicteur? ), Il existe des modèles ARIMAX et de fonction de transfert / régression dynamique .

    Problème: les modèles basés sur ARMA supposent des temps discrets, n'est-ce pas? En ce qui concerne la régression dynamique, j'en ai entendu parler pour la première fois aujourd'hui, mais avant de me plonger dans une autre nouvelle méthode qui pourrait ne pas fonctionner, je pensais qu'il serait prudent de demander conseil à des personnes qui l'ont déjà fait.


5
@ f1r3br4and Cela peut être utile si vous ajoutez des détails sur exactement quelles sont vos données? C'est-à-dire, combien de cas mesurés à combien de points dans le temps? Les cas sont-ils dans des conditions différentes? ou quelque chose de différent?
Jeromy Anglim

Vous avez perdu votre compte? Si tel est le cas, veuillez en enregistrer un nouveau, éventuellement avec votre adresse Gmail, afin que je puisse facilement trouver quoi fusionner.

1
@ f-tussel et @ jeromy-anglim: Les données sont diverses mesures non invasives recueillies auprès d'animaux de laboratoire au cours de leur durée de vie naturelle, souvent couplées à des informations statiques telles que le génotype, le sexe ou le type de régime alimentaire qu'ils reçoivent. Par «beaucoup» de points, j'entends de 20 à plusieurs centaines. Ce n'est pas seulement un ensemble de données que j'essaie d'analyser, mais d'apprendre à analyser un type de données qui devient très courant dans mon groupe. Les modèles mixtes avec des facteurs intra-groupe ne sont-ils recommandés que pour des échantillons plus petits?
f1r3br4nd

Réponses:


5

Comme l'a dit Jeromy Anglim, il serait utile de connaître le nombre de points de temps dont vous disposez pour chaque individu; comme vous l'avez dit "beaucoup", je me risquerais à penser que l'analyse fonctionnelle pourrait être une alternative viable. Vous voudrez peut-être vérifier le package R fda et consulter le livre de Ramsay et Silverman .


L'analyse fonctionnelle semble prometteuse à long terme, mais il semble qu'il y aura une courbe d'apprentissage assez longue avant d'être sûr que je n'obtiens pas de résultats dénués de sens ou biaisés. Donc, pendant que je me familiarise avec cela, les nlmeapproches plus familières (points 2 et 3 du PO) sont-elles au moins valables pour le moment?
f1r3br4nd

2

Depuis que j'ai posé cette question à l'origine, je suis parvenu à la conclusion que les modèles à effets mixtes avec des sujets comme facteur de blocage aléatoire sont la solution pratique à ce problème, c'est-à-dire l'option n ° 2 dans mon article d'origine. Si l' randomargument to lmeest défini sur ~1|ID(où IDidentifie les observations provenant du même sujet de test), un modèle d'interception aléatoire est ajusté. S'il est défini sur, ~TIME|IDun modèle de pente et d'interception aléatoire est ajusté. Toute formule du côté droit contenant des variables qui varient au sein d'un même individu peut être placée entre le ~et le |ID, mais des formules trop compliquées entraîneront un modèle saturé et / ou diverses erreurs numériques. Par conséquent, on peut utiliser un test de rapport de vraisemblance (anova(myModel, update(myModel,random=~TIME|ID))) pour comparer un modèle d'interception aléatoire à un modèle de pente et d'interception aléatoire ou à d'autres modèles à effet aléatoire candidats. Si la différence d'ajustement n'est pas significative, restez avec le modèle plus simple. C'était exagéré pour moi d'entrer dans des fonctions de trig aléatoires dans mon message d'origine.

L'autre problème que j'ai soulevé était celui de la sélection des modèles. Il semble que les gens n'aiment pas la sélection de modèles, mais personne n'a d'alternative pratique. Si vous croyez aveuglément le chercheur qui a collecté les données sur les variables explicatives qui sont et ne sont pas pertinentes, vous accepterez souvent aveuglément leurs hypothèses non vérifiées. Si vous prenez en compte toutes les informations possibles, vous vous retrouverez souvent avec un modèle saturé. Si vous choisissez arbitrairement un modèle et des variables particuliers parce qu'ils sont faciles, vous accepterez à nouveau des hypothèses non testées, cette fois les vôtres.

Donc, en résumé, pour les mesures répétées, ce sont les lmemodèles suivis d'un découpage via MASS:::stepAICou MuMIn:::dredgeet / ou nlme:::anova.lmejusqu'à ce que et à moins que quelqu'un n'ait une meilleure idée.

Je vais laisser cette réponse libre pendant un certain temps avant de l'accepter pour voir si quelqu'un a des réfutations. Merci pour votre temps, et si vous lisez ceci parce que vous avez le même genre de question que moi, bonne chance et bienvenue sur un territoire semi-inexploré.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.