ロジスティック回帰:真陽性の最大化-偽陽性


9

ロジスティック回帰モデル(エラスティックネット正則化を備えたRのglmnetを介してフィット)があり、真陽性と偽陽性の差を最大化したいと思います。これを行うために、次の手順が思い浮かびました:

  1. 標準ロジスティック回帰モデルに適合
  2. 予測しきい値を0.5として使用して、すべての正の予測を特定する
  3. 正に予測された観測値に重み1を割り当て、その他すべてに0を割り当てます
  4. 重み付きロジスティック回帰モデルのあてはめ

このアプローチの欠点は何でしょうか?この問題を解決する正しい方法は何でしょうか?

真陽性と偽陰性の数の差を最大化したい理由は、アプリケーションの設計によるものです。クラスプロジェクトの一環として、私はオンラインマーケットプレイスで自律的な参加者を構築しています。私のモデルが何かを購入して後でより高い価格で販売できると予測した場合、入札を行います。ロジスティック回帰に固執し、固定費と単価の増分に基づいてバイナリの結果(勝ち、負け)を出力したいと思います(すべてのトランザクションで同じ金額を増減します)。誤検知は、私が何かを購入し、それをより高い価格で販売することができないことを意味するため、私を傷つけます。しかし、偽陰性は私に害を及ぼすことはありません(機会費用の点でのみ)。それは、私が購入しなかったというだけのことですが、もし持っていたなら、私はお金を稼いだでしょう。同様に、

0.5のカットオフは完全に任意であり、真/偽陽性の差が最も大きくなる予測しきい値でステップ1のモデルを最適化すると、0.4に近づくことがわかります。これは私のデータの歪んだ性質によるものだと思います-ネガティブとポジティブの比率は約1:3です。

現在、私は次の手順に従っています:

  1. データをトレーニング/テストに分割
  2. トレーニングにモデルを適合させ、テストセットで予測を行い、真陽性と偽陽性の差を計算します
  3. モデルを完全にフィットさせ、テストセットで予測を行い、真陽性と偽陽性の差を計算します

トレーニングセットがフルセットのサブセットであるにもかかわらず、ステップ#3の真/偽陽性の差は、ステップ#2よりも小さくなります。#3のモデルの真のネガティブが多く、偽ネガティブが少ないかどうかは気にしないので、尤度関数自体を変更せずにできることはありますか?


このアプローチの欠点を尋ねる前に、このアプローチが機能する理由をあなたの意見で書く必要があるかもしれません。手順2〜4で結果が改善されると思うのはなぜですか。
user31264 2013年

また、最後にステップ1からモデルを削除し、ステップ4からのモデルのみを使用することは正しいですか?
user31264 2013年

はい、データセット全体を備えたモデルを使用することを計画していましたが、トレーニングセットを備えたモデルのパフォーマンスが低いため、使用しても意味がありません。
tmakino 2013年

2
現在、これに関する情報源はありません...しかし、ロジスティック回帰モデルを最適化して、(受信者操作特性)曲線(またはAUC)の下の領域を最大化できることをご存知ですか?ホイールを再発明する必要はありません。
AdamO 2013年

2
ここで私が完全に理解していないのは、モデルに予測される将来の価格について何も含まれておらず、利益/損失の大きさを最適化に含めていない理由です。確かに99%の損失につながる「購入」の決定は、どちらも偽陽性であっても、1%の損失につながる「購入」の決定よりもはるかに悪いです。
probabilityislogic

回答:


24

あなたはロジスティック回帰をまったく望んでいないようです。あなたは、「真の陽性と偽陽性の差を最大化したい」と言っています。これはすばらしい目的関数ですが、ロジスティック回帰ではありません。それが何であるか見てみましょう。

まず、いくつかの表記法。従属変数はになります:Yi

Yi={1Purchase i was profitable0Purchase i was un-profitable

独立変数(購入すべきかどうかを予測するために使用するもの)は(ベクトル)になります。推定しようとしているパラメーターは(ベクトル)になります。ときに購入を予測し。観測値場合、とき、またはインジケーター関数ときに買いを予測します。XiβXiβ>0iXiβ>01Xiβ>0=1

と両方の場合、真の陽性は観測値発生します。および場合、観測値誤が発生します。真陽性から偽陽性を引いた値を最大化するを見つけたい、または: iYi=11Xiβ>0=1iYi=01Xiβ>0=1β

maxβi=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0

私は目的関数にはほとんど代数を行いながら、これは個別の応答モデルを推定するために特になじみの目的関数ではありませんが、私と一緒にクマ:

i=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0+i=1N1i=1N1+i=1NYii=1NYi=i=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)i=1N1+i=1NYi

OK、今度はその合計の最後の2つの項が関数ではないので、最大化でそれらを無視できることに注意してください。最後に、「真陽性と偽陽性の差を最大化する」という解決したい問題がこの問題と同じであることを β

maxβi=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)

今、その推定者には名前があります!これは最大スコア推定量と呼ばれます。これは、離散応答モデルのパラメーターを推定する非常に直感的な方法です。パラメータは、正しい予測の数が最大になるように選択されます。最初の項は真陽性の数であり、2番目の項は真陰性の数です。

これは、(バイナリ)離散応答モデルを推定するためのかなり良い方法です。たとえば、推定量は一貫しています。(Manski、1985、J of Econometrics)ただし、この推定量にはいくつかの奇妙な点があります。第一に、それは小さなサンプルでは一意ではありません。最大化を解決する1つのを見つけたら、データセット内でまったく同じ予測を行う他のが最大化を解決します---したがって、見つけたものに近い無限の多くのが見つかります。また、推定量は漸近的に正常ではなく、一般的な最尤推定量よりも遅く収束します---ルート代わりにルートキューブしますβββNN収束。(Kim and Pollard、1990、Ann of Stat)最後に、ブートストラップを使用して推論を行うことはできません。(Abrevaya&Huang、2005、Econometrica)ただし、この推定量を使用したいくつかの論文があります--- CaudillによるNCAAバスケットボールトーナメントの結果を予測することについては楽しい論文があります、International Journal of Forecasting、2003年4月、v。19 2、313〜17ページ。

これらの問題のほとんどを克服する推定量は、ホロウィッツの平滑化最大スコア推定量です(Horowitz、1992、EconometricaおよびHorowitz、2002、J of Econometrics)。これは、ルート一致し、漸近的に正常な、ブートストラップに適した一意の推定量を提供します。Horowitzは、彼の推定量を彼のWebページに実装するためのサンプルコードを提供していますN


代数を含めて、私のコスト関数を最大スコア推定器と同等にしていただきありがとうございます。の指定されたインジケーター関数で、これは常にを正として、を負として分類することを意味しますか?また、p(モデル出力)は、入力ロジスティック関数を使用して計算されていますか?私が使用している現在のアプローチは、AUCコスト関数です。次に、予測しきい値を最適化して、真陽性と偽陽性の差が最も大きい値を見つけます。私はあなたの答えが最大の違いを明確に見つけていることを理解していますβTx>0p>0.5p<=0.5βTx
tmakino

(続き)コスト関数でそれを定義する(そして予測しきい値を0.5に固定する)ことにより、私が取った中間ステップをスキップします。ただし、AUCはすでに使用している回帰パッケージ(glmnet)に存在しますが、最大スコアシミュレータは存在しません。私の目的を考えると、私のアプローチは妥当だと思いますか?
tmakino 2013年

1
残念ながら、私はAUCメソッドにあまり詳しくないので、AUCメソッドがどれほど適切であるかは言えません。最大スコア推定量では、ロジスティックモデルを想定していないため、実際にははありません。場合に1を予測し、最適な見つけることを決定しています。X I β > 0 βpXiβ>0β
ビル・

15

このアプローチには、次のようないくつかの問題があります。

  • 連続確率のカットオフを求める
  • 0.5の任意のカットオフを使用
  • 「偽陽性」と「偽陰性」のコストがすべての被験者で同じであると仮定します
  • 分数ではない重みを使用する
  • 推定された重みの使用
  • 最尤推定の上書き
  • 最適な決定は完全な情報(何かが他のものを超えるかどうかではなく)とユーティリティ/損失/コスト関数に基づいていることを示す最適ベイズ決定理論を利用しない

1
ありがとう、ロジスティック回帰に固執しながら(つまり、尤度関数に触れずに)これを達成する方法はありますか?
tmakino 2013年

「これ」が何であるかによります。最終的な目標は何ですか?モデルはどのように使用されますか?
フランクハレル2013年

質問を編集して、達成しようとしていることの詳細を示しました。
tmakino 2013年

1
私が何かを見逃していない限り、あなたが追加したものは何もカットポイントの使用を意味しません。予測された確率は独自のエラー率を提供することに注意してください。
フランクハレル2013年

8

説明しようとしていることを達成するための最良のアプローチは、AUC損失関数を使用してロジスティック回帰パラメーターを直接最適化することです。周によるテキスト「診断医学における統計的方法」はこの方法を説明している。

AUC(受信者動作特性曲線またはROCの下の領域)は、ランダムにサンプリングされた「ケース」が「コントロール」よりも高いマーカー値を持つ確率としておおよそ解釈されます。これはモデルの差別化、または結果を正しく分類する能力の尺度です。ROCは、単位平面内の曲線であり、回帰モデルでのすべての可能なマーカー値(適合された結果)の感度と特異度を示します。

ロジスティック回帰モデルの従来の定式化を使用することにより、

logit Pr(Y=1|X)=α+βX

モデルパラメーターのログオッズ比を使用すると、AUCベースの損失関数を大まかに定義して、最適なパラメーターを取得できます。尤度ベースのロジスティック回帰とは異なり、AUC回帰は規則的ではなく、パラメーター空間の極大値に収束する可能性があります。


1
偽陰性の損失は小さいが偽陽性の損失は大きいので、AUCはここでは最善ではないと思いました。
2013年

まあ、本当の問題は、OPには継続的な結果(ROI)があり、それを損失/利益として二分していることです。しかし、ROC回帰では一般に「愚かな」マーカーのカットオフ領域が実際にAUCに向かってカウントされるため、髪の毛は別にします。意味のあるものと愚かなマーカーの値として何を数えるかを事前に指定し、部分的なAUC回帰がすべて同じパフォーマンス機能(および問題)を持っている場合は、部分的なAUCを使用できます。
AdamO 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.