Die Sigmoidfunktion im logistischen Regressionsmodell schließt die Verwendung der engen algebraischen Parameterschätzung wie bei gewöhnlichen kleinsten Quadraten (OLS) aus. Stattdessen werden nichtlineare Analysemethoden wie Gradientenabstieg oder Newtonsche Methode verwendet, um die Kostenfunktion des Formulars zu minimieren :
Kosten ( σ(Θ⊤x ), y )= - y log( σ(Θ⊤x ))-(1- y )log( 1 - σ(Θ⊤x )) , wobei
σ( z) =11 +e- -Θ⊤x , dh die Sigmoidfunktion. Beachten Sie, dass bei die vorhergesagte Wahrscheinlichkeit hoch sein soll und das Minuszeichen im blauen Teil der Kostenfunktion die Kosten minimiert. Wenn dagegen , kommt nur der rote Teil der Gleichung zustande, und je kleiner , desto näher sind die Kosten an Null.y= 1σ(Θ⊤x )y= 0σ(Θ⊤x )
Entsprechend können wir die Wahrscheinlichkeitsfunktion maximieren als:
p ( y | x , θ ) =( σ(Θ⊤x ) )y( 1 - σ(Θ⊤x ) )1 - y .
Der Satz, den Sie zitieren, bezieht sich jedoch meines Erachtens auf den relativ linearen Teil der Sigmoidfunktion:
Da das Modell als verallgemeinertes lineares Modell ausgedrückt werden kann ( siehe unten ), können für gewöhnliche kleinste Quadrate ausreichen, wobei das R-Quadrat das Maß für die Anpassungsgüte im Anpassungsraum ist. Wenn oder , sind komplexere Methoden erforderlich.0 < p < 1p = 01
Das logistische Regressionsmodell lautet:
Gewinnchancen (Y = 1) =p( Y.= 1 )1- -p( Y.= 1 )=eθ0+θ1x1+ ⋯ +θpxp
oder,
Log( Gewinnchancen (Y = 1) ) = log(p( Y.= 1 )1- -p( Y.=1 )) =θ0+θ1x1+ ⋯+θpxp=Θ⊤X.(*)
Daher ist dies "nah genug" an einem OLS-Modell ( ), um als solches geeignet zu sein und die Parameter in geschlossener Form zu schätzen, vorausgesetzt, die Wahrscheinlichkeit von (denken Sie an die Bernoulli-Modellierung der Antwortvariablen in der logistischen Regression) liegt nicht nahe bei oder . Mit anderen Worten, während in Gl. * hält sich von den asymptotischen Regionen fern.y =Θ⊤X + ϵy = 101Log(p( Y.= 1 )1- -p( Y.= 1 ))
Siehe zum Beispiel diesen interessanten Eintrag in Statistical Horizons , den ich mit dem mtcars
Datensatz in R testen wollte . Die Variable für das Automatikgetriebe am
ist binär, sodass wir sie über Meilen pro Gallone zurückführen können mpg
. Können wir vorhersagen, dass ein Automodell aufgrund seines Gasverbrauchs ein Automatikgetriebe hat?
Wenn ich weitermache und nur das Problem mit OLS-Schätzungen durchpflüge, erhalte ich eine Vorhersagegenauigkeit von nur auf diesem einzelnen Prädiktor basiert. Und rate was? Ich erhalte genau die gleiche Verwirrungsmatrix und Genauigkeitsrate, wenn ich eine logistische Regression anpasse.75 %
Die Sache ist, dass die Ausgabe von OLS nicht binär, sondern kontinuierlich ist und versucht, die realen binären Werte zu schätzen. Sie liegen typischerweise zwischen und , ähnlich wie Wahrscheinlichkeitswerte, obwohl sie nicht wie bei der logistischen Regression streng begrenzt sind ( Sigmoidfunktion).y01
Hier ist der Code:
> 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
Die Frequenz von automatischen v manuellen Autos ist ziemlich ausgewogen, und das OLS-Modell ist als Perzeptron gut genug: