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

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

【フラクタル解析の基礎】DFA、DMA、HFDで時系列を積分する意味

長時間相関過程(long-range correlated process)や 1/f ゆらぎを特徴づけるために広く用いられている Detrended Fluctuation Analysis(DFA)および Detrended Moving Average(DMA)は、時系列を一度「積分(累積和)」してから解析を行います。また、Higuchi fractal dimension (HFD)の推定でも、時系列を積分することで、長時間相関の分析に使えたりします。
 解析対象の時系列を積分するとか微分するとかについて、理解している人には意図通りの当たり前の操作なのですが、わからない人にとっては、意味不明の呪文になっているようです。
 今回は、長時間相関の解析において「なぜ時系列を積分するのか」について解説します。初心者がまず理解するポイントは、「定常的」と「拡散的」の違いを理解することです。

1. なぜ DFA・DMA では時系列を「積分」するのか?

 これは、検出できるスケーリング指数の範囲(主に下限)の都合です。

1.1 積分は、定常過程を「ランダムウォークに変換する」操作

元の時系列を

\displaystyle{
x[i], \; i=1,\dots,N
}

とすると、DFAやDMA の最初の操作は累積和(積分)

\displaystyle{
y[i] = \sum_{k=1}^{i} (x[k]-\bar{x})
}

を計算すること、というのが一般的な説明です。ここで、\bar{x} は、 x のサンプル平均で、平均を引くのは必須ではありませんが、積分時系列が大きくなりすぎるのを防いでくれます。
 この操作の意図は、下の図左のような定常的な過程 (stationary-like process)を、積分して、拡散的な過程 (diffusive-like process)に変換することです。なぜなら、DFAも、DMAも、HFDも、そもそも、時系列の拡散的な性質を評価する方法だからです。これらの方法は、時系列が定常的だと、そのままでは(積分なしでは)、分析できません。

上下の変動幅がほぼ一定の “定常的”過程 (左) と、時間とともに上下の広がりが拡大する “拡散的”過程 (右)。時系列を積分することで、定常的過程を拡散的過程に変換できる。

\beta(パワースペクトルの指数)との関係

 ここでは、元の時系列  x[i]

\displaystyle{
S_x(f) \propto \frac{1}{f^{\beta}}
}

というパワースペクトルに従う場合を考えます。
 この時系列にDFA・DMAを適用すると、Fluctuation Functionは、

\displaystyle{
F(s) \sim s^{\alpha}
}

の形になり、スケーリング指数 \alpha と \beta の間に関係式

\displaystyle{
\alpha = \frac{\beta + 1}{2}
}

が成り立ちます。これが、良く論文で登場する式です。
 ここで、注意してほしいことは、DFA・DMAでは、 \alpha > 0 の範囲でしかスケーリング指数  \alpha を推定できないことです。今回は、説明しませんが、\alpha の検出上限もあるので注意してください。
 先ほどの関係式を変形すると、

\displaystyle{
\beta = 2 \alpha - 1
}

となりますので、 \alpha > 0 ということは、 \beta > -1 の範囲を評価可能ということです。
  -1 \lt \beta \lt 1 の範囲は、定常過程の長時間相関のモデルをカバーするレンジです。たとえば、非整数ガウスノイズやARFIMA (0, d, 0) がこの領域に含まれます。DFA・DMAでは、そのような定常的過程を分析したいので、最初に時系列を積分するのです。つまり、あなたが定常的な時系列を解析したいのであれば、時系列を積分して「拡散的な過程」に変換することが必須です。
 後で、数式を使って説明しますが、 x[i]

\displaystyle{
S_x(f) \propto \frac{1}{f^{\beta}}
}

に従うとき、その積分時系列 \displaystyle{
y[i]
} のパワースペクトルは、

\displaystyle{
S_y(f) \propto \frac{1}{f^{\beta+2}}
}

に変化します。つまり、指数  \beta が、 \beta + 2 になるわけです。
 先ほど、DFA・DMAでは  \beta > -1 の範囲を評価可能と説明しましたが、最初に時系列を積分しているので、実際には、 \beta + 2 > 1 の範囲で、

\displaystyle{
S_y(f) \propto \frac{1}{f^{\beta+2}}
}

に従う積分時系列 \displaystyle{
y[i]
} を解析していることになります。定常な長時間相関過程である  -1 \lt \beta \lt 1 の範囲に興味があるとすれば、 1 \lt \beta + 2 \lt 3 である時系列を実際には解析しており、これは、非整数ブラウン運動のような拡散的なフラクタル過程の変動を解析しているのです(下図参照)。具体例では、ホワイトノイズ  \beta = 0 をDFA・DMAで解析する場合、積分してブラウン運動  \beta = 2 に変形してから、ブラウン運動の拡散の程度  \Delta t^ {H} を表すハースト指数  H = 0.5 (つまり、 \alpha = 0.5)を推定しているのです。したがって、DFA・DMAの場合は、 \alpha = 0.5 はブラウン運動ではなく、積分前のホワイトノイズを特徴づける値になります。

1/f^ \beta 型パワースペクトルを示す時系列を積分するとスケーリング指数 \beta が +2 増加する。
 かなりややこしく感じるかもしれませんが、もう一度整理すれば、時系列を積分しないのであれば、DFA・DMAは、非整数ブラウン運動のような拡散的なフラクタル過程の解析用に作られています。しかし、多くのユーザは、定常な長時間相関過程である非整数ガウスノイズのような変動も解析したいので、時系列を積分して、非整数ガウスを非整数ブラウン運動に変形しているというわけです(下図参照)。
 したがって、観測時系列がそもそも、非整数ブラウン運動のような拡散的な変動であれば、最初に積分する操作は必須ではありません。ただし、積分しないと、指数 \alpha が1だけ小さくなることに注意してください。
スペクトル解析のスケーリング指数  \beta と DFA/DMA のスケーリング指数  \alpha の関係。DFA/DMA では、時系列を積分するので、良く知られている対応  \alpha = (\beta + 1)/2 (\beta \gt -1)が成り立つ。積分しなければ、 \alpha = (\beta - 1)/2 (\beta \gt 1) であることに注意。

1.2 積分するとスケーリング指数が変わる理由

 ここでは、「なぜ積分するとパワースペクトルの指数 \beta\beta+2 に変わるのか」を、積分フィルタの特性から数式を使って説明します。

(1)累積和は「離散時間の積分フィルタ」

元の時系列を x [n] とし、その累積和(積分時系列)を

\displaystyle{
y[i] = \sum_{k=1}^{i} x[k]
}

とします。x を入力、y を出力とみなすと、これは

「入力を積分して出力を得る」

という積分フィルタになっています。
 これを差分方程式で書けば、

\displaystyle{
y[i] - y[i-1] = x[i]
}

と書くこともできます。

(2)周波数領域で見る:伝達関数 H(f)

 このフィルタの特性を周波数領域で見るために、x の離散時間フーリエ変換(DTFT)を X(f)y の DTFT を Y(f) と表すことにします。
 積分操作を書き直した、差分方程式

\displaystyle{
y[i] - y[i-1] = x[i]
}

を DTFT に変換すると、

\displaystyle{
Y(f) - e^{-j 2 \pi f} Y(f) = X(f)
}

となるので、

\displaystyle{
Y(f)\bigl(1 - e^{-j 2 \pi f}\bigr) = X(f)
}

と書けます。したがって、積分フィルタの周波数応答(伝達関数) H(f)

\displaystyle{
H(f)
= \frac{Y(f)}{X(f)}
= \frac{1}{1 - e^{-j 2 \pi f}}
}

となります。

(3)低周波での近似:連続時間の積分と同じ 1/f

 H(f) を少し変形すると、

\displaystyle{
H(f)
= \frac{1}{1 - e^{-j 2 \pi f}}
= \frac{e^{j \pi f}}{e^{j \pi f} - e^{-j \pi f}}
= \frac{e^{j \pi f}}{2i\sin(\pi f)}
}

ですから、振幅(絶対値)は

\displaystyle{
\bigl|H(f)\bigr|
= \frac{1}{2\,\bigl|\sin(\pi f)\bigr|}
}

となります。ここで、低周波 |f| \ll 1/2 を考えると、\sin(\pi f) \approx f なので、

\displaystyle{
\bigl|H(f)\bigr|
\approx \frac{1}{2 \pi |f|}
}

が得られます。
 これは、連続時間の積分フィルタの周波数応答

\displaystyle{
H_{\mathrm{cont}}(f) = \frac{1}{i 2\pi f}
}

の絶対値 |H_{\mathrm{cont}}(f)| \propto 1/|f| と同じ形であり、低周波ほど強く増幅する(1/周波数)型のフィルタになっていることがわかります。

(4)パワースペクトルへの影響:指数が \beta \to \beta+2 だけ増える

元の時系列 x のパワースペクトルを S_x(f)、 積分後の時系列 y のパワースペクトルを S_y(f) とします。
 線形フィルタを通したとき、パワースペクトルは

\displaystyle{
S_y(f)
= S_x(f)\,\bigl|H(f)\bigr|^2
}

で与えられます。
 もし元の時系列 x が低周波で

\displaystyle{
S_x(f) \propto \frac{1}{|f|^{\beta}}
}

という 1/f^\beta 型のスペクトルをもっているとすると、積分フィルタの振幅は低周波で |H(f)| \approx 1/|f| なので、

\displaystyle{
S_y(f)
\;=\;
S_x(f)\,\bigl|H(f)\bigr|^2
\;\propto\;
\frac{1}{|f|^{\beta}}
\cdot
\frac{1}{|f|^{2}}
\;=\;
\frac{1}{|f|^{\beta+2}}
}

となります。
 つまり、

  • 元の時系列: S_x(f) \propto 1/|f|^{\beta}
  • 積分後の時系列: S_y(f) \propto 1/|f|^{\beta+2}

となり、積分によってパワースペクトルの指数 \beta\beta+2 に 2 だけ増加することになります。
 また、これをDFA・DMAの指数 \alpha で考えるのであれば、積分によって \alpha+1 となります。通常は既に+1された \alpha の値が基準となっていますので、頭が混乱してきた人はこの部分は無視してください。

3. HFDでも積分を使った解析ができる

 Higuchi fractal dimension(HFD)は、通常は元の時系列そのものを入力として用い、拡散的(fBm-like)なフラクタル過程のフラクタル次元を推定する手法として使われます。この意味では、もともと「非整数ブラウン運動のような拡散的ゆらぎ」を念頭においた指標と言えます(下図参照)。

通常の(時系列を積分しない)HFD。HFDは、非整数ブラウン運動を解析対象としている。
 一方で、DFA・DMA と同様に、前処理として一度時系列を積分してから HFD を適用することもできます。定常な長時間相関過程(fGn-like、非整数ガウスノイズ)の時系列に対して、まず累積和をとって拡散的(fBm-like)な系列に変換し、その積分系列に HFD を適用すれば、「もとの非整数ガウス過程に由来するフラクタル性」を間接的に評価できます。
 つまり、HFD は本来は積分なしで使われる指標ですが、「積分 → HFD」という手順をとることで、DFA・DMA と同様に、定常な長時間相関過程(fGn-like)にも解析対象を拡張できる、ということです(下図参照)。
時系列を積分する場合のHFD。この場合は、非整数ガウスノイズを解析できる。

4. まとめ:AIを信じて思考停止に陥るな

 一般の実務家は、解析法の詳細まで完全に理解する必要はありませんが、最低限理解しておく必要がある内容はあります。お手軽なAI時代になった今でも、残念ながら生成AIの説明が間違っていることがあります。AIの説明をうのみにせず、論文を読んだり、少し数学的に考えたりして、解析法を理解するようにしてください。
 最近の若い人は「人生は、テストで点数をとるゲーム」と考えているのではないかと心配になります。私は「自ら問題を見つけて理解しようとすることが大切だよ」と常々言っているのですが、意味が伝わっているか心配になります。生成AIに質問して、「理解を深める」のであれば良いのですが、生成AIに頼り切って「理解のための思考を停止する」のはやめてください。
 フラクタル解析は数学的にきちんとした枠組みなのですが、一方で、何人かの研究者は「いい加減な間違った説明」を論文中で展開しています。そして、その間違った説明を信じて、他の人がそれを引用し、繰り返し多数の論文中にあふれかえることで、「間違い」が「真実の響き」をもつようになることがあります。AIはその間違った真実を、きちんと判別できると信じたいです。

※ もし記事の中で「ここ違うよ」という点や気になるところがあれば、気軽に指摘していただけると助かります。質問や「このテーマも取り上げてほしい」といったリクエストも大歓迎です。必ず対応するとは約束できませんが、できるだけ今後の記事で扱いたいと思います。それと、下のはてなブログランキングはあまり信用できる指標ではなさそうですが (私のブログを読んでいる人は、実際とても少ないです)、押してもらえるとシンプルに励みになります。気が向いたときにポチッとしていただけたら嬉しいです。