アクチュアリーはデータサイエンスの夢を見るか?

Rで保険数理と機械学習をやっています

2次判別分析をRでやってみた(スイス銀行紙幣②)

 本記事では2次判別分析を用いてスイス銀行紙幣の分類を行います。

 1.2次判別分析とは

2次判別分析(QDA, Quadratic Discriminant Analysisは古典的な機械学習の手法の一つであり、前回の記事で解説した線形判別(LDA, Linear Discriminant Analysis)から派生したものになります。

r-std.hatenablog.com

統計ソフトRではMASSパッケージのqda関数を用いることで2次判別分析を簡単に行うことができます。

2.2次判別分析と線形判別分析の違い

線形判別分析には「全群団で分散が等しい」という前提を用いる弱点があります。一方で、2次判別分析では「群団間で分散が異なる」場合にも対応することができます。

前回の記事で取り上げているスイス銀行紙幣の例では、偽札群の分布の分散が真札群よりも大きく、裾が厚くなっていることから2次判別分析の利用が適していると考えられます。 

3.2次判別分析の利用例

前回と同じスイス銀行紙幣のデータについて、2次判別分析を実行していきます。まずは、下部マージン(bottom)と対角線の長さ(diagonal)の2変数に絞って2次判別分析を行った結果を見てみます。

f:id:r_std:20160504095008p:plain

赤色で示した真札群よりも、緑色で示した偽札群の方が分散が大きいことを反映して、青線の通り凸型の判別関数を描くことができました。真札群と偽札群の重心と等高線を描くと下図の通りとなります。等高線の交わるところを識別境界が通っていることが確認できます。

f:id:r_std:20190603071439p:plain

真札と偽札の重心と等高線を追加した散布図

4.2次判別分析の結果

データセットの全変数を用いて2次判別分析を実行した結果は次の通りです。

> table(test_qda$class,test_y)
test_y

  真札 偽札
真札 49 0
偽札 1 50

識別率は99%となり、線形判別と変わらない結果となりました。誤識別されたデータを調べてみます。

f:id:r_std:20160504100515p:plain

ピンク色で示された点が誤識別されたデータになります。真札に含まれる1件の外れ値に対応できなかったようです。

5.2次判別分析の長所・短所

線形判別、2次判別に共通する弱点として、データが正規分布に従うことを前提とする点が挙げられます。スイス銀行紙幣のデータでは各群団がまとまって分布していたため、非常に精度の高い結果を得ることができましたが、データが正規分布に従わず、一様に分布しているケースなどでは、狙い通りの境界を引けない危険性があります

契約者から取得したデータを保険料率に織り込むことを考える場合、判別分析は汎化能力に優れ、かつ契約者の理解を得られやすいと考えられるものの、コストやプライバシーの観点からどの変数を取得・利用するかも論点になると予想されます。

 

6.関連記事・参考書籍・ソースコード

続編として、以下の記事を作成しました。

r-std.hatenablog.com

 今回は下記の書籍を参考に執筆しています。 

多変量データ解析 (シリーズ“多変量データの統計科学”)

多変量データ解析 (シリーズ“多変量データの統計科学”)

 

今回使用したソースコードは次の通りです。

QDA