時系列解析入門
参考ドキュメント
- NIST/SEMATECH e-Handbook of Statistical Methods: Time Series Analysis
- statsmodels: Time Series analysis (tsa)
- statsmodels: STL decomposition
- Barkhausen noiseの非定常解析(STFTなど、公開論文例)
概要
時系列解析は、時間とともに変化する観測値 x(t)(または離散系列 x_t)から、
- トレンド(長期変化)
- 周期性(装置や環境の周期、駆動周波数に同期する応答)
- 自己相関(過去の影響が残る“記憶”)
- ノイズ特性(白色、1/f、ランダムウォーク、ドリフト)
- 構造変化・相転移の開始時刻(変化点)
などを定量化し、解釈・予測・異常検知・モデル化に繋げる手法群です。
材料科学では、例として
- in situ/operando測定(XRD, XAFS, 電気化学、磁気特性)の時間発展
- 薄膜・粉末・バルクの長時間安定性(ドリフト、劣化)
- 磁気ノイズ(MBN)やセンサ信号の過渡応答
- MDのエネルギー/温度/速度/応力の揺らぎ などが典型です。
1. 時系列の典型パターン
観測 x_t を次の和として考えると整理しやすいです。
加法モデル(代表)
- 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)
非定常(平均が変わる)を弱める基本操作:
季節周期 m の差分:
ARIMAの “I” はこの差分回数を意味します。
3.3 標準化・対数
- 分散が時間とともに変わる(ヘテロスケ)ときは対数変換が有効な場合があります。
- ただし 0 や負値の扱いに注意します。
4. 定常性(stationarity)の考え方
弱定常の直感:
- 平均が一定
- 分散が一定
- 自己共分散が時刻ではなく遅れ τ のみで決まる
多くの時系列モデル(ARMA/ARIMAなど)は、定常性(または差分で定常化できること)を前提に設計されています。
定常性チェックの道具(代表)
- 目視:時系列プロット、移動平均との差、分散の時間変化
- 定量:ADF(単位根)検定、KPSS(定常性)検定など
- 検定は万能ではないため、目視と併用します。
5. 自己相関(ACF)と偏自己相関(PACF)
自己相関関数(ACF)の定義(概念):
- 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):
MA(q):
ARIMA(p,d,q) は d 回の差分で定常化した系列にARMAを当てるモデルです。
使いどころ
- 比較的短い時系列でも動き、ベースライン変化を差分で吸収できる
- 外部要因が入る場合は SARIMAX や回帰+ARMA誤差へ拡張
7.2 SARIMA / SARIMAX(周期・外部要因あり)
周期 m の季節性(装置周期、温調周期など)があるときに有効。 x_t に加えて、温度、応力、磁場などの共変量(exog)を入れると、物理解釈もしやすくなります。
7.3 状態空間モデルとカルマンフィルタ(欠損・ノイズ分離に強い)
状態(見えない物理量)z_t が時間発展し、観測 x_t はそれをノイズ付きで見ている、と捉えます。
一般形(概念):
- 欠損がある時系列
- 観測ノイズと状態ノイズを分けたい
- オフライン推定(平滑化)もしたい に強いです。
7.4 指数平滑(Exponential Smoothing)
短期予測やトレンド追従の簡便法。装置モニタの平滑化にも向きます。
8. 変化点検出・異常検知(材料科学で重要)
目的
- 相転移の開始、析出開始、亀裂発生、装置状態の変化など “いつ起きたか” を推定
考え方(例)
- 平均が変わる(mean shift)
- 分散が変わる(variance shift)
- 傾きが変わる(trend change)
- 周期成分が消える/出る(seasonal change)
手法は多数ありますが、まずは
- STLでトレンド/季節を分離
- 残差に対して閾値・CUSUM・統計モデル から始めると実装しやすいです。
9. 長時間安定性評価:Allan分散(計測・ドリフト解析)
通常の分散は、ランダムウォークや1/fノイズを含むと解釈が難しくなることがあります。 Allan分散(Allan deviation)は「平均化時間」を変えたときの安定性を評価でき、装置ノイズ源の切り分けに使われます。
定義(周波数安定性の文脈が典型だが、計測ドリフト評価にも応用される):
: 平均化時間 : 区間平均
材料測定の例
- 磁化、抵抗、歪計、温度センサの長時間ドリフト
- “最適な平均化時間” の探索(平均し過ぎるとドリフトが支配、短すぎると白色ノイズが支配)
10. 実務フロー
- データ仕様確認:等間隔か、fs、欠損、単位、ログ
- 可視化:生データ、移動平均、ヒストグラム、差分系列
- トレンド/周期の分離:STLやフィルタ、物理的背景と照合
- 自己相関評価:ACF/PACF
- モデル候補:ARIMA/SARIMAX/状態空間/指数平滑を目的に応じて選ぶ
- 評価:時系列の交差検証(ローリング起点)と予測区間の確認
- 解釈:推定結果を物理量(緩和時間、時間定数、開始時刻、ドリフト速度)へ落とす
- 再現性:前処理・パラメータ・除外条件を必ず記録
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 系(カルマンフィルタ基盤)を検討する