見出し画像

正準相関分析についての自分なりのメモ

正準相関分析を最近勉強したのでメモがてら理解したことを書いてみる。どの解説サイトを見ても専門用語が多くしんどいので自分なりに分かりやすく書いてみようと思う。責任と自信をもって書いてはいるが、なにぶん勉強中の身なので間違っているところなど見つけた方はぜひコメントで教えてほしい。日々勉強だ・・・

1.正準相関分析とは?どういうときに使う?

正準相関分析はCCA(Canonical Correlation Analysis)とも表記される分析方法であり、2つのデータセットが持つ共通成分を抽出するための解析方法である。

あるサンプルに対して2パターンのデータをサンプリングした際にそのパターン間での共通性を取り出す場合に使うのが一般的かなと思う。

例えば、ある会社の社員の健康診断結果と業績であったり、クラスの生徒の期末テストの成績と体力テストの成績との相関なんかを分析することができる。

正準相関分析を利用すれば、健康診断の中のどんな項目が業績の中のどんな数値と関連しそうか、期末テストと運動テストの中で関連してくる項目はどんなものか、といったことが分かってくる。

こういうことは人間の目で見ればわかると思いがちだが、ビッグデータを処理しようとすると、それこそ何百人規模のデータを処理する必要があるため、なかなか難しい。そこでこういった手法が使われるというわけだ。

多次元データを解釈するための手法としては主成分分析もあるが、使いどころがちょっと違う。主成分分析はデータの分散を主軸に解析してくれるが、正準相関分析は共通性に着目してくれる。ノイズとなる要素が大きい場合は主成分分析ではマスクされてしまうが、正準相関分析ではそのノイズを排除できるという強みがある。

今回僕は全国の河川から得られた環境DNAによる生物相のデータと川自体の特徴データ(水質や流域面積など)との間の関連を探るために正準相関分析を用いた。

2.Rでの解析の仕方とその結果の解釈

まず二つのデータセットを用意する(便宜上data1とdata2とする)。

この場合、

cancor(data1, data2)

とするだけでよい。めっちゃ簡単である。

出てくる結果でポイントになるのはcoefで表される係数の推定値の部分。それぞれの変数について係数が推定されるわけだが、この係数が0から離れれば離れるほど、その変数が関連していることになる。

正準相関係数というのは二つのデータセットの共通性を最大化するための係数なので、推測された係数をデータセットにかけてやった状態の二つのデータセットは似た形になるというわけである。

3.解析における注意点

【データセットの標本数】

用意するデータセットの次元数については異なっていても問題ないが、標本数については同じものである方が解釈の上ではやりやすいのかなと思う。一応、標本数が異なっていても操作自体はできるようだが、どのような解釈になるのかは勉強中。

【次元数について】

多くの解説サイトでは2次元同士を比較している(参考サイト1参考サイト2)。そのため、2次元同士だとグラフまで作れたりするわけだが、この解析手法自体は2次元でなくてもよい。2次元を超える場合には人間の目では解釈が難しくなるので、上記のように変数自体に割り当てられる推定係数をみて解釈するのが良いと思う。

4.あとがき

一つの取り組みとしてこういった記事も書いてみた。また機会があれば他の内容についても書いてみようと思う。超初心者が学ぶRの使い方講座とか需要あるかな・・・

この記事が気に入ったらサポートをしてみませんか?