ロジスティック回帰残差分析


12

この質問は一種の一般的で長々としたものですが、どうかご容赦ください。

私のアプリケーションには、多くのデータセットがあり、各データセットは、最大20,000個のデータポイントと最大50個の機能と1つの従属バイナリ変数で構成されています。正規化されたロジスティック回帰(Rパッケージglmnet)を使用してデータセットをモデル化しようとしています

分析の一環として、次のように残差プロットを作成しました。各機能について、その機能の値に従ってデータポイントを並べ替え、データポイントを100個のバケットに分割し、各バケット内の平均出力値と平均予測値を計算します。これらの違いをプロットします。

残差プロットの例を次に示します。

上記のプロットでは、特徴の範囲は[0,1](1の濃度が濃い)です。ご覧のとおり、特徴値が低い場合、モデルは1出力の可能性を過大評価する方向に偏っているように見えます。たとえば、左端のバケットでは、モデルは確率を約9%過大評価しています。

この情報を活用して、このバイアスを大まかに修正するために、機能の定義を簡単な方法で変更したいと思います。交換などの変更

xx

または

xfa(x)={a if x<a x else

これどうやってするの?人間が50個のプロットすべてをすばやくスクロールして変更できるようにする一般的な方法論を探しています。これをすべてのデータセットに対して実行し、頻繁に繰り返して、データが時間の経過とともに最新の状態に維持されるようにします。

一般的な質問として、これは正しいアプローチですか?Googleが「ロジスティック回帰残差分析」を検索しても、実用的なアドバイスが得られても多くの結果は返されません。彼らは、「このモデルはぴったりだろうか?」という質問に答えることに固執しているようです。Hosmer-Lemeshowのようなさまざまなテストを提供して回答します。しかし、私のモデルが良いかどうかは気にしません。もっと良くする方法を知りたいです!

回答:


4

ロジスティック回帰では、バイアスをそのように評価することはできません。ロジスティック回帰は、対数オッズまたはロジットスコアlog(p /(1-p))でのみ偏らないと予想されます。比率は歪んでいるため、偏って見えます。対数オッズに関して残差をプロットする必要があります。


バケット内で対数奇数の残差を結合するにはどうすればよいですか?算術平均?これは私にとって少し不安です。直観的に、残差分析がバイアスを示さない場合、モデルがPr [y = 1] <0.2を予測すると、yは0.2未満の確率で1に等しくなるはずです。しかし、あなたの答えは、そうではないことを示唆しているようです。私は正しく理解していますか?
dshin

これはおそらくコメントとして投稿する方が良いでしょう。
確率

いいえ、David、それは0.2の確率以外を意味するものではありません。おそらく私の編集がそれをより明確にします。
ジョン

申し訳ありませんが、私はまだ少し混乱しています。偏りのないモデルの私の直感的な理解は、モデルが多数のデータポイントのすべてについてp = 0.2を予測する場合、それらのデータポイントの20%がy = 1を持つ必要があるということです。この理解は正しいですか?もしそうなら、私のプロット方法論はバイアスを正しく表示するはずです。そうでない場合...そして、私はこの「バイアス」の概念にあまり満足していません!偏りのないモデルの読み取り値0.2で、y = 1である確率について何も示されない場合、偏りのないことは何ですか?
dshin

はい、20%にはy = 1が必要です。しかし、それは完全に消えるわけではなく、ある程度は消えるでしょう。確率空間では、どの方向にどれだけずれると思いますか?偏りがない場合は、.2:1または0:.2のどこかに等しく分類されます。ただし、これらのスペースのサイズからわかるように、できるという理由だけで、より大きなエリアでより遠くにある傾向があります。ロジット空間では、距離は+または-に等しくなければなりません。
ジョン

2

これを行うための一般的なソフトウェアは存在しそうにありません。おそらく、回帰の問題を修正するための一般的な理論がないためです。したがって、これは理論的に根拠のある手順というよりも、「私がやろう」というタイプの答えです。

作成するプロットは、基本的に100個のビンを含む視覚的なHLテストですが、ビニングを行うために予測確率の代わりに単一の予測子を使用します。これは、プロシージャがHLテストのプロパティの一部を継承する可能性が高いことを意味します。

あなたの手順は合理的に聞こえますが、基準を「オーバーフィット」することに注意する必要があります。基準は推定プロセスの一部になっているため、診断としてはあまり有用ではありません。また、直感で何かをするときはいつでも、意思決定プロセスをできるだけ詳細に書き留めてください。これは、一般的なプロセスまたは理論の種を発見する可能性があり、それが開発されると、より良い手順につながる(いくつかの理論に関してより自動で最適な)ためです。

調査する必要があるプロットの数を最初に減らすことが、1つの方法だと思います。これを行う1つの方法は、各変数を3次スプラインとして近似し、非ゼロの非線形推定値を持つプロットを調べることです。データポイントの数を考えると、これは非線形性の簡単な自動修正でもあります。これにより、モデルが50から200 + 50kに拡張されます(kはノットの数です)。これは、「真の」変換の「統計的なテイラー級数展開」を適用すると考えることができます。

この後も診断結果が悪く見える場合は、インタラクション用語を追加してみます。

あなたの質問の一部は、ここよりもスタックオーバーフローの領域であるインタラクティブプログラムを書くことについてのようです。探索的データ分析ツールを検索すると便利な場合があります。これらのツールには「ピギーバック」できる機能がある可能性が高いためです。


この応答に感謝します。3次スプラインのアイデアを調べます。私は線形回帰設定でこの「プロットを見て機能を調整する」アプローチを採用していましたが、より良い適合を実現する方法がより明白に見えました。たとえば、ホッケースティックが表示された場合、f_a(x)補正を適用するとより良いフィットになることは明らかです。多くの場合、問題領域の知識はこの決定と一致します。たとえば、収入から幸福を予測している場合、億万長者が億万長者よりも1000倍幸せだと思わない限り、収入を制限するのは理にかなっています。
dshin

しかし、ロジスティック回帰の設定に切り替えたとき、方法論をどのように移行するのか本当にわからないことに気付きました。したがって、この提出。
-dshin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.