正态线性模型中的“真实斜率”告诉您平均响应变化了多少,这要归功于X. 通过假设正态性和等方差,响应的条件分布的所有分位数都与此一致。有时,这些假设是非常不切实际的:条件分布的方差或偏度取决于X因此,它的分位数在增加时以自己的速度移动X. 在 QR 中,您会立即从非常不同的斜率估计中看到这一点。由于 OLS 只关心平均值(即平均分位数),因此您不能单独对每个分位数进行建模。在那里,您在对其分位数进行陈述时完全依赖条件分布的固定形状的假设。
编辑:嵌入评论并说明
如果您愿意做出如此强的假设,那么运行 QR 并没有多大意义,因为您始终可以通过条件均值和固定方差来计算条件分位数。所有分位数的“真实”斜率将等于平均值的真实斜率。在特定的样本中,当然会有一些随机变化。或者你甚至可能发现你的严格假设是错误的......
让我用 R 中的一个例子来说明。它显示了最小二乘线(黑色),然后用红色显示了根据以下线性关系模拟的数据的建模 20%、50% 和 80% 分位数
是的= x + x ε ,ε ~ N( 0 , 1 )同住,
这样不仅条件均值是的取决于X还有方差。
- 由于对称的条件分布,均值和中值的回归线基本相同。它们的斜率为 1。
- 80% 分位数的回归线要陡峭得多(斜率 1.9),而 20% 分位数的回归线几乎是恒定的(斜率 0.3)。这非常适合极不等方差。
- 大约 60% 的值在外部红线内。它们在每个值处形成一个简单的逐点 60% 预测区间X.
生成图片的代码:
library(quantreg)
set.seed(3249)
n <- 1000
x <- seq(0, 1, length.out = n)
y <- rnorm(n, mean = x, sd = x)
plot(y~x)
(fit_lm <- lm(y~x)) # intercept: 0.02445, slope: 1.04858
abline(fit_lm, lwd = 3)
# quantile cuts
taus <- c(0.2, 0.5, 0.8)
(fit_rq <- rq(y~x, tau = taus))
# tau= 0.2 tau= 0.5 tau= 0.8
# (Intercept) 0.00108228 -0.0005110046 0.001089583
# x 0.29960652 1.0954521888 1.918622442
lapply(seq_along(taus), function(i) abline(coef(fit_rq)[, i], lwd = 2, lty = 2, col = "red"))