通常の最小二乗法を使用してロジスティック回帰を解決する方法は?


9

私は自己学習機械学習でした。私はそれが主張するロジスティック回帰に関するウィキペディアのページのこのセクションに出くわしました

モデルは一般化線形モデル(下記参照)として表現できるため、0

ロジスティック回帰のセットアップを線形回帰のセットアップに再キャストできるように思えます。しかし、それを行う方法がわかりません。わからない0<p<1も意味します。多分それはトリックですか?


4
ロジスティック回帰とGLMに関するスレッドをご覧になりましたか?これらは、を直接観測できないため、提案するのは行き止まりであることを理解するのに役立ちます。p
whuber

私もそう思っていたので、ウィキペディアのコメントに戸惑いました。
kirakun

1
一般化線形モデルは、さまざまなタイプの回帰(線形、二項/ロジスティック、ポアソンなど)に適用でき、線形回帰の唯一の機能ではありません。すべての「線形」とは、ここで、フィット関数の形式がy=a+bf1(x)+cf2(x)+df3(x)+
jwimberley

1
タイトルで述べられている質問については、もちろんよく知られている解決策があります。つまり、ロジスティック回帰は、OLSサブルーチン(+単純な行列代数)だけで解決できます。
GeoMatt22

回答:


7

ロジスティック回帰モデルのシグモイド関数は、通常の最小二乗(OLS)の場合のように、代数的パラメーター推定の利用を排除します。代わりに、勾配降下ニュートン法などの非線形分析法を使用して、フォームのコスト関数を最小化します

cost(σ(Θx),y)=ylog(σ(Θx))(1y)log(1σ(Θx))、ここで

σ(z)=11+eΘx、つまりシグモイド関数。場合、予測確率を高くし、コスト関数の青い部分のマイナス記号がコストを最小化することに注意してください。反対に、場合、方程式の赤い部分だけが配置され、より小さなy=1σ(Θx)y=0σ(Θx)、コストがゼロに近づくほどです。

同様に、次のように尤度関数を最大化できます

p(y|x,θ)=(σ(Θx))y(1σ(Θx))1y


ただし、引用する文は、シグモイド関数の比較的線形な部分を参照していると思います。

モデルは一般化線形モデルとして表現できるため(以下を参照)、0<p<1、通常の最小二乗で十分です。R-squaredは、フィッティング空間での適合度の尺度として使用できます。いつp=0 または 1、より複雑な方法が必要です。

ロジスティック回帰モデルは次のとおりです。

odds(Y=1)=p(Y=1)1p(Y=1)=eθ0+θ1x1++θpxp

または、

(*)log(odds(Y=1))=log(p(Y=1)1p(Y=1))=θ0+θ1x1++θpxp=ΘX

したがって、これはOLSモデルに「十分に近い」(y=ΘX+ϵ)など、および閉じた形で推定されるパラメータのために適合するために、提供される確率をy=1 (ロジスティック回帰の応答変数のベルヌーイモデリングを思い出してください)は、 0 または 1。つまり、log(p(Y=1)1p(Y=1))式で *漸近領域から離れて滞在します。


たとえば、RのデータセットでテストしたいStatistical Horizo​​nsのこの興味深いエントリを参照してくださいmtcars。自動変速機の変数amはバイナリなので、ガロンあたりのマイル数を超えて後退できmpgます。車のモデルがそのガス消費量に基づいて自動変速機を持っていると予測できますか?

私が先に進んで、OLS推定の問題を掘り下げるだけで、予測精度が得られます 75%この単一の予測子に基づいています。そして、何を推測しますか?ロジスティック回帰を当てはめると、まったく同じ混同行列と正確率が得られます。

事はOLSの出力がバイナリではなくむしろ連続的であり、実際のバイナリを推定しようとしていることです y 値、それらは通常、 0 そして 1、確率値によく似ていますが、ロジスティック回帰(シグモイド関数)のように厳密に制限されているわけではありません。

これがコードです:

> d = mtcars
> summary(as.factor(d$am))
 0  1 
19 13 
> fit_LR = glm(as.factor(am) ~ mpg, family = binomial, d)
> pr_LR = predict(fit, type="response")
> 
> # all.equal(pr_LR, 1 / (1 + exp( - predict(fit_LR) ) ) ) - predict() is log odds P(Y =1)
> 
> d$predict_LR = ifelse(pr_LR > 0.5, 1, 0)
> t_LR = table(d$am,d$predict_LR)
> (accuracy = (t_LR[1,1] + t_LR[2,2]) / sum(t))
[1] 0.75
> 
> fit_OLS = lm(am ~ mpg, d)
> pr_OLS = predict(fitOLS)
> d$predict_OLS = ifelse(pr_OLS > 0.5, 1, 0)
> (t_OLS = table(d$am, d$predict_OLS))

     0  1
  0 17  2
  1  6  7
> (accuracy = (t[1,1] + t[2,2]) / sum(t_OLS))
[1] 0.75

自動v手動車の頻度はかなりバランスが取れており、OLSモデルはパーセプトロンとして十分です。

ここに画像の説明を入力してください


2

あなたが引用する声明を誤って解釈する。一般化線形モデル (通常、最大尤度により推定さ)は最小二乗問題ではありません*。

たとえば、ウィキペディアのページ「一般化線形モデル」を参照してください。

ただし、尤度は多くの場合、線形最小二乗近似のシーケンスとして反復的に解決されます-繰り返し再重み付けされた最小二乗(非線形最小二乗問題の一般的なアプローチと同様)。

したがって、実際には、一連の加重最小二乗問題が解決されてパラメーター推定値が得られることがよくあります。これらは、いくつかの概算推定から始めて(これらを取得するためのいくつかの標準的な方法があります)、重み付けされた最小二乗法で近似されたモデルへの線形近似の動作応答値と重みを作成し、次に新しい推定を生成して使用します。作業応答値と重みを更新します。このサイクルは複数回繰り返されます。

これはこれらのモデルに適合する唯一の方法ではなく、多くの統計パッケージで使用される方法です。

*(一般的な線形モデルと混同しないように注意してください。この推定は、最小二乗法の形式として、または一般化された最小二乗法としてキャストできます)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.