11 votos

¿Cómo calcular el intervalo de confianza de la intersección x en una regresión lineal?

Dado que el error estándar de una regresión lineal se suele dar para la variable de respuesta, me pregunto cómo obtener intervalos de confianza en la otra dirección, por ejemplo, para una intersección x. Soy capaz de visualizar lo que podría ser, pero estoy seguro de que debe haber una forma sencilla de hacerlo. Soy capaz de visualizar lo que podría ser, pero estoy seguro de que debe haber una manera directa de hacer esto. A continuación se muestra un ejemplo en R de cómo visualizar esto:

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)

enter image description here

1 votos

Podrías arrancar esto: 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)) . Para los intervalos de predicción inversa, véase el archivo de ayuda de chemCal:::inverse.predict da la siguiente referencia que también podría ayudar a derivar un IC: Massart, L.M, Vandenginste, B.G.M., Buydens, L.M.C., De Jong, S., Lewi, P.J., Smeyers-Verbeke, J. (1997) Handbook of Chemometrics and Qualimetrics: Parte A, p. 200

0 votos

@Roland - Gracias por esto. Muy útil. ¿Alguna idea de por qué la rutina bootstrap produce intervalos notablemente más estrechos que el método que muestro?

1 votos

Lo que muestra en el gráfico no es el IC para el intercepto. Muestras los puntos donde las líneas de confianza inferior y superior de las predicciones cruzan el eje.

10voto

Adrien Renaud Puntos 126

¿Cómo calcular el intervalo de confianza de la intersección x en una regresión lineal?

Supuestos

  • Utilizar el modelo de regresión simple yi=α+βxi+εi .
  • Los errores tienen una distribución normal condicionada a los regresores ϵ|XN(0,σ2In)
  • Ajuste mediante mínimos cuadrados ordinarios

3 procedimientos para calcular el intervalo de confianza de la intersección x

Expansión de Taylor de primer orden

Su modelo es Y=aX+b con desviación típica estimada σa y σb en a y b parámetros y covarianza estimada σab . Usted resuelve

aX+b=0X=ba.

Entonces la desviación típica σX en X viene dado por:

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

MIB

Ver código de Marc en la caja en ¿Cómo calcular el intervalo de confianza de la intersección x en una regresión lineal? .

CAPITANI-POLLASTRI

CAPITANI-POLLASTRI proporciona la Función de Distribución Acumulativa y la Función de Densidad para el cociente de dos variables aleatorias Normales correlacionadas. Puede utilizarse para calcular el intervalo de confianza de la intersección x en una regresión lineal. Este procedimiento da resultados (casi) idénticos a los de MIB.

Efectivamente, utilizando mínimos cuadrados ordinarios y asumiendo la normalidad de los errores, β^N(β,σ2(XTX)1) (verificado) y β^ están correlacionadas (verificadas).

El procedimiento es el siguiente:

  • obtener el estimador OLS para a y b .
  • obtener la matriz de varianza-covarianza y extraer, σa,σb,σab=ρσaσb .
  • Supongamos que a y b siguen una distribución Normal Correlacionada Bivariada, N(a,b,σa,σb,ρ) . A continuación, la función de densidad y la función de distribución acumulativa de xintercept=ba vienen dadas por CAPITANI-POLLASTRI.
  • Utilice la función de distribución acumulativa de xintercept=ba para calcular los cuantiles deseados y establecer un intervalo de cofianza.

Comparación de los 3 procedimientos

Los procedimientos se comparan utilizando la siguiente configuración de datos:

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

Se generan 10000 muestras diferentes y se analizan utilizando los 3 métodos. El código (R) utilizado para generar y analizar se puede encontrar en: https://github.com/adrienrenaud/stackExchange/blob/master/crossValidated/q221630/answer.ipynb

  • MIB y CAPITANI-POLLASTRI dan resultados equivalentes.
  • La expansión de Taylor de primer orden difiere significativamente de los otros dos métodos.
  • MIB y CAPITANI-POLLASTRI sufre de subcobertura. El 68% (95%) ci contiene el valor verdadero el 63% (92%) de las veces.
  • La expansión de Taylor de primer orden sufre un exceso de cobertura. La ci del 68% (95%) contiene el valor verdadero el 87% (99%) de las veces.

Conclusiones

La distribución del intersticio x es asimétrica. Justifica un intervalo de confianza asimétrico. MIB y CAPITANI-POLLASTRI dan resultados equivalentes. CAPITANI-POLLASTRI tiene una buena justificación teórica y da fundamentos para MIB. MIB y CAPITANI-POLLASTRI sufren una moderada falta de cobertura y pueden utilizarse para establecer intervalos de confianza.

0 votos

Gracias por esta buena respuesta. ¿Implica este método que el error estándar de la intersección x es simétrico? Los intervalos de predicción de mi figura implican que no es así, y he visto referencias a esto en otros sitios.

0 votos

Sí, implica un intervalo simétrico. Si quieres uno asimétrico, podrías utilizar un perfil de probabilidad tratando los parámetros de tu modelo como parámetros molestos. Pero es más trabajo :)

0 votos

¿Podría explicar con más detalle cómo obtiene esa expresión para (σX/X)2 ?

3voto

Roland Puntos 2023

Yo recomendaría el bootstrapping de los residuos:

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

resulting plot

Lo que se muestra en el gráfico son los puntos en los que el límite inferior/superior de la banda de confianza de las predicciones cruza el eje. No creo que sean los límites de confianza del intercepto, pero quizá sean una aproximación.

0 votos

Genial, esto ya parece más razonable que el ejemplo de tu comentario. Gracias de nuevo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X