Recherche d'un modèle d'événements dans une série chronologique


8

J'ai une expérience temporelle qui suit 8 groupes de traitement de 12 poissons pendant 24 heures avec des observations faites à 5 secondes d'intervalle. Parmi les mesures effectuées figure la distance parcourue par chaque poisson (en mm) entre les observations. Les 24 heures sont divisées en 1 période sombre et 1 période claire.

Voici un graphique des mouvements des 12 poissons individuels du groupe de traitement H pendant la première heure de la période sombre:

groupe témoin pendant la 1ère heure d'obscurité

Vous pouvez voir que certains poissons ont de longues périodes d'inactivité, certains de courtes périodes et certains n'en ont pas pendant cette fenêtre particulière . Je dois combiner les données des 12 poissons du groupe de traitement de manière à identifier la longueur et la fréquence des périodes de repos pendant toute la période d'obscurité et la période d'éclairage. Je dois le faire pour chaque groupe de traitement. Ensuite, je dois comparer les différences entre les longueurs et les fréquences de leurs périodes de repos.

Je ne suis pas une fille de statistiques et je suis complètement en mer. Le problème ressemble à l'alignement de séquence pour moi (mon expérience en bio-informatique), donc je pense aux modèles de Markov cachés, mais cela peut être loin de la base. Quelqu'un pourrait-il suggérer une bonne approche à ce problème et peut-être un petit exemple en R?

Merci!


1
Cela semble avoir plusieurs sous-problèmes. Tout d'abord, vous devez rechercher et extraire les périodes d'inactivité pour chaque poisson. Une personne peut le faire en regardant simplement, mais si vous avez beaucoup de données, vous voudrez peut-être le faire automatiquement. Deuxièmement, vous devez les combiner pour tous les poissons d'un même groupe. Troisièmement, vous devez les comparer entre les groupes. Pour lesquelles avez-vous besoin d'aide? Puisque vous avez mentionné les HMM, je devine le premier. Si c'est le cas, une méthode triviale serait simplement de trouver n'importe quel intervalle lorsque motion = 0. Pourquoi ne fonctionnerait-il pas? S'il y a un bref pic pendant le repos, comptez-vous comme une longue période
SheldonCooper

ou deux courtes périodes? Si le mouvement n'est pas 0, mais très proche de 0, voulez-vous compter cela comme du repos?
SheldonCooper

@SheldonCooper: c'est le premier problème avec lequel je rencontre des problèmes. Une activité minimale ne doit pas être considérée comme une interruption du repos. Donc, l'échantillon c93 a 1 (ou peut-être 2) période (s) d'inactivité, mais l'échantillon c87 en a 4. Je pensais normaliser l'échelle d'activité à 1 en fonction des maximums individuels afin que le changement d'activité soit proportionnel plutôt qu'absolu. J'ai également pensé que, puisque ces observations semblent à peu près cycliques, l'analyse de Fourier pourrait peut-être être l'approche appropriée.
dnagirl

1
Je pense que nous aurons besoin d'une définition officielle de «l'inactivité» ou du «repos». C'est OK si vous le dites en termes de ce que fait le poisson plutôt qu'en termes de ce que les parcelles ressemblent (nous pouvons traduire plus tard), mais cela doit être formel. Si une définition formelle est exactement ce pour quoi vous avez besoin d'aide, voici quelques éléments à considérer: 1. Je ne pense pas qu'il existe une définition standard de "l'inactivité dans les séries chronologiques" que vous pourriez simplement prendre et utiliser; 2. il pourrait être utile d'en savoir plus sur le contexte de vos expériences pour trouver une définition;
SheldonCooper

3. en biologie, les gens acceptent souvent très bien des définitions simples et directes telles que "l'inactivité est une période continue où le mouvement est inférieur à 0,1, éventuellement interrompu par des pointes de hauteur pas plus de 2 et de durée pas plus de 20 sec, espacées au moins 5 minutes d'intervalle ". Bien sûr, cette définition est fragile et les seuils semblent arbitraires (que se passe-t-il s'ils sont espacés de 4 min 55 s?), Mais l'objectif principal est de supprimer le biais qu'une personne pourrait avoir dans la classification des périodes de repos en utilisant le bon sens.
SheldonCooper

Réponses:


1

Je pense qu'une analyse basée sur HMM pourrait vous être utile. Puisque vous savez que vous recherchez une distinction entre le repos et le mouvement, vous pouvez simplement postuler un modèle à 2 états. Pour les HMM, vous devez spécifier la probabilité d'émission pour chaque état. Mon premier essai serait d'utiliser une exponentielle (ou un gamma?) Pour la phase de repos (car elle est limitée par zéro par le bas et une distribution normale pour l'autre état (vous devez définir les paramètres initiaux sur une valeur raisonnable). Vous peut ensuite calculer la distribution des états postérieurs ainsi que les estimations du maximum de vraisemblance pour vos paramètres. La séquence des états postérieurs peut vous donner les durées estimées des périodes de repos et d'activité (il suffit de compter le nombre d'états successifs). période sombre / claire comme covariable dans le modèle.

Ce http://cran.r-project.org/web/packages/depmixS4/index.html est un excellent package pour les HMM. Cette vignette http://cran.r-project.org/web/packages/depmixS4/vignettes/depmixS4.pdf contient également des informations très utiles sur son application et l'utilisation des contraintes et covariables avec les HMM.

Un problème que je vois, c'est que vous avez plusieurs poissons. Vous devriez commencer par installer un HMM pour chaque poisson séparément. Peut-être pourriez-vous combiner du poisson si vous pouviez en quelque sorte "normaliser" l'activité de telle sorte qu'ils pourraient produire les mêmes paramètres de probabilité d'émission. Ou vous pouvez utiliser le nombre de poissons comme covariable.

Un exemple de code:

require(depmixS4)
set.seed(1)
mod <- depmix( activity~1, data=yourdata, nstates=2,
               family=gaussian() );
fitted <- fit(mod)

mais il existe de très nombreuses possibilités, consultez les liens ci-dessus!

Bonne chance pour votre projet!

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.