Wählen Sie das beste Modell zwischen logit, probit und nls


8

Ich analysiere einen bestimmten Datensatz und muss verstehen, wie ich das beste Modell für meine Daten auswähle. Ich benutze R.

Ein Beispiel für Daten, die ich habe, ist das Folgende:

corr <- c(0, 0, 10, 50, 70, 100, 100, 100, 90, 100, 100)

Diese Zahlen entsprechen dem Prozentsatz der richtigen Antworten unter 11 verschiedenen Bedingungen ( cnt):

cnt <- c(0, 82, 163, 242, 318, 390, 458, 521, 578, 628, 673)

Zuerst habe ich versucht, ein Probit-Modell und ein Logit-Modell anzupassen. Gerade habe ich in der Literatur eine andere Gleichung gefunden, um Daten anzupassen, die meinen ähnlich sind, also habe ich versucht, meine Daten mithilfe der nlsFunktion gemäß dieser Gleichung anzupassen (aber ich stimme dem nicht zu, und der Autor erklärt nicht, warum er benutzte diese Gleichung).

Hier ist der Code für die drei Modelle, die ich bekomme:

resp.mat <- as.matrix(cbind(corr/10, (100-corr)/10))
ddprob.glm1 <- glm(resp.mat ~ cnt, family = binomial(link = "logit"))
ddprob.glm2 <- glm(resp.mat ~ cnt, family = binomial(link = "probit"))

ddprob.nls <- nls(corr ~ 100 / (1 + exp(k*(AMP-cnt))), start=list(k=0.01, AMP=5))

Jetzt habe ich Daten und die drei angepassten Kurven aufgezeichnet:

pcnt <- seq(min(cnt), max(cnt), len = max(cnt)-min(cnt)) 
pred.glm1 <- predict(ddprob.glm1, data.frame(cnt = pcnt), type = "response", se.fit=T) 
pred.glm2 <- predict(ddprob.glm2, data.frame(cnt = pcnt), type = "response", se.fit=T) 
pred.nls <- predict(ddprob.nls, data.frame(cnt = pcnt), type = "response", se.fit=T)

plot(cnt, corr, xlim=c(0,673), ylim = c(0, 100), cex=1.5)
lines(pcnt, pred.nls, lwd = 2, lty=1, col="red", xlim=c(0,673))
lines(pcnt, pred.glm2$fit*100, lwd = 2, lty=1, col="black", xlim=c(0,673)) #$
lines(pcnt, pred.glm1$fit*100, lwd = 2, lty=1, col="green", xlim=c(0,673))

Nun möchte ich wissen: Was ist das beste Modell für meine Daten?

  • Probit
  • logit
  • nls

Die logLik für die drei Modelle sind:

> logLik(ddprob.nls)
'log Lik.' -33.15399 (df=3)
> logLik(ddprob.glm1)
'log Lik.' -9.193351 (df=2)
> logLik(ddprob.glm2)
'log Lik.' -10.32332 (df=2)

Reicht die logLik aus, um das beste Modell auszuwählen? (Es wäre das Logit-Modell, oder?) Oder muss ich noch etwas berechnen?


Ich habe über die Wahl zwischen logit geschrieben und Probit hier , was Sie lesen möchten (obwohl, nlsanders und ist dort nicht abgedeckt).
Gung - Reinstate Monica

@gung Ich habe dort zuvor deine großartige Erklärung gelesen, also danke! Mein Problem betrifft insbesondere das nlsModell und den Vergleich mit glm. Dies ist der Grund, warum ich eine ähnliche Frage (erneut) gestellt habe :)
Tommaso

2
Ich bin mir weniger sicher nls, wir werden sehen, was die Leute sagen. In Bezug auf die GLiMs würde ich sagen, dass Sie das Logit verwenden sollten, wenn Sie glauben, dass Ihre Kovariaten direkt mit der Antwort verbunden sind, und Probit, wenn Sie glauben, dass es durch eine latente normalverteilte Variable vermittelt wird.
Gung - Reinstate Monica

2
Hallo @Tommaso, ich bin verwirrt darüber, woher diese Faustregel stammt, die Sie aus dem Artikel zitiert haben, aber ich habe nicht auf den Link geklickt, also werde ich mich zurückhalten, um das zu beurteilen. Ich würde sagen, dass das logistische Modell gut ist, weil die Koeffizienten eine gute Interpretation haben - als logarithmische Quotenverhältnisse. Wenn Sie versuchen, Varianzzerlegungen durchzuführen (z. B. wenn Sie Daten gruppiert haben und versuchen, den Grad der Abhängigkeit innerhalb der Daten zu quantifizieren), hat das Probit-Modell einige nette Eigenschaften, da die Korrelationen auf der zugrunde liegenden kontinuierlichen (normal, wie Gung gezeigt) out) -Skala, sind identifiziert.
Makro

3
Die Logliks, die Sie von R oben erhalten, sind NICHT über verschiedene Modelltypen hinweg vergleichbar (sie lassen Konstanten weg, die nicht von den Parametern abhängen!), Daher sind sie hier für Sie nicht von Nutzen.
kjetil b halvorsen

Antworten:


1

Die Frage, welches Modell verwendet werden soll, hat mit dem Ziel der Analyse zu tun.

Wenn das Ziel darin besteht, einen Klassifikator zu entwickeln, um binäre Ergebnisse vorherzusagen, sind diese drei Modelle (wie Sie sehen können) alle ungefähr gleich und geben Ihnen ungefähr den gleichen Klassifikator. Dies macht es zu einem strittigen Punkt, da es Ihnen egal ist, welches Modell Ihren Klassifikator entwickelt, und Sie möglicherweise die Kreuzvalidierung oder die Validierung geteilter Stichproben verwenden, um zu bestimmen, welches Modell bei ähnlichen Daten am besten abschneidet.

In der Schlussfolgerung schätzen alle Modelle unterschiedliche Modellparameter. Alle drei Regressionsmodelle sind Sonderfälle von GLMs, die eine Verknüpfungsfunktion und eine Varianzstruktur verwenden, um die Beziehung zwischen einem binären Ergebnis und (in diesem Fall) einem kontinuierlichen Prädiktor zu bestimmen. Das NLS- und das logistische Regressionsmodell verwenden dieselbe Verknüpfungsfunktion (das Logit), aber das NLS minimiert den quadratischen Fehler bei der Anpassung der S-Kurve, wobei die logistische Regression eine maximale Wahrscheinlichkeitsschätzung der Modelldaten unter der Annahme des linearen Modells für ist Modellwahrscheinlichkeiten und die binäre Verteilung der beobachteten Ergebnisse. Ich kann mir keinen Grund vorstellen, warum wir das NLS als nützlich für Schlussfolgerungen betrachten würden.

Die Probit-Regression verwendet eine andere Verknüpfungsfunktion, die die kumulative Normalverteilungsfunktion ist. Dies "verjüngt" sich schneller als ein Logit und wird häufig verwendet, um Rückschlüsse auf Binärdaten zu ziehen, die als binäre Schwelle für nicht beobachtete kontinuierliche normalverteilte Ergebnisse beobachtet werden.

Empirisch wird das logistische Regressionsmodell weitaus häufiger zur Analyse von Binärdaten verwendet, da der Modellkoeffizient (Odds-Ratio) leicht zu interpretieren ist, eine Maximum-Likelihood-Technik darstellt und gute Konvergenzeigenschaften aufweist.

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.