Die binomiale logistische Regression weist obere und untere Asymptoten von 1 bzw. 0 auf. Genauigkeitsdaten (nur als Beispiel) können jedoch obere und untere Asymptoten aufweisen, die sich stark von 1 und / oder 0 unterscheiden. Ich kann drei mögliche Lösungen dafür sehen:
- Machen Sie sich keine Sorgen, wenn Sie gute Passungen im gewünschten Bereich erhalten. Wenn Sie nicht gut passen, dann:
- Transformieren Sie die Daten so, dass die minimale und maximale Anzahl korrekter Antworten in der Stichprobe Proportionen von 0 und 1 ergibt (anstelle von 0 und 0,15).
oder - Verwenden Sie eine nichtlineare Regression, damit Sie entweder die Asymptoten angeben oder den Monteur dies für Sie tun lassen können.
Es scheint mir, dass die Optionen 1 und 2 weitgehend aus Gründen der Einfachheit gegenüber Option 3 bevorzugt würden. In diesem Fall ist Option 3 möglicherweise die bessere Option, da sie mehr Informationen liefern kann.
edit
Hier ist ein Beispiel. Die insgesamt mögliche Genauigkeit für die Genauigkeit beträgt 100, in diesem Fall beträgt die maximale Genauigkeit jedoch ~ 15.
accuracy <- c(0,0,0,0,0,1,3,5,9,13,14,15,14,15,16,15,14,14,15)
x<-1:length(accuracy)
glmx<-glm(cbind(accuracy, 100-accuracy) ~ x, family=binomial)
ndf<- data.frame(x=x)
ndf$fit<-predict(glmx, newdata=ndf, type="response")
plot(accuracy/100 ~ x)
with(ndf, lines(fit ~ x))
Option 2 (gemäß den Kommentaren und um meine Bedeutung zu verdeutlichen) wäre dann das Modell
glmx2<-glm(cbind(accuracy, 16-accuracy) ~ x, family=binomial)
Option 3 (der Vollständigkeit halber) wäre ungefähr so:
fitnls<-nls(accuracy ~ upAsym + (y0 - upAsym)/(1 + (x/midPoint)^slope),
start = list("upAsym" = max(accuracy), "y0" = 0, "midPoint" = 10, "slope" = 5),
lower = list("upAsym" = 0, "y0" = 0, "midPoint" = 1, "slope" = 0),
upper = list("upAsym" = 100, "y0" = 0, "midPoint" = 19, hillslope = Inf),
control = nls.control(warnOnly = TRUE, maxiter=1000),
algorithm = "port")
cbind(accuracy, 16-accuracy)
) zu verwenden, aber ich mache mir Sorgen darüber, ob dies mathematisch gerechtfertigt ist.