時系列でイベントのパターンを探す


8

私は、12匹の魚からなる8つの処理グループを24時間、5秒間隔で観察する時間経過実験を行っています。行われた測定の中には、観測間で各魚が移動する距離(mm)があります。24時間は、1つの暗い期間と1つの明るい期間に分割されます。

以下は、暗期の最初の1時間における処理グループHの12匹の個々の魚の動きのプロットです。

暗闇の最初の1時間のコントロールグループ

この特定の期間中、一部の魚は長期間非活動状態であり、一部の魚は非活動期間であることがわかります。暗期全体と明期全体の休息期間の長さと頻度を特定できるように、処理グループの12匹すべての魚のデータを組み合わせる必要があります。これは、治療グループごとに行う必要があります。次に、残りの期間の長さと頻度の違いを比較する必要があります。

私は統計ギャルではなく、完全に海にいます。この問題は私(私のバイオインフォマティクスの背景)のシーケンスアラインメントに似ているため、隠れマルコフモデルを考えていますが、これは根本から外れている可能性があります。誰かがこの問題への適切なアプローチを提案し、おそらくRの小さな例を提案できますか?

ありがとう!


1
これにはいくつかの副問題があるようです。まず、各魚の非活動期間を見つけて抽出する必要があります。人は見ているだけでそれを行うことができますが、大量のデータがある場合は、自動的にそれを実行したいと思うかもしれません。次に、すべての魚を1つのグループにまとめる必要があります。3番目に、グループ間でそれらを比較する必要があります。次のうち、サポートが必要なものはどれですか。あなたがHMMについて言及したので、私は最初のものを推測しています。もしそうなら、自明な方法は、motion = 0のときに間隔を見つけることです。なぜそれが機能しないのですか?休憩中に短いスパイクが1つある場合、それを1つの長い期間として数えますか
SheldonCooper '07 / 07/15

または2つの短い期間?モーションが0ではないが0に非常に近い場合、それを休息としてカウントしますか?
シェルドンクーパー2011

@SheldonCooper:それは私が問題を抱えている最初の問題です。最小限の活動は、休息の中断として数えるべきではありません。したがって、サンプルc93には1(または場合によっては2)の非アクティブ期間がありますが、サンプルc87には4期間があります。また、これらの観測はほぼ周期的に表示されるため、おそらくフーリエ解析が適切なアプローチかもしれないと考えていました。
dnagirl

1
「非活動」または「休息」の正式な定義が必要になると思います。プロットがどのように見えるかという点ではなく、魚が何をするかという点でそれを述べることは問題ありません(後で翻訳することができます)が、それは正式でなければなりません。正式な定義がまさにあなたが助けを必要とするものであるなら、ここに考慮すべきいくつかの事柄があります:1.私はあなたがとって使うことができる「時系列の非活動」の標準的な定義はないと思います。2.定義を作成するために、実験についてより多くのコンテキストを知ることが役立つ場合があります。
SheldonCooper、2011

3.生物学では、人々は多くの場合、「非アクティブはモーションが0.1未満で、高さのスパイクが2以下で持続時間が20秒以下で、少なくとも間隔が空けられている場合に中断される可能性がある任意の連続期間です。 5分間隔で。」確かに、この定義は脆弱であり、しきい値は任意であるように見えますが(4分55秒間隔である場合はどうでしょうか)、主な目的は、常識を使用して休息期間を分類するときに人が持つ可能性のあるバイアスを取り除くことです。
SheldonCooper、2011

回答:


1

HMMベースの分析が役立つと思います。休息と運動の違いを探していることがわかっているので、2状態モデルを仮定することができます。HMMの場合、各州の放出確率を指定する必要があります。私の最初の試みは、静止フェーズに指数関数(またはガンマ?)を使用することです(それは下からゼロで囲まれ、他の状態の正規分布のため(初期パラメーターを適切な値に設定する必要があります)。次に、パラメーターの最尤推定値とともに事後状態分布を計算できます。事後状態シーケンスは、休止期間と活動期間の推定長さを提供します(連続する状態の数を数えるだけです)。モデルへの共変量としての暗い/明るい期間。

このhttp://cran.r-project.org/web/packages/depmixS4/index.htmlは、HMMに最適なパッケージです。このhttp://cran.r-project.org/web/packages/depmixS4/vignettes/depmixS4.pdfビネットには、そのアプリケーションと、HMMでの制約と共変量の使用法に関する非常に役立つ情報が含まれています。

私が見ている一つの問題は、あなたが複数の魚を持っているということです。最初に、各魚のHMMを個別にフィッティングする必要があります。たぶん、同じ放出確率パラメータが得られるように何らかの方法で活動を「正規化」できれば、魚を組み合わせることができます。または、魚の数を共変量として使用することもできます。

いくつかのサンプルコード:

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

しかし、多くの可能性があります。上記のリンクをチェックしてください!

あなたのプロジェクトで頑張ってください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.