ケイエルブイは、ハイパースペクトルカメラ・光学部品・光源など世界中の光学機器を取り扱う専門商社です。

03-3258-1238

お問い合わせ
KLV大学 分光コース

【スペクトルの多変量解析】主成分分析(PCA)を使った物質の分類編

物質はその組成によって吸収する光の波長が異なるため、光の吸収波長を調べることで、物質を分類することが可能です。

この時、物質によって異なる光の吸収波長を正しく捉えるには、複数の波長の情報(スペクトルデータ)を取得して、正しく解析する必要があります。
ただし、100波長の情報を持つスペクトルデータは100次元の情報を持つ複雑なデータ構造となるため、100次元の空間上でこのデータを視覚的に理解し、各スペクトルを正確に分類することは極めて困難です。

本記事では、多次元のスペクトルデータを情報をなるべく失わずに2次元や3次元に圧縮し、物質の分類を実現する主成分分析(PCA)にの基礎を解説します。

1. 複雑なスペクトルの分類には主成分分析(PCA)

スペクトルのような多次元データを統計的に解析し、物質の分類を実現するのが主成分分析(PCA)です。

主成分分析(PCA)は、データの中に含まれる重要な情報をできる限り保持しつつ、次元を圧縮するための手法です。

主成分分析(PCA)を用いることで、100次元のスペクトルデータを2次元または3次元の空間に投影し、視覚的に把握しやすい形式でプロットすることができます。
これにより、2次元、3次元のわかりやすい空間で、物質の分類を簡単に行うことができるようになります。

スペクトルのPCA解析

ただし、次元を圧縮する際に、一部の情報が欠落することは避けられません。
そこで、主成分分析(PCA)は各スペクトルの特徴を考慮し、新たに設定する次元(主成分)にデータの情報を集中させます。

ここからは、主成分分析(PCA)によるスペクトルの次元の圧縮に焦点を当て、「情報を失わずに次元を圧縮するとはどういうことなのか」、「失われる情報はは何なのか」「情報が失われていないことは確認できるのか」など、基礎を解説します。
この基礎を確認いただいた上で、スペクトルデータにおける主成分分析(PCA)の例を通じて、実際の活用イメージを持っていただければと思います。

2. 主成分分析(PCA)が行う次元の圧縮とは

主成分分析は、前述したように、多次元のデータが持つ情報をなるべく保持しつつ、分類などが行いやすいように、少数の重要な次元に圧縮する手法です。

次元を圧縮する概念を、"2次元→1次元の圧縮"、"3次元→2次元の圧縮"、"多次元→3次元の圧縮"と少しずつ次元を大きくしながら解説していきます。

主成分分析(PCA)による"2次元→1次元の圧縮"を解説

例として、600nmと700nmの2波長(2次元)のスペクトルデータを1次元に圧縮する場合を考えます。

600nmの波長における輝度値をx、700nmの波長における輝度値をyとして、それぞれのスペクトルデータの情報を2次元平面にプロットします。

スペクトルのPCA解析による2次元から1次元への圧縮

主成分分析(PCA)では、このデータを1次元に圧縮するために、2次元平面上に1次元の線を引きます。
この新たに引いた軸を、主成分と呼びます。

そして、この主成分の線に対して各データポイントから垂線を下ろして、元々2次元に存在していたプロットを主成分の線上に投影します。
これにより、元々2次元のデータを新たな主成分を軸とした1次元のデータとして表現することができます。

この考え方を基本に、3次元を2次元に圧縮する場合も考えています。

主成分分析(PCA)による"3次元→2次元の圧縮"を解説

例として、600nm, 700nm, 800nmの3波長(3次元)のスペクトルデータを2次元に圧縮する場合を考えます。

600nmの波長における輝度値をx、700nmの波長における輝度値をy、800nmの波長における輝度値をzとして、それぞれのスペクトルデータの情報を3次元上にプロットします。

スペクトルのPCA解析による3次元から2次元への圧縮

このデータを2次元に圧縮する場合、3次元空間内に2次元平面を描きます。

新たに描いた2次元平面には、x軸とy軸の2つの主成分が存在します。

そして、この平面に対して各データポイントから垂線を下ろすことで、元々3次元に存在していたデータを2つの主成分からなる平面上に投影し、2次元のデータとして表現します。
このように簡単に3次元のデータを2次元にすることが可能です。

主成分分析(PCA)による"多次元→3次元の圧縮"を解説

最後に実際のケースに近いハイパースペクトルカメラで撮影した100次元以上の多次元データを、3次元に圧縮する場合を考えます。

3次元以上の多次元データはグラフで表すことが難しいため、配列で考えます。

スペクトルのPCA解析による多次元から3次元への圧縮

スペクトル画像データは、xy平面が波長数分のデータを持つキューブデータですので、これを配列にするため、xy平面の画素の情報をまとめ列方向に、波長を行方向に並べます。

すると、列方向に各データポイント(n個)、行方向に各波長(λ個)の情報を並べた、[λ,n]の配列(波長が100波長の場合は100次元の配列)となります。

3次元から2次元への圧縮のように、この100波長の情報を持った100次元の配列を3次元に射影する事を考えた際に、それは、[100,3]の変換行列を使用して、[3,n]といいう3次元の配列を作成することで実現されます。

圧縮前のスペクトルデータ[100,n] = 変換行列[ 100,3] × 圧縮後のデータ[3,n]

この時、変換行列の"3"の部分が圧縮したい次元になります。この値を変えることで、好きな次元に圧縮することが可能です。

ここまでで、多次元のデータは、「新たに軸を作ってそこにデータを射影することで次元を圧縮すること」、「視覚的にわかるのは3次元までであり、基本的には行列計算で求められること」ご紹介しました。

一方で、次元を圧縮するということは、そこで失われる情報が存在することになります。
そこで、次に主成分分析(PCA)で失われる情報について解説していきます。

3. 主成分分析(PCA)で情報を失わないように次元を圧縮するには

次元を圧縮する際に重要な事は、できるだけ情報が失わないようにすることです。

まずは、主成分分析(PCA)で失われる情報とは何かを解説します。

主成分分析(PCA)で失われる情報とは

失われる情報

例えば、2次元の情報を1次元に圧縮した場合に、データポイントA、データポイントBから主成分上に垂線をおろすと場所(データポイントX)に来ます。

これは、2次元空間上では区別のつくデータポイントAとデータポイントBが、1次元に圧縮するとした場合には、区別がつかなくなることを意味します。
このことから、主成分の垂線方向の情報が失われていることがわかります。

主成分分析で失われる情報
失われる情報の大きさ

失われている情報は、主成分の垂線方向の情報で、その大きさは長さで表されます。

図のように、主成分の原点から、元々のデータポイントまでの距離を"a"、主成分の大きさを"b"、とした場合、損失する情報"c"は、3平方の定理で以下のように表されます。

a2 = b2 + c2
主成分分析で失われる情報

aの大きさはは主成分の軸で固定で、損失する情報"c"の場合、"b"が大きければ大きいほど、"c"が小さくなることがわかります。

この時の"b"の総和は、主成分方向の”分散”になるので、なるべく分散を大きい軸を選択することが失う情報を少なくすることにつながることがわかります。

主成分分析(PCA)では、データの分散が最も大きい方向を選ぶことで、情報を失わずに次元を圧縮することができることを別の角度からも確認してみます。

例えば、2次元から1次元への圧縮の場合を考えます。
2次元のデータに対して、1次元の軸は無数に設定できますが、ここでは軸Aと軸Bを引いて比較してみます。

スペクトルのPCA解析による情報の損失

それぞれの軸に対してデータポイントから垂線を下ろします。
軸Aの場合は、主成分上のプロットはほとんど変わらず、データポイントが密集してしまいます。
このように分散が小さい場合には、データポイントの区別できなくなっていることから、情報が失われている事がわかります。

一方、軸B上の場合は、主成分上のプロットがばらついており、このように分散が大きい場合は、データポイントの差別化ができていて、情報が十分に保持されている事がわかります。

つまり、主成分として選んだ軸に沿って、データの分散(ばらつき)が大きいほど、データポイントの区別が可能である(情報が失われていない)といえます。

スペクトル波長毎のデータの相関関係と失われる情報

ここまでの内容から、主成分分析をする際に、圧縮するデータの相関が強ければ強いほど、”情報を失わずに圧縮することができるということもわかってきます。

PCA解析とデータの相関性

スペクトル解析において、測定した材料が600nmに吸収を持つ場合、その影響は周辺の590nmや610nmにも及びます。このような場合、他に類似の吸収スペクトルを持つ材料が存在しない限り、600nm付近の情報は、一つの次元にまとめて圧縮することが可能です。

さらに、この材料が600nmと900nmに吸収を持つ場合、これらの波長での変化は、材料の有無によって一貫したパターンを示します。したがって、このような場合にも600nmと900nmの情報を統合して圧縮することが可能です。

このように、スペクトルデータは波長毎の相関関係が高いため、次元数を減らしつつ、必要な情報を効率的に保持する主成分分析(PCA)と相性がよいことがわかります。

4. 主成分分析(PCA)が情報を保持できているかは寄与率で確認

PCA(主成分分析)において、データの情報がどれだけ保持されているかは、累積寄与率で評価することができます。

累積寄与率について考える前に、まずは、寄与率の概念について解説します。

主成分分析(PCA)の寄与率とは

主成分分析では、データの分散が最も大きい方向に沿って主成分を設定し、その主成分に垂直な方向の情報は失われることはすでに紹介しました。
これを言い換えれば、分散の大きさから、その主成分が元のデータの情報をどれだけ保持しているかを評価することも可能です。

寄与率は、元のデータの全分散に対して、各主成分の分散がどの程度の割合で残っているかの比で表されます。

寄与率 = 主成分の分散 元のデータの全分散

例えば、ある主成分の寄与率が70%であれば、その主成分が元のデータの70%の情報を保持していることを意味します。

1次元の主成分を考える場合には、すでに紹介した寄与率を確認するだけで十分です。

しかし、主成分分析(PCA)では通常、複数の主成分を選択するため、これら複数の主成分を合計して、どれだけ情報を保持しているかを評価する必要があります。
この寄与率を足し合わせた値を累積寄与率と呼びます。

例えば、100次元のスペクトルデータに対して、3つの主成分を使用して3次元に圧縮した場合に、第1主成分の寄与率:70%、第2主成分の寄与率:15%、第2主成分の寄与率:10%、の時に、累積寄与率は95%となります。
これは、3つの主成分によって元のデータの95%の情報を保持できていることを示します。

5. 主成分分析(PCA)で選択する主成分の数

主成分分析(PCA)において、主成分の数を増やすほど失われる情報が減り累積寄与率が高くなりますが、次元の圧縮という目的からは、最小限の主成分で十分な情報を保持することが理想です。

そのため、累積寄与率の値や形を参考にしながら、適切な主成分の数を選択することが重要です。

主成分分析の累積寄与率

こちらは、一般的な、主成分の数と累積寄与率の関係性のグラフになります。最初の数個の主成分で、データの大部分を説明できる場合、主成分を追加する毎に、累積寄与率が大幅に上昇します。そして、ある程度の主成分数になると、主成分を増やしても得られる情報が少なくなってきます。

主成分の数を選択する際に、通常70~90%に達するまで主成分数を増やす手法や、寄与率のカーブが緩やかになる点まで主成分数を増やす手法がとられますが、主成分の数の選択が、主成分分析の精度と速度(複雑さ)のトレードオフになるため、用途によって選択方法を調整する必要があります。

スペクトル解析において、2次元や3次元まで次元を圧縮できるとデータセット全体を視覚的に理解しやすくなるので、情報を保ったまま、主成分を2つまたは3つにまで圧縮することが目標となります。視覚的に理解しやすくなることによって外れ値の除去などにとってメリットがあります。

6. スペクトル解析における主成分分析(PCA)のまとめ

本記事では、主成分分析(PCA)によって、多次元のデータであるスペクトルデータの情報を保ったまま次元を圧縮することで、視覚的にわかりやすく分類を行うことができることを紹介しました。

スペクトルデータは、材料の有無によって複数の波長で同じような特性を示す(相関が高い)事が多く、そのような場合には情報を失わずに次元を圧縮する事ができます。
この時、保持できる情報は、次元を圧縮する際の主成分の数に依存するので、累積寄与率を確認しながら、主成分の数を調整する事が重要です。

次の記事では、実際の主成分分析の実例をご紹介いたします。

→主成分分析(PCA)を用いたスペクトル解析の実例<準備中>

スペクトルカメラや分光器を使用したスペクトル測定、スペクトル解析を検討に関して、ケイエルブイにお気軽にご相談ください。

お問い合わせ

また、ケイエルブイでは、スペクトル解析について、測定・解析に関する情報を発信中です。


分光コース

ご質問・ご相談お気軽にお問い合せください

お電話でのお問合せ 03-3258-1238 受付時間 平日9:00-18:00(土日祝日除く)
Webでのお問い合わせ