Wie berechnet man das Konfidenzintervall des x-Achsenabschnitts in einer linearen Regression?

9

Da der Standardfehler einer linearen Regression normalerweise für die Antwortvariable angegeben wird, frage ich mich, wie Konfidenzintervalle in die andere Richtung erhalten werden können - z. B. für einen x-Achsenabschnitt. Ich kann mir vorstellen, was es sein könnte, aber ich bin sicher, dass es einen einfachen Weg geben muss, dies zu tun. Unten sehen Sie ein Beispiel in R, wie dies visualisiert werden kann:

set.seed(1)
x <- 1:10
a <- 20
b <- -2
y <- a + b*x + rnorm(length(x), mean=0, sd=1)

fit <- lm(y ~ x)
XINT <- -coef(fit)[1]/coef(fit)[2]

plot(y ~ x, xlim=c(0, XINT*1.1), ylim=c(-2,max(y)))
abline(h=0, lty=2, col=8); abline(fit, col=2)
points(XINT, 0, col=4, pch=4)
newdat <- data.frame(x=seq(-2,12,len=1000))

# CI
pred <- predict(fit, newdata=newdat, se.fit = TRUE) 
newdat$yplus <-pred$fit + 1.96*pred$se.fit 
newdat$yminus <-pred$fit - 1.96*pred$se.fit 
lines(yplus ~ x, newdat, col=2, lty=2)
lines(yminus ~ x, newdat, col=2, lty=2)

# approximate CI of XINT
lwr <- newdat$x[which.min((newdat$yminus-0)^2)]
upr <- newdat$x[which.min((newdat$yplus-0)^2)]
abline(v=c(lwr, upr), lty=3, col=4)

Geben Sie hier die Bildbeschreibung ein

Marc in der Box
quelle
1
Sie könnten dies booten : library(boot); sims <- boot(data.frame(x, y), function(d, i) { fit <- lm(y ~ x, data = d[i,]) -coef(fit)[1]/coef(fit)[2] }, R = 1e4); points(quantile(sims$t, c(0.025, 0.975)), c(0, 0)). Für inverse Vorhersageintervalle enthält die Hilfedatei von chemCal:::inverse.predictdie folgende Referenz, die auch zur Ableitung eines CI beitragen könnte: Massart, LM, Vandenginste, BGM, Buydens, LMC, De Jong, S., Lewi, PJ, Smeyers-Verbeke, J. (1997) ) Handbuch für Chemometrie und Qualimetrie: Teil A, S. 200
Roland
1
Was Sie in der Grafik anzeigen, ist nicht das CI für den Achsenabschnitt. Sie zeigen die Punkte an, an denen die unteren und oberen Konfidenzlinien der Vorhersagen die Achse kreuzen.
Roland
1
Yi=α+βxi+εiwhere ε1,εni.i.d. N(0,σ2),
YxxYx
Michael Hardy
1
@AdrienRenaud - Es scheint mir, dass Ihre Antwort angesichts der von mir erwähnten asymmetrischen Aspekte zu einfach ist und durch die von Roland illustrierte Bootstrapping-Übung hervorgehoben wird. Wenn ich nicht zu viel verlange, könnten Sie vielleicht den von Ihnen erwähnten Wahrscheinlichkeitsansatz erweitern.
Marc in der Box

Antworten:

8

Wie berechnet man das Konfidenzintervall des x-Achsenabschnitts in einer linearen Regression?

Annahmen

  • yi=α+βxi+εi
  • ϵ|XN(0,σ2In)
  • Passen Sie mit dem gewöhnlichen kleinsten Quadrat

3 Verfahren zur Berechnung des Konfidenzintervalls für den x-Achsenabschnitt

Taylor-Erweiterung erster Ordnung

Y=aX+bσaσbabσab

aX+b=0X=ba.

σXX

(σXX)2=(σbb)2+(σaa)22σabab.

MIB

Siehe Code von Marc im Feld unter Wie berechnet man das Konfidenzintervall des x-Achsenabschnitts in einer linearen Regression? .

CAPITANI-POLLASTRI

CAPITANI-POLLASTRI bietet die kumulative Verteilungsfunktion und die Dichtefunktion für das Verhältnis zweier korrelierter normaler Zufallsvariablen. Es kann verwendet werden, um das Konfidenzintervall des x-Achsenabschnitts in einer linearen Regression zu berechnen. Dieses Verfahren liefert (fast) identische Ergebnisse wie die von MIB.

β^N(β,σ2(XTX)1)β^

Das Verfahren ist wie folgt:

  • ab
  • σa,σb,σab=ρσaσb
  • abN(a,b,σa,σb,ρ)xintercept=ba
  • xintercept=ba

Vergleich der 3 Verfahren

Die Prozeduren werden mit der folgenden Datenkonfiguration verglichen:

  • x <- 1:10
  • a <- 20
  • b <- -2
  • y <- a + b * x + rnorm (Länge (x), Mittelwert = 0, sd = 1)

Mit den 3 Methoden werden 10000 verschiedene Proben erzeugt und analysiert. Der zum Generieren und Analysieren verwendete Code (R) befindet sich unter: https://github.com/adrienrenaud/stackExchange/blob/master/crossValidated/q221630/answer.ipynb

  • MIB und CAPITANI-POLLASTRI liefern gleichwertige Ergebnisse.
  • Die Taylor-Expansion erster Ordnung unterscheidet sich signifikant von den beiden anderen Methoden.
  • MIB und CAPITANI-POLLASTRI leiden unter einer Unterdeckung. Es wurde festgestellt, dass 68% (95%) ci in 63% (92%) der Fälle den wahren Wert enthalten.
  • Die Taylor-Expansion erster Ordnung leidet unter einer Überdeckung. Das 68% (95%) ci enthält in 87% (99%) der Fälle den wahren Wert.

Schlussfolgerungen

Die x-Achsenabschnitt-Verteilung ist asymmetrisch. Es rechtfertigt ein asymmetrisches Konfidenzintervall. MIB und CAPITANI-POLLASTRI liefern gleichwertige Ergebnisse. CAPITANI-POLLASTRI haben eine schöne theoretische Begründung und geben Anlass zur MIB. MIB und CAPITANI-POLLASTRI leiden unter einer mäßigen Unterdeckung und können zum Festlegen von Konfidenzintervallen verwendet werden.

Adrien Renaud
quelle
Danke für diese nette Antwort. Bedeutet diese Methode, dass der Standardfehler des x-Achsenabschnitts symmetrisch ist? Die Vorhersageintervalle in meiner Figur implizieren, dass dies nicht der Fall ist, und ich habe an anderer Stelle einen Hinweis darauf gesehen.
Marc in der Box
Ja, dies impliziert ein symmetrisches Intervall. Wenn Sie eine asymmetrische wünschen, können Sie eine Profilwahrscheinlichkeit verwenden, die Ihre Modellparameter als Störparameter behandelt. Aber es ist mehr Arbeit :)
Adrien Renaud
(σX/X)2
@fcop Es ist eine Taylor-Erweiterung. Werfen Sie einen Blick auf en.wikipedia.org/wiki/Propagation_of_uncertainty
Adrien Renaud
2

Ich würde empfehlen, die Residuen zu booten:

library(boot)

set.seed(42)
sims <- boot(residuals(fit), function(r, i, d = data.frame(x, y), yhat = fitted(fit)) {

  d$y <- yhat + r[i]

  fitb <- lm(y ~ x, data = d)

  -coef(fitb)[1]/coef(fitb)[2]
}, R = 1e4)
lines(quantile(sims$t, c(0.025, 0.975)), c(0, 0), col = "blue")

resultierende Handlung

Was Sie in der Grafik anzeigen, sind die Punkte, an denen die untere / obere Grenze des Konfidenzbandes der Vorhersagen die Achse kreuzt. Ich denke nicht, dass dies die Vertrauensgrenzen des Abschnitts sind, aber vielleicht sind sie eine grobe Annäherung.

Roland
quelle
Großartig - das sieht schon vernünftiger aus als das Beispiel aus Ihrem Kommentar. Danke noch einmal.
Marc in der Box