Wir können eine lineare Regression ohne Zufälligkeit simulieren, was bedeutet, dass wir anstelle von . Wenn wir dann ein lineares Modell anpassen, sind die Koeffizienten identisch mit der "Grundwahrheit". Hier ist ein Beispiel.
set.seed(0)
n <- 1e5
p <- 3
X <- matrix(rnorm(n*p), ncol=p)
beta <- runif(p)
# y <- X %*% beta + rnorm(n)*0.5
# remove the randomness
y <- X %*% beta
dat <- data.frame(y=y, x=X)
lm.res = lm(y ~ .-1, data=dat)
norm(as.matrix(lm.res$coefficients - beta))
[1] 2.176037e-14
Meine Frage ist, können wir die ähnliche Simulation mit logistischer Regression durchführen? Aus dieser Frage erhalte ich den Punkt, dass die Zufälligkeit entfernt werden kann, indem eine deterministische Aussage anstelle einer Stichprobe aus der Binomialverteilung verwendet wird.
y <- ifelse(plogis(X %*% beta)>0.5,1,0)
anstatt
y <- rbinom(n,1,prob=plogis(X %*% beta))
Aber wenn wir das tun, wird eine vollständige Trennung stattfinden und wir können die Koeffizienten nicht erhalten. Wenn wir andererseits Regularisierung hinzufügen, sind die Koeffizienten nicht die generierten Daten.
Was kann ich also tun, um "die Zufälligkeit in der logistischen Regression zu beseitigen" und nach den genauen "Grundwahrheits" -Koeffizienten wie dem linearen Regressionsfall zu suchen?
Ich habe das Gefühl, ein grundlegendes Missverständnis des Konzepts zu haben. Was fehlt mir?
quelle
Antworten:
Die logistische Regression hat keinen "Fehler" -Term wie die klassische lineare Regression. Die Ausnahme hiervon könnte eine lineare Regression mit Schwellenwert mit einem logistischen Fehlerterm sein, dies ist jedoch kein allgemein akzeptiertes Wahrscheinlichkeitsmodell, das zu einem logistischen Regressionsmodell führt. Dies liegt daran, dass logistische Modelle eine Mittelwert-Varianz-Beziehung haben. Das Analogon zum "Hinzufügen eines Fehlerterms" zu einem linearen Regressionsmodell ist tatsächlich ein Quasibinomialmodell, bei dem die Varianz lediglich proportional zu p * (1-p) ist.
x1 <- seq(-3, 3, 0.1)
x2 <- rnorm(61)
y1 <- plogis(0.3*x1)
y2 <- plogis(0.3*x2)
Die Modellierung von Teilergebnissen in einem logistischen Modell ist eine akzeptierte Methode zur Analyse ökologischer Daten, bei denen das Ergebnis tatsächlich Teilergebnisse sein kann. Nicht zufällig ist dies auch eine Art der Modellierung, wenn Quasibinom-Modelle am nützlichsten sind. Auch nicht zufällig denke ich, dass die Streuung proportional zu einem Skalenparameter für den logistischen Fehlerterm ist, wenn eine "latente logistische Regression" durchgeführt wird.
quelle
glm
family=binomial
mit einer Bruchzahl laufen können . es gab mir eine Warnung. kann aber trotzdem laufen ... "In eval (family $ initialize): Nicht ganzzahlige #erfolge in einem Binomial-glm!"fit.glm
wird nur eine Funktion maximiert. Es ist nicht wichtig, was die Werte vony
sind, nur dass sie die berechneten Werte der Funktion nicht in die Luft jagen.Mit anderen Worten, dies berechnet den Bereich unter der Normalverteilung, der rechts vom Schwellenwert liegt. Beachten Sie, dass diese Wahrscheinlichkeit im Wesentlichen das ist, was ein logistisches Regressionsmodell zu beschreiben versucht. Wenn Sie diese Wahrscheinlichkeit als Funktion von , erhalten Sie tatsächlich eine Form, die der logistischen Funktion ziemlich nahe kommt (tatsächlich wird die logistische Funktion häufig als bequeme Annäherung an die kumulative Normalverteilung verwendet).X
Für Werte von nahe dem Schwellenwert liegt die Wahrscheinlichkeit, dass über dem Schwellenwert liegt, nahe , da das Rauschen das Ergebnis in beide Richtungen beeinflussen kann. Wenn Sie erhöhen , entfernt sich weiter von und wird wahrscheinlicher. Entscheidend ist, wie schnell mit zunimmt, hängt von zwei Dingen ab: der Steigung und der Rauschvarianz . Genauer gesagt hängt es vom Verhältnisy 0,5 & egr ; X X & bgr ; & thgr; f ( y ) = 1 p ( f ( y ) = 1 | X ) X & bgr ; & sgr; 2 & bgr;Xβ y 0.5 ε X Xβ θ f(y)=1 p(f(y)=1|X) X β σ2 βσ . Dieses (Signal-Rausch-) Verhältnis bestimmt den (erwarteten) Koeffizienten, den Sie aus einer logistischen Regression erhalten. Mit anderen Worten, Sie können sich die Koeffizienten in einer logistischen Regression als Kontrolle darüber vorstellen, wie stark sich jede unabhängige Variable relativ zum Rauschen in den Daten ändern muss, um die Wahrscheinlichkeit eines bestimmten Ergebnisses um einen bestimmten Betrag zu erhöhen.
Kommen wir nun zu Ihrer Frage: Sie fragen, ob es möglich ist, alle Zufälligkeiten zu beseitigen, dh kein Rauschen zu haben. Dies würde bedeuten, dass gleich ist und daher undefiniert (oder "unendlich") wäre. Dies erklärt, was Sie festgestellt haben, dass Sie die Koeffizienten nicht schätzen können, wenn kein Rauschen vorliegt. In der Tat können Sie sich die perfekte Trennung, die Sie ohne Rauschen erzielen, als einen unendlichen Koeffizienten für Ihre unabhängige Variable vorstellen, da Sie (für nahe der Schwelle ) einen infinitesimalen Betrag ändern müssen, um alles zu erreichen der Weg von nach .0 βσ 0 XβθXp(y>θ|X)=0p(y>θ|X)=1βσ Xβ θ X p(y>θ|X)=0 p(y>θ|X)=1
Bearbeiten: Eine Möglichkeit besteht darin, anstelle der Auswahl von Stichproben aus einer Binomialverteilung zur Simulation Ihrer Daten diese Stichproben durch ihre Erwartung zu ersetzen, dh durch die Wahrscheinlichkeit, die durch die simulierte Logistikfunktion vorhergesagt wird. Auf diese Weise entfernen Sie die Zufälligkeit, die sich aus der Simulation einer begrenzten Stichprobe ergibt (dh der Stichprobenvariabilität), und daher sollten Ihre Koeffizientenschätzungen der Grundwahrheit entsprechen (da es eine logistische Funktion gibt, die genau zu diesen Werten passt).
quelle