Ist es möglich, eine logistische Regression ohne Zufälligkeit zu simulieren?


8

Wir können eine lineare Regression ohne Zufälligkeit simulieren, was bedeutet, dass wir y=Xβ anstelle von y=Xβ+ϵ . 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?


1
Ich sehe keinen statistischen Grund dafür, da Sie die Parameter kennen müssen, um die Antwort zu generieren. das Ganze ist völlig deterministisch.
Michael R. Chernick

@MichaelChernick Ich versuche einen Optimierungsalgorithmus zu testen, bei dem ich die Grundwahrheit simulieren und mit der Algorithmusausgabe vergleichen möchte. Hier ist ein Beispiel.
Haitao Du

Antworten:


7

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.

YXx1 <- seq(-3, 3, 0.1)x2 <- rnorm(61)y1 <- plogis(0.3*x1)y2 <- plogis(0.3*x2)x=0

> glm(y1 ~ x1, family=binomial)

Call:  glm(formula = y1 ~ x1, family = binomial)

Coefficients:
(Intercept)           x1  
 -2.528e-16    3.000e-01  

xβ=±

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.


+1 Ich bin mir nicht sicher, ob ich verstehe. "Sie können aus dem vorhergesagten Risiko nicht-integrale Y-Ergebnisse generieren, die unabhängig vom Design von X zu denselben logistischen Regressionsergebnissen führen." Könntest du mehr erklären? Auch Sie hatten hier eine Antwort , ist es das, worüber Sie sprechen?
Haitao Du

y

Ihr Code hat mich umgehauen ... Ich wusste nicht, dass Sie glm family=binomialmit 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!"
Haitao Du

@ hxd1011 In der Praxis kommt nicht viel vor, aber am Ende des Tages fit.glmwird nur eine Funktion maximiert. Es ist nicht wichtig, was die Werte von ysind, nur dass sie die berechneten Werte der Funktion nicht in die Luft jagen.
Matthew Drury

3

y=Xβ+ε
Xβεy
f(y)={0, if yθ1, if y>θ
θist eine Schwelle. Wie groß ist die Wahrscheinlichkeit, dass diese Funktion bei einem bestimmten Wert von zurückgibt ? Wenn wir annehmen, dass mit dem Mittelwert und der Varianz normalverteilt ist , können wir diese Wahrscheinlichkeit wie folgt berechnen:1Xε0σ2

p(f(y)=1|X)=p(y>θ|X)=θN(y;Xβ,σ2)dy

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βy0.5εXXβθf(y)=1p(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βθXp(y>θ|X)=0p(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).


3
Beachten Sie, dass Sie die Probit-Regression beschreiben (Sie können N (0, 1) ohne Verlust der Allgemeinheit verwenden, es skaliert nur Ihre Koeffizienten), was zwar der logistischen Regression sehr nahe kommt, aber, wie Sie erwähnt haben, nicht genau dasselbe ist.
Sven
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.