r - 从二阶分位数回归中获取拟合值
问题描述
我确信这很容易解决,但我有一个关于分位数回归的问题。
假设我有一个遵循二阶多项式曲线趋势的数据框,并且我构建了一个通过数据的不同部分拟合的分位数回归:
##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在这里可能非常有用:
library(broom)
library(dplyr)
augment(QUA) %>%
group_by(.tau) %>%
filter(.fitted == max(.fitted))
推荐阅读
- javascript - JavaScript 重定向到基于 URL 的另一个网站
- python - Google Cloud 中的 UMAP 模型加载失败,字节码版本不兼容
- c - 为什么断言不做任何事情?我需要做什么才能让它工作?
- rabbitmq - 响应 RabbitMQ API GET /api/queues 的密钥重复的可能原因
- xml - 肥皂 xml 发送但服务器端差异(“<”,“<”)(“>”,“>”)
- python - 对于这个 sklearn 转换器,我应该遵循正确的列规范吗?
- loops - KDB:使用具有两个变量的递归函数发出问题
- .net - Log4Net:EventLogAppender 创建协议,但不记录
- iis - 网站未加载样式和文件,因为正在加载不同的路径
- google-classroom - 检索到的最大教室 ID 数