logo

経験的直交関数解析: EOF 📂統計的分析

経験的直交関数解析: EOF

定義

時系列データに対する主成分分析経験的直交関数EOF, Empirical Orthogonal Function 解析という。

説明 1 2

EOF解析は、データを支配的に良く説明するが相対的に数が少なく相互に相関のない独立変数として元のパターンの大部分を要約しようとする統計的手法である。感覚的に言えば主成分分析フーリエ変換の中間あたりの発想に従い、実際に用途や長短もそれらと似ていると言える。

通常は実装でも特異値分解を用いるためPCAそのものだが、PCAをPCAと呼ばずEOFと別名で呼ぶ最大の理由は分野fieldの違いである。多くの場合EOFは海洋に関連し、広大な海域を扱う多変量時系列データに適用される。

EOFはフーリエ解析でいうところの基底となる三角関数を、データに基づく経験的関数empirical function $f_{k} : \mathbb{R} \to \mathbb{R}$ 群の線形結合として表すことを目的とする。これは関数というものの一般的定義に慣れた数学者にはやや違和感があるかもしれないが、地球科学系出身の人にとっては、関数というと一つの数を入れれば一つの数が出る高校レベルの関数のほうが馴染み深いことを考慮するとよい。

デザイン行列 $X \in \mathbb{R}^{m \times n}$ は $n$ 個の地点で $i = 1 , \cdots , m$ 番目のタイムステップが記録されたパネルデータセットと見る。これに対する特異値分解の結果として行列 $U, \Sigma, V$ があり, $U$ の ▷eq07◯番目の列ベクトルは即座に $j$ 番目のEOFとなる。$j$ 番目の特異値はPCAと同様に $j$ 番目EOFの重要度の指標として解釈される。

このデータは、東海の150地点で5年半にわたって収集された海面水温SST, Sea Surface Temperatureのデータで、ハイコムから入手できる。

alt text

元のデータが上図のようであれば、全データのほとんどは次のように最初の二つのEOFで説明できる。

alt text

このような結果を得るための $U$ を求めるには単に $X \in \mathbb{R}^{m \times 150}$ に特異値分解を適用すればよい。以下のコードは Julia で書かれているが言語は大きく重要ではない。

U, S, V = svd(Matrix(data))
plot(
    plot(U[:, 1]),
    plot(U[:, 2]),
)