Lineer regresyonda x kesişiminin güven aralığı nasıl hesaplanır?


9

Yanıt değişkeni için genellikle doğrusal bir regresyonun standart hatası verildiğinden, diğer yönde güven aralıklarının nasıl elde edileceğini merak ediyorum - örneğin bir x kesişimi için. Ne olabileceğini görselleştirebiliyorum, ama eminim bunu yapmanın basit bir yolu olmalı. Aşağıda, R'nin bunun nasıl görselleştirileceğine ilişkin bir örneği bulunmaktadır:

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)

resim açıklamasını buraya girin


1
Bu bootstrap olabilir: 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)). Ters tahmin aralıkları için yardım dosyası, chemCal:::inverse.predictbir CI'nın türetilmesine de yardımcı olabilecek aşağıdaki referansı verir: Massart, LM, Vandenginste, BGM, Buydens, LMC, De Jong, S., Lewi, PJ, Smeyers-Verbeke, J. (1997 ) Chemometrics ve Qualimetrics El Kitabı: Bölüm A, s. 200
Roland

1
Grafikte gösterdiğiniz şey, kesişim için CI değildir. Tahminlerin alt ve üst güven çizgilerinin ekseni geçtiği noktaları gösterirsiniz.
Roland

1
Genellikle doğrusal regresyonda birinin böyle bir şey söyleyen bir modeli vardır: böylece ler rasgele gibi değerlendirilir ve , sabit s olarak. Bu s verildiğinde bir koşullu dağılım aradığınızı söyleyerek haklı olabilir . Eğer yeni bir örnek alırsak Uygulamada, bu genellikle sadece ler aynı zamanda onlar da rastgele düşünülmelidir bazı durumlarda düşündüren bu değişikliği bu. Bunun uygunluğuna sahip olup olmadığını merak ediyorum
Yi=α+βxi+εiwhere ε1,εni.i.d. N(0,σ2),
YxxYx
Michael Hardy


1
@AdrienRenaud - Bana öyle geliyor ki cevabım, bahsettiğim asimetrik yönleri göz önüne alındığında aşırı derecede basit ve Roland'ın çizdiği önyükleme alıştırması tarafından vurgulanıyor. Çok fazla sormuyorsam, belki de bahsettiğiniz olabilirlik yaklaşımını genişletebilirsiniz.
Marc kutuda

Yanıtlar:


9

Lineer regresyonda x kesişiminin güven aralığı nasıl hesaplanır?

Asumptions

  • Basit regresyon modelini .yi=α+βxi+εi
  • Hataların regresörlere bağlı normal dağılımı varϵ|XN(0,σ2In)
  • Sıradan en az kare kullanarak sığdır

X-kesişimde güven aralığını hesaplamak için 3 prosedür

Birinci dereceden Taylor genişletmesi

Sizin modeli tahmini standart sapma ile ve üzerinde ve parametreleri ve tahmini kovaryans . Sen çözY=aX+bσaσbabσab

aX+b=0X=ba.

Sonra üzerinde standart sapma şu şekilde verilir:σXX

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

MIB

Doğrusal bir regresyonda x-kesişiminin güven aralığını nasıl hesaplayabilirim? Bölümünde Marc koduna bakın. .

CAPITANI-POLLASTRI

CAPITANI-POLLASTRI iki ilişkili Normal rasgele değişkenin oranı için Kümülatif Dağıtım Fonksiyonu ve Yoğunluk Fonksiyonu sağlar. Lineer regresyonda x kesişiminin güven aralığını hesaplamak için kullanılabilir. Bu prosedür MIB'den hemen hemen aynı sonuçları vermektedir.

Gerçekten de, normal en küçük kareler kullanılarak ve hataların normalliğini varsayarak, (doğrulandı) ve ile ilişkilidir (doğrulanmıştır).β^N(β,σ2(XTX)1)β^

Prosedür aşağıdaki gibidir:

  • ve için OLS tahmincisi alın .ab
  • varyans-kovaryans matrisini alın ve .σa,σb,σab=ρσaσb
  • Varsayalım ve bir iki değişkenli İlişkili normal dağılımını takip . Daha sonra ın yoğunluk fonksiyonu ve Kümülatif Dağılım Fonksiyonu CAPITANI-POLLASTRI tarafından verilmektedir.abN(a,b,σa,σb,ρ)xintercept=ba
  • İstenen miktarları hesaplamak ve bir güven aralığı ayarlamak için x_ Birikimli Dağıtım Fonksiyonunu kullanın .xintercept=ba

3 prosedürün karşılaştırılması

Yordamlar, aşağıdaki veri yapılandırması kullanılarak karşılaştırılır:

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

10000 farklı numune üretilir ve 3 yöntem kullanılarak analiz edilir. Üretmek ve analiz etmek için kullanılan kodu (R) şu adreste bulabilirsiniz: https://github.com/adrienrenaud/stackExchange/blob/master/crossValidated/q221630/answer.ipynb

  • MIB ve CAPITANI-POLLASTRI eşdeğer sonuçlar verir.
  • Birinci dereceden Taylor genişlemesi diğer iki yöntemden önemli ölçüde farklıdır.
  • MIB ve CAPITANI-POLLASTRI kapsamı yetersizdir. % 68 (% 95) ci, zamanın gerçek% 63'ünü (% 92) içerdiği bulunmuştur.
  • Birinci dereceden Taylor genişlemesi aşırı kapsamdan muzdariptir. % 68'inin (% 95) ci'nin gerçek değeri% 87'sini (% 99) içerdiği bulunmuştur.

Sonuçlar

X-kesişim dağılımı asimetriktir. Asimetrik bir güven aralığını haklı çıkarır. MIB ve CAPITANI-POLLASTRI eşdeğer sonuçlar verir. CAPITANI-POLLASTRI'nin güzel bir teorik gerekçesi vardır ve MIB'ye zemin hazırlar. MIB ve CAPITANI-POLLASTRI orta derecede yetersiz kapsamdan muzdariptir ve güven aralıklarını ayarlamak için kullanılabilir.


Bu güzel cevap için teşekkürler. Bu yöntem, x kesme noktasının standart hatasının simetrik olduğunu ima ediyor mu? Şeklimdeki tahmin aralıkları, durumun böyle olmadığını ve başka bir yerde buna atıfta bulunduğumu ima ediyor.
Marc kutuda

Evet, simetrik bir aralık anlamına geliyor. Asimetrik bir tane istiyorsanız, model parametrelerinize rahatsızlık verici parametreler olarak davranan bir profil olasılığı kullanabilirsiniz. Ama daha çok iş :)
Adrien Renaud

için bu ifadeyi nasıl elde ettiğinizi daha ayrıntılı olarak açıklayabilir misiniz ? (σX/X)2


2

Artıkları önyükleme öneriyoruz:

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

ortaya çıkan arsa

Grafikte gösterdiğiniz, tahminlerin güven bandının alt / üst sınırının ekseni geçtiği noktalardır. Bunların kesişmenin güven sınırları olduğunu düşünmüyorum, ama belki de kabaca bir yaklaşımdır.


Harika - bu zaten yorumunuzdaki örnekten daha makul görünüyor. Tekrar teşekkürler.
Marc kutuda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.