Получение подгоночных значений из квантильных регрессий второго порядка - PullRequest
0 голосов
/ 26 июня 2018

Я уверен, что это легко разрешимо, но у меня есть вопрос относительно квантильной регрессии.

Скажем, у меня есть фрейм данных, который следует за тенденцией полиномиальной кривой второго порядка, и я строю квантильную регрессию, подогнанную по разным частям данных:

##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)
}

Я могу получить максимальное значение y с помощью функции 'Предсказание.rq', и вы можете увидеть это на следующем графике.

Plot obtained from above code

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

Итак, мой вопрос: как мне получить значение x, которое соответствует максимальному значению y (то есть разрыву наклона) для каждого квантиля?

1 Ответ

0 голосов
/ 26 июня 2018

Пакет метла может быть очень полезен здесь:

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