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 t
Jusqu'à présent, j'ai essayé les R
approches suivantes :
Manova
Anova(lm(YT~A*B,mydata),idata=data.frame(TIME=factor(c(1:10))),idesign=~TIME);
... où
YT
est 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.
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ù
ID
est 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'
random
argument? - Que se passe-t-il si j'utilise également une fonction d'autocorrélation (telle que
corEXP()
) qui prend une formule dans l'correlation
argument - dois-je faire cette formule pourcorEXP()
la même que celle dansrandom
ou juste~1|ID
? - Le
nlme
package 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?
- Est-ce
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.
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.
Réponses:
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 .
la source
nlme
approches plus familières (points 2 et 3 du PO) sont-elles au moins valables pour le moment?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'
random
argument tolme
est défini sur~1|ID
(oùID
identifie 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|ID
un 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
lme
modèles suivis d'un découpage viaMASS:::stepAIC
ouMuMIn:::dredge
et / ounlme:::anova.lme
jusqu'à 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é.
la source