从二阶分位数回归获得拟合值

时间:2018-06-26 20:36:03

标签: r prediction polynomials quantreg quantile-regression

我确定这很容易解决,但是我对分位数回归有疑问。

假设我有一个数据框架,该数据框架遵循二阶多项式曲线的趋势,并且我构建了通过数据的不同部分拟合的分位数回归:

##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值,您可以在下面的图中看到它。

Plot obtained from above code

 ##Maximum prediction
 Pred_df<- as.data.frame(predict.rq(QUA))
 apply(Pred_df,2,max)

所以我的问题是如何获取与每个分位数的最大y值相对应的x值(即斜率的折断点)?

1 个答案:

答案 0 :(得分:1)

扫帚包在这里可能非常有用:

library(broom)
library(dplyr)
augment(QUA) %>% 
  group_by(.tau) %>% 
  filter(.fitted == max(.fitted))