Skip to content

時系列解析入門

参考ドキュメント

概要

時系列解析は、時間とともに変化する観測値 x(t)(または離散系列 x_t)から、

  • トレンド(長期変化)
  • 周期性(装置や環境の周期、駆動周波数に同期する応答)
  • 自己相関(過去の影響が残る“記憶”)
  • ノイズ特性(白色、1/f、ランダムウォーク、ドリフト)
  • 構造変化・相転移の開始時刻(変化点)

などを定量化し、解釈・予測・異常検知・モデル化に繋げる手法群です。

材料科学では、例として

  • in situ/operando測定(XRD, XAFS, 電気化学、磁気特性)の時間発展
  • 薄膜・粉末・バルクの長時間安定性(ドリフト、劣化)
  • 磁気ノイズ(MBN)やセンサ信号の過渡応答
  • MDのエネルギー/温度/速度/応力の揺らぎ などが典型です。

1. 時系列の典型パターン

観測 x_t を次の和として考えると整理しやすいです。

加法モデル(代表)

xt=Tt+St+Rt
  • T_t: trend(トレンド)
  • S_t: seasonal(周期・季節性)
  • R_t: residual(残差:ノイズ+短周期成分+未モデル化)

材料データでは “seasonal” は季節に限らず、装置周期(温調サイクル、電源ノイズ、回転系、試料往復など)も含みます。

2. 実験・計算データで必ず確認すること

2.1 サンプリング

  • サンプリング間隔が等間隔か(等間隔でない場合は、そのままARIMA等に入れない)
  • 取得頻度が変わっていないか(途中で設定変更)
  • 欠損(NaN)が発生していないか、欠損の原因(通信、検出器飽和、トリガ不整合)

2.2 ドリフトとオフセット

長時間計測では、温度・機械・電子回路の影響でベースラインが動きます。 ドリフトは「信号」ではなく「系統誤差」であることが多く、先に分離して扱うと解釈が安定します。

2.3 外れ値

外れ値は消す前に理由を確認します(瞬間的な放電、振動、試料位置ずれ、測定レンジ切替)。

3. 前処理

3.1 デトレンド(trend除去)

  • 多項式回帰、移動平均、STL分解などでトレンド成分を分離
  • “物理的に意味のある長時間変化” がある場合は、トレンドを消しすぎない

3.2 差分(differencing)

非定常(平均が変わる)を弱める基本操作:

yt=xtxt1

季節周期 m の差分:

yt=xtxtm

ARIMAの “I” はこの差分回数を意味します。

3.3 標準化・対数

  • 分散が時間とともに変わる(ヘテロスケ)ときは対数変換が有効な場合があります。
  • ただし 0 や負値の扱いに注意します。

4. 定常性(stationarity)の考え方

弱定常の直感:

  • 平均が一定
  • 分散が一定
  • 自己共分散が時刻ではなく遅れ τ のみで決まる

多くの時系列モデル(ARMA/ARIMAなど)は、定常性(または差分で定常化できること)を前提に設計されています。

定常性チェックの道具(代表)

  • 目視:時系列プロット、移動平均との差、分散の時間変化
  • 定量:ADF(単位根)検定、KPSS(定常性)検定など
    • 検定は万能ではないため、目視と併用します。

5. 自己相関(ACF)と偏自己相関(PACF)

自己相関関数(ACF)の定義(概念):

ρ(τ)=Cov(xt,xtτ)Var(xt)
  • ACF: “どれくらい過去が残るか”
  • PACF: “他の遅れの影響を除いた、直接の影響”

モデル同定の直感(典型)

  • AR(p): PACFが p で概ね打ち切り
  • MA(q): ACFが q で概ね打ち切り
  • ARMA: ACF/PACFともに減衰

6. 分解(decomposition):STLの使いどころ

STLは時系列を

  • trend
  • seasonal
  • residual に分ける実用的な方法です。

材料データの使い分け例

  • トレンド:劣化、相変化の進行、ドリフト
  • 季節:温調サイクル、駆動周期、装置の周期ノイズ
  • 残差:ランダム揺らぎ、イベント、ノイズ源

STL後に残差だけを解析すると、

  • 変化点検出
  • 異常検知
  • 短周期モード抽出 がやりやすくなります。

7. 代表モデル(何を目的にするかで選ぶ)

7.1 AR, MA, ARMA, ARIMA(基本)

AR(p):

xt=c+i=1pϕixti+εt

MA(q):

xt=μ+εt+j=1qθjεtj

ARIMA(p,d,q) は d 回の差分で定常化した系列にARMAを当てるモデルです。

使いどころ

  • 比較的短い時系列でも動き、ベースライン変化を差分で吸収できる
  • 外部要因が入る場合は SARIMAX や回帰+ARMA誤差へ拡張

7.2 SARIMA / SARIMAX(周期・外部要因あり)

周期 m の季節性(装置周期、温調周期など)があるときに有効。 x_t に加えて、温度、応力、磁場などの共変量(exog)を入れると、物理解釈もしやすくなります。

7.3 状態空間モデルとカルマンフィルタ(欠損・ノイズ分離に強い)

状態(見えない物理量)z_t が時間発展し、観測 x_t はそれをノイズ付きで見ている、と捉えます。

一般形(概念):

zt=Azt1+wt,xt=Czt+vt
  • 欠損がある時系列
  • 観測ノイズと状態ノイズを分けたい
  • オフライン推定(平滑化)もしたい に強いです。

7.4 指数平滑(Exponential Smoothing)

短期予測やトレンド追従の簡便法。装置モニタの平滑化にも向きます。

8. 変化点検出・異常検知(材料科学で重要)

目的

  • 相転移の開始、析出開始、亀裂発生、装置状態の変化など “いつ起きたか” を推定

考え方(例)

  • 平均が変わる(mean shift)
  • 分散が変わる(variance shift)
  • 傾きが変わる(trend change)
  • 周期成分が消える/出る(seasonal change)

手法は多数ありますが、まずは

  • STLでトレンド/季節を分離
  • 残差に対して閾値・CUSUM・統計モデル から始めると実装しやすいです。

9. 長時間安定性評価:Allan分散(計測・ドリフト解析)

通常の分散は、ランダムウォークや1/fノイズを含むと解釈が難しくなることがあります。 Allan分散(Allan deviation)は「平均化時間」を変えたときの安定性を評価でき、装置ノイズ源の切り分けに使われます。

定義(周波数安定性の文脈が典型だが、計測ドリフト評価にも応用される):

σA2(τ)=12(x¯k+1(τ)x¯k(τ))2
  • τ: 平均化時間
  • x¯k(τ): 区間平均

材料測定の例

  • 磁化、抵抗、歪計、温度センサの長時間ドリフト
  • “最適な平均化時間” の探索(平均し過ぎるとドリフトが支配、短すぎると白色ノイズが支配)

10. 実務フロー

  1. データ仕様確認:等間隔か、fs、欠損、単位、ログ
  2. 可視化:生データ、移動平均、ヒストグラム、差分系列
  3. トレンド/周期の分離:STLやフィルタ、物理的背景と照合
  4. 自己相関評価:ACF/PACF
  5. モデル候補:ARIMA/SARIMAX/状態空間/指数平滑を目的に応じて選ぶ
  6. 評価:時系列の交差検証(ローリング起点)と予測区間の確認
  7. 解釈:推定結果を物理量(緩和時間、時間定数、開始時刻、ドリフト速度)へ落とす
  8. 再現性:前処理・パラメータ・除外条件を必ず記録

11. 材料科学での応用例

  • in situ XRDのピーク位置 x_t の時間発展
    • トレンド:格子定数変化、相分率変化
    • 変化点:相転移開始時刻
    • 周期:温調やガス導入の周期
  • XAFSのフィットパラメータ(配位数、結合距離、Debye-Waller因子)の時間発展
    • トレンド/変化点:反応開始・停止、構造緩和
  • MBNの特徴量(イベント率、エネルギー、帯域積分)の時間発展
    • 非定常信号としてSTFTやウェーブレットと併用することが多い
  • MDの物理量(温度、圧力、全エネルギー、応力、局所秩序指標)の時系列
    • 自己相関から緩和時間、速度自己相関から振動特性へ

12. Pythonで始める最小例

STL分解(trend/season/resid)

  • statsmodels の STL を使う

ARIMA/SARIMAX

  • statsmodels.tsa の ARIMA / statespace.SARIMAX を使う

欠損がある、観測ノイズと状態ノイズを分離したい

  • statsmodels の statespace 系(カルマンフィルタ基盤)を検討する