Comment calculer l'intervalle de confiance de l'ordonnée à l'origine dans une régression linéaire?

9

Étant donné que l'erreur standard d'une régression linéaire est généralement donnée pour la variable de réponse, je me demande comment obtenir des intervalles de confiance dans l'autre sens - par exemple pour une ordonnée à l'origine. Je peux visualiser ce que cela pourrait être, mais je suis sûr qu'il doit y avoir un moyen simple de le faire. Voici un exemple dans R de la façon de visualiser cela:

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)

entrez la description de l'image ici

Marc dans la boîte
la source
1
Vous pouvez amorcer ceci: 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)). Pour les intervalles de prédiction inverse, le fichier d'aide de chemCal:::inverse.predictdonne la référence suivante qui pourrait également aider à dériver un IC: Massart, LM, Vandenginste, BGM, Buydens, LMC, De Jong, S., Lewi, PJ, Smeyers-Verbeke, J. (1997 ) Manuel de chimiométrie et de qualimétrie: partie A, p. 200
Roland
1
Ce que vous montrez dans le graphique n'est pas l'IC de l'interception. Vous montrez les points où les lignes de confiance inférieure et supérieure des prédictions traversent l'axe.
Roland
1
Souvent en régression linéaire, on a un modèle qui dit quelque chose comme ceci: sorte que les s soient traités comme aléatoires et les s comme fixes. Cela peut être justifié en disant que vous recherchez une distribution conditionnelle étant donné les s. En pratique, si vous prenez un nouvel échantillon, ce ne sont généralement pas seulement les mais aussi les qui changent, ce qui suggère que dans certaines circonstances, ils devraient également être considérés comme aléatoires. Je me demande si cela porte sur la propriété de
Yi=α+βxi+εiwhere ε1,εni.i.d. N(0,σ2),
YxxYx
Michael Hardy
1
@AdrienRenaud - Il me semble que votre réponse est trop simpliste étant donné les aspects asymétriques que j'ai mentionnés, et est mise en évidence par l'exercice d'amorçage que Roland a illustré. Si je ne demande pas trop, vous pourriez peut-être développer l'approche de vraisemblance que vous avez mentionnée.
Marc dans la boîte du

Réponses:

9

Comment calculer l'intervalle de confiance de l'ordonnée à l'origine dans une régression linéaire?

Hypothèses

  • Utilisez le modèle de régression simple .yi=α+βxi+εi
  • Les erreurs ont une distribution normale conditionnelle aux régresseursϵ|XN(0,σ2In)
  • Ajuster en utilisant le moindre carré ordinaire

3 procédures pour calculer l'intervalle de confiance sur l'ordonnée à l'origine

Extension Taylor de premier ordre

Votre modèle est avec un écart - type estimé et sur et paramètres et covariance estimée . Vous résolvezY=aX+bσaσbabσab

aX+b=0X=ba.

Alors l'écart type sur est donné par:σXX

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

MIB

Voir le code de Marc dans l'encadré à Comment calculer l'intervalle de confiance de l'ordonnée à l'origine dans une régression linéaire? .

CAPITANI-POLLASTRI

CAPITANI-POLLASTRI fournit la fonction de distribution cumulative et la fonction de densité pour le rapport de deux variables aléatoires normales corrélées. Il peut être utilisé pour calculer l'intervalle de confiance de l'ordonnée à l'origine dans une régression linéaire. Cette procédure donne des résultats (presque) identiques à ceux de MIB.

En effet, en utilisant le moindre carré ordinaire et en supposant la normalité des erreurs, (vérifié) et sont corrélés (vérifiés).β^N(β,σ2(XTX)1)β^

La procédure est la suivante:

  • obtenir un estimateur OLS pour et .ab
  • obtenir la matrice de variance-covariance et extraire, .σa,σb,σab=ρσaσb
  • Supposons que et suivent une distribution normale corrélée bivariée, . Ensuite, la fonction de densité et la fonction de distribution cumulative de sont données par CAPITANI-POLLASTRI.abN(a,b,σa,σb,ρ)xintercept=ba
  • Utilisez la fonction de distribution cumulative de pour calculer les quantiles souhaités et définir un intervalle de co-confiance.xintercept=ba

Comparaison des 3 procédures

Les procédures sont comparées à l'aide de la configuration de données suivante:

  • x <- 1:10
  • a <- 20
  • b <- -2
  • y <- a + b * x + rnorm (longueur (x), moyenne = 0, sd = 1)

10000 échantillons différents sont générés et analysés à l'aide des 3 méthodes. Le code (R) utilisé pour générer et analyser se trouve sur: https://github.com/adrienrenaud/stackExchange/blob/master/crossValidated/q221630/answer.ipynb

  • MIB et CAPITANI-POLLASTRI donnent des résultats équivalents.
  • L'expansion de Taylor de premier ordre diffère considérablement des deux autres méthodes.
  • MIB et CAPITANI-POLLASTRI souffrent d'une sous-couverture. Le 68% (95%) ci contient la vraie valeur 63% (92%) du temps.
  • L'expansion Taylor de premier ordre souffre d'une couverture excessive. Le 68% (95%) ci contient la vraie valeur 87% (99%) du temps.

Conclusions

La distribution d'ordonnée à l'origine est asymétrique. Elle justifie un intervalle de confiance asymétrique. MIB et CAPITANI-POLLASTRI donnent des résultats équivalents. CAPITANI-POLLASTRI ont une belle justification théorique et cela donne des raisons pour MIB. MIB et CAPITANI-POLLASTRI souffrent d'une sous-couverture modérée et peuvent être utilisés pour définir des intervalles de confiance.

Adrien Renaud
la source
Merci pour cette belle réponse. Cette méthode implique-t-elle que l'erreur standard de l'ordonnée à l'origine est symétrique? Les intervalles de prédiction dans ma figure impliquent que ce n'est pas le cas, et j'ai vu une référence à cela ailleurs.
Marc dans la case du
Oui, cela implique un intervalle symétrique. Si vous en voulez un asymétrique, vous pouvez utiliser une vraisemblance de profil traitant vos paramètres de modèle comme des paramètres de nuisance. Mais c'est plus de travail :)
Adrien Renaud
Pourriez-vous expliquer plus en détail comment obtenir cette expression pour ? (σX/X)2
@fcop C'est une extension Taylor. Jetez un œil à en.wikipedia.org/wiki/Propagation_of_uncertainty
Adrien Renaud
2

Je recommanderais d'amorcer les résidus:

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")

tracé résultant

Ce que vous montrez dans le graphique sont les points où la limite inférieure / supérieure de la bande de confiance des prédictions traversent l'axe. Je ne pense pas que ce soient les limites de confiance de l'interception, mais c'est peut-être une approximation approximative.

Roland
la source
Génial - cela semble déjà plus raisonnable que l'exemple de votre commentaire. Merci encore.
Marc dans la loge du