我有一个数据集,我为此绘制了一个回归(使用ggplot2
' s stat_smooth
):
ggplot(data = mydf, aes(x=time, y=pdm)) + geom_point() + stat_smooth(col="red")
我也想使用相同的方法获得分位数(如果它更简单,只有四分位数会这样做)。我设法获得的是以下内容:
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="loess"
放入stat_quantile()
,如果我没有弄错的话,这会解决我的问题。
(如果不清楚,期望的行为=分位数的非线性回归,因此Q25和Q75的回归低于和高于(分别)我的红色曲线(和Q50,如果绘制,将是我的红色曲线))。
由于
答案 0 :(得分:2)
stat_quantile
绘制每个x值的第25和第75百分位数的最佳拟合线。 stat_quantile
使用rq
包中的quantreg
函数(隐式method="rq"
调用stat_quantile
)。据我所知,rq
没有做黄土回归。但是,您可以使用其他灵活的函数进行分位数回归。以下是两个例子:
B-Spline:
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_quantile
仍在使用rq
,但rq
接受上面列出的类型的公式(如果您不提供公式,则stat_quantile
隐式使用{ {1}})。如果您在formula=y~x
中使用与geom_smooth
相同的公式,则您将使用一致的回归方法用于分位数和平均期望值。