散点图的连续分位数

时间:2016-03-30 16:57:17

标签: r ggplot2 quantile quartile

我有一个数据集,我为此绘制了一个回归(使用ggplot2' s stat_smooth):

ggplot(data = mydf, aes(x=time, y=pdm)) + geom_point() + stat_smooth(col="red") 

plot1

我也想使用相同的方法获得分位数(如果它更简单,只有四分位数会这样做)。我设法获得的是以下内容:

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

enter image description here

不幸的是,我无法将method="loess"放入stat_quantile(),如果我没有弄错的话,这会解决我的问题。

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

由于

1 个答案:

答案 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相同的公式,则您将使用一致的回归方法用于分位数和平均期望值。