【发布时间】:2018-06-26 20:36:03
【问题描述】:
我确信这很容易解决,但我有一个关于分位数回归的问题。
假设我有一个遵循二阶多项式曲线趋势的数据框,我构建了一个通过数据的不同部分拟合的分位数回归:
##Data preperation
set.seed(5)
d <- data.frame(x=seq(-5, 5, len=51))
d$y <- 50 - 0.3*d$x^2 + rnorm(nrow(d))
##Quantile regression
Taus <- c(0.1,0.5,0.9)
QUA<-rq(y ~ 1 + x + I(x^2), tau=Taus, data=d)
plot(y~x,data=d)
for (k in 1:length(Taus)){
curve((QUA$coef[1,k])+(QUA$coef[2,k])*(x)+(QUA$coef[3,k])*(x^2),lwd=2,lty=1, add = TRUE)
}
我可以通过 'predict.rq' 函数获得最大 y 值,您可以在下面的图中看到。
##Maximum prediction
Pred_df<- as.data.frame(predict.rq(QUA))
apply(Pred_df,2,max)
所以我的问题是如何获得与每个分位数的最大 y 值(即斜率中断)相对应的 x 值?
【问题讨论】:
-
我认为使用 broom 可以很容易地完成其中的一些工作,但我有点不清楚您认为错误的价值是什么? 51.63 似乎是 0.9 分位数峰值的合理值,不是吗?
-
感谢您的评论。 51.63 是合理的,但这是数据集中的最大值(与分位数回归无关)。考虑到它出现在图表上的位置,我认为第 90 个百分位数的 48.88 似乎相当低。
-
好的,但这是平均值,而不是最大值?这就是我感到困惑的原因。
-
是的,您完全正确,这是我的一个非常基本的错字。我现在将对其进行编辑并对其进行更改以解决第二个问题。感谢您提请我注意!
标签: r prediction polynomials quantreg quantile-regression