R 散点图的连续分位数

R 散点图的连续分位数,r,ggplot2,quantile,quartile,R,Ggplot2,Quantile,Quartile,我有一个数据集,我为其绘制了回归图(使用ggplot2的stat\u smooth): 我还希望使用相同的方法得到分位数(如果更简单,只有四分位数就可以了)。我所能得到的只有以下几点: ggplot(data = mydf, aes(x=time, y=pdm, z=surface)) + geom_point() + stat_smooth(col="red") + stat_quantile(quantiles = c(0.25,0.75)) 不幸的是,我无法将method=“lea

我有一个数据集,我为其绘制了回归图(使用
ggplot2
stat\u smooth
):

我还希望使用相同的方法得到分位数(如果更简单,只有四分位数就可以了)。我所能得到的只有以下几点:

ggplot(data = mydf, aes(x=time, y=pdm, z=surface)) + geom_point() + stat_smooth(col="red") + stat_quantile(quantiles = c(0.25,0.75)) 

不幸的是,我无法将
method=“leash”
放入
stat\u quantile()
,如果我没有弄错的话,这将解决我的问题

(如果不清楚,预期行为=分位数的非线性回归,因此Q25和Q75的回归分别低于和高于我的红色曲线(如果绘制,Q50将是我的红色曲线))


谢谢

stat_quantile
默认情况下是在每个x值处绘制第25和第75百分位的最佳拟合线
stat\u quantile
使用
quantreg
包中的
rq
函数(在
stat\u quantile
调用中隐式地使用
method=“rq”
)。据我所知,
rq
不做回归。但是,您可以使用其他灵活的函数进行分位数回归。以下是两个例子:

B样条曲线:

library(splines)

stat_quantile(formula=y ~ bs(x, df=4), quantiles = c(0.25,0.75))
二阶多项式:

stat_quantile(formula=y ~ poly(x, 2), quantiles = c(0.25,0.75))

stat\u quantile
仍在使用
rq
,但
rq
接受上述类型的公式(如果不提供公式,则
stat\u quantile
隐式使用
公式=y~x
)。如果您在
geom_smooth
中使用与
stat_quantile
相同的公式,则分位数和平均期望值将使用一致的回归方法。

感谢您的输入。难道不可能将
leash()
stats
放入
公式
arg中吗?(我正试图使用
leash
,这样:
stat\u分位数(公式=leash(mydf$pdm~mydf$time),分位数=c(0.25,0.5,0.75))
,我得到了这个错误:
警告消息:
1:'newdata'有100行,但找到的变量有6816行
2:在'stat_quantile()中计算失败“:
替换有6816行,数据有100行,我不知道它想告诉我什么。我无法让
黄土
统计分位数
中工作。“统计分位数”使用
量子
包中的
rq
函数。
rq
用多项式和样条曲线处理公式(如我的回答中所述),但不做
leash
回归(据我所知)。语法说明:如果
leash
函数可以做分位数回归,调用如下:
stat\u quantile(method=“leash”,quantiles=c(0.25,0.75))
(它还隐式使用
公式=y~x
)。是的,我也试过了,但没有用。谢谢你的尝试。尽管我不确定这是否正是我想要的,但我最终还是做了这里的工作,将分位数放在DF中,并在每个分位数上绘制
stat\u smooth()
:ggplot(data=qdfm,aes(x=time,y=pdm))+geom\u point()+geom\u smooth(col=“red”)+stat\u smooth(数据=qdfm,aes(x=时间,y=Q25))+统计平滑(数据=qdfm,aes(x=时间,y=Q75))
stat_quantile(formula=y ~ poly(x, 2), quantiles = c(0.25,0.75))