R
如何計算線性回歸中 x 截距的置信區間?
由於通常為響應變量給出線性回歸的標準誤差,我想知道如何獲得另一個方向的置信區間 - 例如對於 x 截距。我能夠想像它可能是什麼,但我確信必須有一種簡單的方法來做到這一點。以下是 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)
如何計算線性回歸中 x 截距的置信區間?
假設
- 使用簡單回歸模型.
- 誤差具有以回歸量為條件的正態分佈
- 使用普通最小二乘擬合
計算 x 截距置信區間的 3 個程序
- 泰勒展開式(易於使用)
- Marc in the box 方法 (MIB)
- CAPITANI-POLLASTRI ( https://boa.unimib.it/retrieve/handle/10281/43053/64388/DECAPITANI_Pollastri.pdf )
一階泰勒展開
你的模型是估計標準差和在和參數和估計協方差. 你解決
那麼標準差在是(誰)給的:
MIB
請參閱框中的 Marc 代碼如何計算線性回歸中 x 截距的置信區間?.
卡皮塔尼-波拉斯特里
CAPITANI-POLLASTRI 為兩個相關的正態隨機變量的比率提供累積分佈函數和密度函數。它可用於計算線性回歸中 x 截距的置信區間。此過程給出(幾乎)與 MIB 相同的結果。
實際上,使用普通最小二乘並假設誤差的正態性,(已驗證)和是相關的(已驗證)。
程序如下:
- 獲取 OLS 估計器和.
- 得到方差-協方差矩陣並提取,.
- 假使,假設和遵循雙變量相關正態分佈,. 然後是密度函數和累積分佈函數由 CAPITANI-POLLASTRI 提供。
- 使用的累積分佈函數計算所需的分位數並設置置信區間。
3種程序的比較
使用以下數據配置對過程進行比較:
- x <- 1:10
- 一個 <- 20
- b <- -2
- y <- a + b*x + rnorm(長度(x),平均值=0,sd=1)
使用 3 種方法生成和分析 10000 個不同的樣本。用於生成和分析的代碼 (R) 可以在以下位置找到:https ://github.com/adrienrenaud/stackExchange/blob/master/crossValidated/q221630/answer.ipynb
- MIB 和 CAPITANI-POLLASTRI 給出了相同的結果。
- 一階泰勒展開與其他兩種方法顯著不同。
- MIB 和 CAPITANI-POLLASTRI 存在覆蓋不足的問題。發現 68% (95%) ci 包含 63% (92%) 時間的真值。
- 一階泰勒展開式存在過度覆蓋。發現 68% (95%) 的 ci 包含 87% (99%) 的真實值。
結論
x 截距分佈是不對稱的。它證明了不對稱的置信區間是合理的。MIB 和 CAPITANI-POLLASTRI 給出了相同的結果。CAPITANI-POLLASTRI 有一個很好的理論依據,它為 MIB 提供了依據。MIB 和 CAPITANI-POLLASTRI 存在適度的覆蓋不足,可用於設置置信區間。