Come calcolare l'intervallo di confidenza dell'intercetta x in una regressione lineare?


9

Dal momento che l'errore standard di una regressione lineare viene generalmente indicato per la variabile di risposta, mi chiedo come ottenere intervalli di confidenza nell'altra direzione, ad esempio per un'intercetta x. Sono in grado di visualizzare ciò che potrebbe essere, ma sono sicuro che ci deve essere un modo semplice per farlo. Di seguito è riportato un esempio in R di come visualizzare questo:

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)

inserisci qui la descrizione dell'immagine


1
Si potrebbe bootstrap questo: 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)). Per gli intervalli di previsione inversa, il file della guida di chemCal:::inverse.predictfornisce il seguente riferimento che potrebbe anche aiutare a derivare un elemento della configurazione: Massart, LM, Vandenginste, BGM, Buydens, LMC, De Jong, S., Lewi, PJ, Smeyers-Verbeke, J. (1997 ) Manuale di chemiometria e qualimetria: parte A, pag. 200
Roland

1
Ciò che mostri nel grafico non è l'elemento della configurazione per l'intercettazione. Mostra i punti in cui le linee di confidenza superiore e inferiore delle previsioni attraversano l'asse.
Roland

1
Spesso nella regressione lineare si ha un modello che dice qualcosa del genere: modo che gli siano trattati come casuali e gli come fissi. Ciò può essere giustificato dicendo che stai cercando una distribuzione condizionale data la s. In pratica se prendi un nuovo campione, di solito non sono solo le ma anche le che cambiano, suggerendo in alcune circostanze che dovrebbero essere considerate casuali. Mi chiedo se questo dipende dalla proprietà di
Yi=α+βxi+εiwhere ε1,εni.i.d. N(0,σ2),
YxxYx
Michael Hardy,


1
@AdrienRenaud - Mi sembra che la tua risposta sia eccessivamente semplicistica visti gli aspetti asimmetrici che ho citato e che sono evidenziati dall'esercizio di bootstrap che Roland ha illustrato. Se non sto chiedendo troppo, forse potresti ampliare l'approccio di probabilità che hai citato.
Marc nella scatola

Risposte:


9

Come calcolare l'intervallo di confidenza dell'intercetta x in una regressione lineare?

Asumptions

  • Utilizzare il modello di regressione semplice .yi=α+βxi+εi
  • Gli errori hanno una normale distribuzione subordinata ai regressoriϵ|XN(0,σ2In)
  • Montare usando il minimo quadrato ordinario

3 procedure per calcolare l'intervallo di confidenza sull'intercetta x

Espansione Taylor del primo ordine

Il vostro modello è con deviazione standard stimata e su e parametri e stimato covarianza . Tu risolviY=aX+bσaσbabσab

aX+b=0X=ba.

Quindi la deviazione standard su è data da:σXX

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

MIB

Vedi il codice di Marc nella casella in Come calcolare l'intervallo di confidenza dell'intercetta x in una regressione lineare? .

CAPITANI-POLLASTRI

CAPITANI-POLLASTRI fornisce la funzione di distribuzione cumulativa e la funzione di densità per il rapporto tra due variabili casuali normali correlate. Può essere usato per calcolare l'intervallo di confidenza dell'intercetta x in una regressione lineare. Questa procedura fornisce risultati (quasi) identici a quelli del MIB.

In effetti, usando il normale minimo quadrato e assumendo la normalità degli errori, (verificato) e sono correlati (verificati).β^N(β,σ2(XTX)1)β^

La procedura è la seguente:

  • ottenere lo stimatore OLS per e .ab
  • ottenere la matrice varianza-covarianza ed estrarre, .σa,σb,σab=ρσaσb
  • Si supponga che e seguono una distribuzione bivariata correlata normale, . Quindi la funzione di densità e la funzione di distribuzione cumulativa di sono date da CAPITANI-POLLASTRI.abN(a,b,σa,σb,ρ)xintercept=ba
  • Utilizzare la funzione di distribuzione cumulativa di per calcolare i quantili desiderati e impostare un intervallo di cofidence.xintercept=ba

Confronto delle 3 procedure

Le procedure vengono confrontate utilizzando la seguente configurazione dei dati:

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

10000 campioni diversi vengono generati e analizzati utilizzando i 3 metodi. Il codice (R) utilizzato per generare e analizzare è disponibile all'indirizzo: https://github.com/adrienrenaud/stackExchange/blob/master/crossValidated/q221630/answer.ipynb

  • MIB e CAPITANI-POLLASTRI danno risultati equivalenti.
  • L'espansione di Taylor del primo ordine differisce significativamente dagli altri due metodi.
  • MIB e CAPITANI-POLLASTRI soffrono di sotto copertura. Il 68% (95%) ci è risultato contenere il vero valore 63% (92%) del tempo.
  • L'espansione del primo ordine Taylor soffre di una copertura eccessiva. Si trova che il 68% (95%) ci contiene il valore vero 87% (99%) del tempo.

conclusioni

La distribuzione dell'intercetta x è asimmetrica. Giustifica un intervallo di confidenza asimmetrico. MIB e CAPITANI-POLLASTRI danno risultati equivalenti. I CAPITANI-POLLASTRI hanno una buona giustificazione teorica e forniscono motivi per il MIB. MIB e CAPITANI-POLLASTRI soffrono di una scarsa copertura e possono essere utilizzati per impostare intervalli di confidenza.


Grazie per questa bella risposta Questo metodo implica che l'errore standard dell'intercetta x è simmetrico? Gli intervalli di previsione nella mia figura implicano che non è così, e ho visto riferimenti a questo altrove.
Marc nella scatola

Sì, implica un intervallo simmetrico. Se si desidera uno asimmetrico, è possibile utilizzare una probabilità del profilo trattando i parametri del modello come parametri di disturbo. Ma è più lavoro :)
Adrien Renaud,

Potresti spiegare più in dettaglio come ottieni quell'espressione per ? (σX/X)2

@fcop È un'espansione di Taylor. Dai un'occhiata a en.wikipedia.org/wiki/Propagation_of_uncertainty
Adrien Renaud,

2

Consiglierei il bootstrap dei residui:

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

trama risultante

Ciò che mostri nel grafico sono i punti in cui il limite inferiore / superiore della banda di confidenza delle previsioni attraversa l'asse. Non penso che questi siano i limiti di confidenza dell'intercettazione, ma forse sono una approssimazione approssimativa.


Fantastico: questo sembra già più ragionevole dell'esempio del tuo commento. Grazie ancora.
Marc nella scatola
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.