R-R Interval データの前処理 (2007年11月04日)

早速データの解析を始めたいところだが、今回解析に使用する R-R Interval データはちょっと厄介なところがあって、後々便利なように前処理を行っておく。 データは、去年7月24日に寝ている間の心拍数を計測したものを使用する。 理由は、割と安定して長時間の計測ができたのは いまだかつてその時だけだから。(爆) その時は約4時間40分の計測ができた(データ数14,789)。 下の図-1が実際のデータをプロットしたものだ。

図-1

このデータをそのまま使うにはちょっと厄介なことが2つある。 まず、R-R Interval には寝ている間の眠りの深さ等による長い周期の傾向が入っている。 寝ている間に心拍数が徐々に下がってきていたりするのだ。 そういうデータ成分も重要な情報を含んでいるのだけど、それらを取り除いたデータも後々のため用意しておく。 こういうデータの傾向を取り除く処理をディトレンディング(detrending)という。 下の図-2が上の図-1にディトレンディング(detrending)を施したものだ。 長周期の成分が取り除かれて 全体的にフラットになっているのが分かる。

図-2

ディトレンディング(detrending)の方法は、

  1. オリジナルデータに強いローパスフィルターをかけたデータを得る
  2. そのデータをオリジナルデータから差し引く
  3. オリジナルデータから求めた平均値を足す
2の時点で長周期の傾向成分は取り除かれているのだけど、データの平均が0になってしまっている。 それでもかまわなければそのままで良いのだけど、パワースペクトラム(power spectrum) が変わってしまうので オリジナルのデータに近づけるために3を行う。

ちなみに、ローパスフィルターは

の様に行う。 この場合、重み関数としてガウス分布を使用している。 τを大きく取るとより強いローパスフィルターの効果が得られる。

もうひとつ、R-R Interval は心拍と心拍の間隔を記録したものなので、一定周期で計測されたデータではない。 これは、フーリエ解析を行う上でちょっと厄介だ。 データ数と計測時間から平均的な計測周期を出して 一定周期で計測したものとみなしてデータ処理してもいいのだけど、やっぱりちょっと気持ち悪い。 なので、データ数と計測時間はオリジナルと同じにして 内挿処理を使って一定周期毎に計測したデータに変換しておく。 下の図-3が上の図-2のデータを一定周期でリサンプリング(resampling)したものだ。

図-3

図-2と図-3は 一見殆ど同じに見える。 下の図-4は 最初の10分間のデータを比較したものだ。 赤がディトレンディング(detrending)後のデータ、緑がリサンプリング(resampling)後のデータだ。

図-4

以上でデータ解析の前準備が終わった。