受注予測や離反予測など、判別分析の出番が意外と多いのがビジネスデータ分析の特徴です。
受注や離反だけでなく、状態遷移(例:訪問→提案)の予測も判別分析の範疇です。
昔から色々な判別分析の手法があります。
共通しているのは、学習データで分類モデルを構築し、混合行列(confusion matrix)で評価するということです。
このとき、混合行列(confusion matrix)には幾つかの指標があり、どれを見ればいいのか迷う人も多いようです。
今回は、「ロジスティック回帰分析を含めた判別分析、正答率と検出率のどちらを重視しますか?」というお話しです。
判別分析
判別分析とは、2つのカテゴリ(例:受注 or 失注)を予測する分類モデルを構築するものです。
昔からあるのは、線形判別分析などの多変量解析のものや、ロジスティック回帰などの一般化線形モデル系のものです。
20年ぐらい前から、サポートベクターマシーン(SVM)などのカーネル多変量解析系のものや、決定木やニューラルネットワークなどの機械学習系のものを使われ始めました。
どの手法で分類モデルを構築しても、得たい結果は同じです。
どの手法で分類モデルを構築しても、多くの場合、混合行列(confusion matrix)を使うようです。モデルの良し悪しを評価するとき、必ずと言っていいほど混合行列が登場してきます。
もちろん、モデルの良し悪しを評価するとき、混合行列以外のもの見ますが、混合行列は共通して見ます。
混合行列(confusion matrix)
混合行列(confusion matrix)とは、予測と実測のマトリックスです。以下です。
分析ターゲットが通常は「1」になります(例:受注が分析ターゲットであれば受注が「1」、離脱が分析ターゲットであれば離脱が「1」)。
例えば、分析ターゲットが受注とし、「1:受注、0:失注」とします。
このとき、実際に受注し、分類モデルでも受注と予測された件数が「True Positive(TP)」に入ります。
「True Positive(TP)」と「True Negative (TN)」が正答した件数です。全件数は、4つのセルの合計値「TP+FN+FP+TN」になります。
このとき正答率は、「(TP+TN)÷(TP+FN+FP+TN)」となります。
通常考えると、正答率が高くなるような分類モデルがいいのではないか? と考えがちです。しかし、必ずしも正答率が高いモデルが実務上活用できるモデルとは限りません。
4つの指標
混合行列(confusion matrix)には、4つの指標が計算されます。
- 正答率:(TP+TN)÷(TP+FN+FP+TN)
- 検出率:TP÷(TP+FN)
- 精度:TP÷(TP+FP)
- 誤検出率:FP÷(FP+TN)
正答率とは、先ほど話した通り、正答した割合です。
検出率とは、実測が「1:受注」のケースを、分類モデルがどれほどカバーしたのかを表したものです。
実測が「1:受注」の件数は「TP+FN」です。このうちモデルが的中したのは「TP」です。したがって、検出率は「TP÷(TP+FN)」となります。
実は、正答率よりも検出率のほうが実務上、重要になってきます。どんなに正答率が良くても、検出率が悪いと使いものにならないからです。
正答率90%で検出率0%の残念な分類モデル
実際、私は次のような分類モデルを見たことがあります。
正答率90%で検出率0%の残念な分類モデルです。
検出率0%ということは、受注予測モデルであれば、「実際は受注しているのに、受注していると予測されない」ということです。0%なので、1つも受注と予測されずに失注と予測されます。
分析ターゲットが「離反」であれば、1つも離反を予測しないことになります。
どんなに正答率が高くても、分析ターゲットを検出できないようでは実務では使えません。
実際何が起こっているのでしょうか?
学習データが偏っている場合、要注意
正答率90%で検出率0%の残念な分類モデルに近いものを構築する人を、たまに見かけます。なぜ、このようなことが起こるのでしょうか?
学習データが偏っている場合に起こります。
偏っているとは、先ほどの例で説明すると、「1:受注」のデータが全体の10%で「0:失注」のデータが全体の90%のようなデータです。
このとき、すべてを失注と予測するモデルを構築すれば、正答率は90%になります。このようなモデルを作るのは簡単です。しかし、検出率は0%です。
どうすればいいのか?
少しテクニカルな話題になります。
学習データが偏っている場合、ウエイトバックをしてからモデル構築をします。特別な理由がない限り、そうしたほうが無難です。特別な場合とは、データの偏り自体がモデル構築上重要な場合です。
実は、従来の線形判別分析であれば、「1:受注」と「0:失注」の事前確率の設定を同じにすれ済みます。事前確率をサンプルサイズに設定すると、正答率が高く検出率の低い分類モデルになってしまいます。分析ツールによっては、デフォルトで「1:受注」と「0:失注」の事前確率が同じという設定になっています。
この「1:受注」と「0:失注」の事前確率の設定を同じにすることと、同様の効果をウエイトバックをすることで得られます。
ウエイトバックとは、各ケース(データ行)に重みを付けることです。「1:受注」と「0:失注」のケース数が同じになるように重みを付けます。
このとき、サンプルサイズが重みによって変わってしまうため、統計学的な検定などに関しては注意が必要になります。分析ツールの結果を鵜呑みにできないからです。通常は、手計算に近い形で検定などを実施することになると思います。
今回のまとめ
今回は、「ロジスティック回帰分析を含めた判別分析、正答率と検出率のどちらを重視しますか?」というお話しをしました。
ロジスティック回帰分析を含めた判別分析とは、2つのカテゴリ(例:受注 or 失注)を予測する分類モデルを構築するものです。
ビジネス系のデータ分析では、よく使います。受注を予測したり、離反を予測したりと、利用頻度は多い方かと思います。
構築した分類モデルの精度評価をするとき、よく混合行列(confusion matrix)を作り、4つの指標を計算します。
- 正答率:(TP+TN)÷(TP+FN+FP+TN)
- 検出率:TP÷(TP+FN)
- 精度:TP÷(TP+FP)
- 誤検出率:FP÷(FP+TN)
このとき、「正答率」に目が行きがちですが、実務上は「検出率」が非常に重要だったりします。
実務上、「正答率」がどんなに高くても「検出率」が低いと、その分類モデルは使えません。
分析ターゲットが「受注」であれば、1つも受注を予測できない、分析ターゲットが「離反」であれば、1つも離反を予測できないことになります。
受注や離反を予測できないのであれば、その予測モデルは実務上使えません。
ですので、ロジスティック回帰分析を含めた判別分析で分類モデルを構築するとき、「正答率」以上に「検出率」を重要視する必要があるのです。