ケィオスの時系列解析メモランダム

時系列解析、生体情報解析などをやわらかく語ります

時系列データに対するHiguchi法のフラクタル解析:「どれだけギザギザしているか」で測る

 株価の変動、心拍間隔の揺らぎ、脳波の波形など、時系列データをグラフに描くと、多くの場合その形は「ギザギザ」しています (下の図参照)。この「ギザギザ」は、データの生成メカニズムを反映しているかもしれませんので、ギザギザを定量化して、その違いを見分けられると、時系列データの分析に役に立つかもしれません。この「ギザギザさ」を数値として評価する代表的な指標が、ハースト指数(Hurst exponent)やフラクタル次元(fractal dimension)です。

1次元ブラウン運動の標本軌道。どんなに部分を拡大しても、元と似たギザギザが現われる。

 これらの指標は、上のグラフに見られるような、グラフをどれだけ拡大・縮小しても似たようなギザギザパターンが現れるという性質、すなわち自己相似性(self-similarity)、あるいは、自己アフィン性に注目して、「ギザギザさ」を測るものです。フラクタル解析では、ギザギザ度は、フラクタル次元 \displaystyle{
D
} で表されます。

 「次元」は、もともと図形のトポロジー的な特徴を表す概念で、たとえば、

  • 一本の線(線分)は長さだけを持つので1次元
  • 円や三角形、四角形などの面を持つ図形は2次元
  • 立方体や球のように体積を持つものは3次元です。

このような次元については、みなさんも知っていると思います。このような整数値で表される次元を位相次元(topological dimension)と呼びます。位相次元の考え方では、図形上の位置を指定するために必要な変数の数を数えれば次元が決まります。

一本の道上で距離を指定すれば、スタート地点からゴール地点が指定できる?(a) 直線の道。(b) 曲がった道。(c) コッホ曲線の道。

 たとえば、上の図のように、直線だけでなく、なめらかに曲がった曲線であっても、その線上のどこかに原点(スタート地点)を決め、そこからの距離を一つ指定すれば、線上の任意の位置(たとえばゴール地点)を特定できます。 このように、1つの数値(距離)だけで図形上の位置を指定できる場合、その図形の次元は 1といえます。一方、上の図の右に示したコッホ曲線のようにギザギザしたフラクタル図形では、どの部分区間を拡大しても同じような凸凹が続くため、理論的にはその「長さ」が無限大になります。つまり、青のスタート地点から、赤のゴール地点までの距離は無限に長いのです。

 コッホ曲線は、一見すると1次元の図形の仲間に思えます。ところが、同じ1次元図形と比べると、長さが定義できない(無限大になる)ため、距離(一つの変数)だけでは任意の位置を一意に指定できないという異常があります。 では、2次元とみなせるかというと、確かに平面上の点として \displaystyle{
(x,y)
} の2座標で、曲線上の任意の位置は指定できます。しかし、コッホ曲線そのものには、どこを見ても面はありません。したがって、2次元図形と呼ぶにはスカスカすぎるのです。

コッホ曲線。コッホ曲線の部分をいくら拡大してもギザギザがなくならない。

 そのような位相次元の困難を避けて、ギザギザ構造を定量化できるようにしたものがフラクタル次元です。さらに、フラクタル次元はハースト指数(Hurst exponent) \displaystyle{
 H
} とも密接に関係しており、両者の間には次の簡単な関係式があります:

\displaystyle{
D = 2 - H
}

 この関係をもとに、樋口先生は、時系列データからフラクタル次元 \displaystyle{
D
} を直接求める実用的な手法を提案しました。この手法は現在、Higuchi法(Higuchi’s fractal dimension method)として広く知られています。

 今回は、このHiguchi法の考え方と手順について説明します。

Higuchi法の基本的な考え方

Higuchi法の発想はシンプルです。時系列データのグラフの概形は、粗視化スケール (解像度の変化みたいなもの)によって見かけの長さが変わる。その長さの変化から、フラクタル次元(ギザギザの程度)を推定できるということです。

Higuchi法の手順

以下の手順で時系列 \displaystyle{
\left\{x [1], x [2], \cdots, x [N] \right\}
} からフラクタル次元 \displaystyle{
D
} を求めます。

(1) 粗視化スケールの設定

 ここで言う「粗視化」とは、写真の解像度を変えて、細部がぼやけた荒い画像にしていくことです。どの程度荒くするかを決める粗視化スケール(間引き間隔)を

\displaystyle{
k = 1, 2, 4, ..., k_{\max} 
}

のように設定します。 小さい \displaystyle{
k
} は高解像度(短い時間スケール)を、大きい \displaystyle{
k
} は低解像度(長い時間スケール)を表します。

 Higuchi法では、時系列のデータ点を間引くことで、粗視化された時系列データを生成します。たとえば、最初の点 \displaystyle{
x[1]
} から、\displaystyle{
k
} ごとの時系列データを使い、他を無視した粗視化時系列

\displaystyle{
X_1^{(k)} = \left\{ X[1], X[1+k], X[1+2k], ..., X \left[1 + \lfloor \frac{N - 1}{k} \rfloor k \right] \right\}
}

を解析します。下の左図は、このように、 \displaystyle{
k
} を変化せた場合の粗視化時系列を描いたものです。

Higuchi法における粗視化(左)と曲線長さの粗視化スケール依存性(右)。

(2) 粗視化時系列を複数用意

 粗視化時系列では、途中のデータを間引きます。このようにデータを間引くと、使わないデータが出てくるのでもったいないです。そこで、Higuchi法では、粗視化時系列として抽出する点を、1点ずつシフトして、同じ粗視化スケールの粗視化時系列を複数用意します。つまり、各スケール \displaystyle{
k
} に対して、開始点を \displaystyle{
m = 1, 2, ..., k
} のようにずらし、

\displaystyle{
X_m^{(k)} = \left\{ X[m], X[m+k], X[m+2k], ..., X \left[m + \left\lfloor \frac{N - m}{k} \right\rfloor k \right] \right\}
}

のような粗視化時系列を \displaystyle{
k
} 本作れば、すべてのデータを解析に用いることができます。

 たとえば、例えば \displaystyle{
k=3
} のとき、

  • \displaystyle{
m=1
} なら \displaystyle{
\left\{ x[1], x[4], x[7], \cdots \right\}
}.
  • \displaystyle{
m=2
} なら \displaystyle{
\left\{ x[2], x[5], x[8], \cdots \right\}
}.
  • \displaystyle{
m=3
} なら \displaystyle{
\left\{ x[3], x[6], x[9], \cdots \right\}
}.

のようになります。

(3) 各粗視化時系列の平均変化幅を求める

 ここで扱う量について、Higuchi先生 (1988, Physica D) の原著では、"the length of the curve"と書かれていますので、「グラフの長さ」のような印象がありますが、実際は長さではなく、元の観測時系列の 1点当たりの平均変化幅 を計算します。

 原著の通りの式を使えば、

\displaystyle{
L_m(k) = \frac{N - 1}{\left\lfloor \frac{N - m}{k} \right\rfloor k^2}
\sum_{i=1}^{\left\lfloor \frac{N - m}{k} \right\rfloor}
\left| X(m + i k) - X(m + (i - 1)k) \right|
}

を計算し、すべての開始点 \displaystyle{
m
} についての平均を取ります:

\displaystyle{
L(k) = \frac{1}{k} \sum_{m=1}^{k} L_m(k)
}

 私の素直な意見としては、

\displaystyle{
L_m(k) = \frac{N - 1}{\left\lfloor \frac{N - m}{k} \right\rfloor k^2}
\sum_{i=1}^{\left\lfloor \frac{N - m}{k} \right\rfloor}
\left| X(m + i k) - X(m + (i - 1)k) \right|
}

\displaystyle{
L_m(k) = \frac{N - 1}{\left\lfloor \frac{N - m}{k} \right\rfloor}
\sum_{i=1}^{\left\lfloor \frac{N - m}{k} \right\rfloor}
\left| X(m + i k) - X(m + (i - 1)k) \right|
}

とした方が、無駄な計算がなくなって効率的であり、発散を嫌うのであれば、元の\displaystyle{
k^ 2
} で割る部分を \displaystyle{
k
} で割るようにした方が良いのではないかと感じます。

 とはいえ、細かいことなので、原著のままの式で大丈夫です。

(4) フラクタル次元 D の算出

 フラクタル次元は \displaystyle{
L(k)
}\displaystyle{
k
} の関係を両対数グラフにプロットし、その傾きから推定できます。

 なぜなら、観測時系列がフラクタル性を持てば、

\displaystyle{
L(k) \propto k^{-D}
}

が成り立ちます。したがって、\displaystyle{
\log L(k)
}\displaystyle{
\log k
} の関係は直線になり、その傾きが \displaystyle{
-D
} となります。つまり、

\displaystyle{
D = - \frac{d \log L(k)}{d \log k}
}

です。

Higuchi法の利点

 Higuchi法は、時系列の隣接点間の差分に基づいて計算するため、データを差分化した形で扱う「差分定常」な解析になります。これにより、全体の平均値や緩やかなトレンドの影響を受けにくく、局所的な変化だけに注目できます。そのため、データ点が少ない場合でも安定してフラクタル次元を推定できるという特徴があります。

今後の展望

 Higuchi法は、非定常トレンドの影響を受けにくいと言われていますが、それでも、悪影響はあります。その欠点を改善する方法をこれから開発したいと思います。さらに、非ガウス解析にも類似のアイデアを使いたいと思います。

 Higuchi法はフラクタル次元を求める方法と言われますが、実際はハースト指数を推定する方法といった方が、わかりやすいと思います。Higuchi法がうまくいく理由を、理論的にも解説したいと思います。今回は、書くのはあきらめますが、以下の過去の記事を参考にして下さい。

chaosmemo.com